00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __MEASURE_H__
00012 #define __MEASURE_H__
00013
00014 #include "unicode/utypes.h"
00015
00016 #if !UCONFIG_NO_FORMATTING
00017
00018 #include "unicode/fmtable.h"
00019
00020 U_NAMESPACE_BEGIN
00021
00022 class MeasureUnit;
00023
00040 class U_I18N_API Measure: public UObject {
00041 public:
00052 Measure(const Formattable& number, MeasureUnit* adoptedUnit,
00053 UErrorCode& ec);
00054
00059 Measure(const Measure& other);
00060
00065 Measure& operator=(const Measure& other);
00066
00072 virtual UObject* clone() const = 0;
00073
00078 virtual ~Measure();
00079
00085 UBool operator==(const UObject& other) const;
00086
00093 inline const Formattable& getNumber() const;
00094
00099 inline const MeasureUnit& getUnit() const;
00100
00101 protected:
00106 Measure();
00107
00108 private:
00112 Formattable number;
00113
00118 MeasureUnit* unit;
00119 };
00120
00121 inline const Formattable& Measure::getNumber() const {
00122 return number;
00123 }
00124
00125 inline const MeasureUnit& Measure::getUnit() const {
00126 return *unit;
00127 }
00128
00129 U_NAMESPACE_END
00130
00131 #endif // !UCONFIG_NO_FORMATTING
00132 #endif // __MEASURE_H__