/* ******************************************************************************** * Copyright (C) 1997-1999, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************** * * File DCFMTSYM.H * * Modification History: * * Date Name Description * 02/19/97 aliu Converted from java. * 03/18/97 clhuang Updated per C++ implementation. * 03/27/97 helena Updated to pass the simple test after code review. * 08/26/97 aliu Added currency/intl currency symbol support. * 07/22/98 stephen Changed to match C++ style * currencySymbol -> fCurrencySymbol * Constants changed from CAPS to kCaps * 06/24/99 helena Integrated Alan's NF enhancements and Java2 bug fixes ******************************************************************************** */ #ifndef DCFMTSYM_H #define DCFMTSYM_H #include "unicode/utypes.h" #include "unicode/locid.h" class U_I18N_API DecimalFormatSymbols { public: DecimalFormatSymbols(const Locale& locale, UErrorCode& status); DecimalFormatSymbols( UErrorCode& status); DecimalFormatSymbols(const DecimalFormatSymbols&); DecimalFormatSymbols& operator=(const DecimalFormatSymbols&); ~DecimalFormatSymbols(); bool_t operator==(const DecimalFormatSymbols& other) const; bool_t operator!=(const DecimalFormatSymbols& other) const { return !operator==(other); } UChar getZeroDigit(void) const; void setZeroDigit(UChar zeroDigit); UChar getGroupingSeparator(void) const; void setGroupingSeparator(UChar groupingSeparator); UChar getDecimalSeparator(void) const; void setDecimalSeparator(UChar decimalSeparator); UChar getPerMill(void) const; void setPerMill(UChar perMill); UChar getPercent(void) const; void setPercent(UChar percent); UChar getDigit(void) const; void setDigit(UChar digit); UChar getPatternSeparator(void) const; void setPatternSeparator(UChar patternSeparator); UnicodeString& getInfinity(UnicodeString& result) const; void setInfinity(const UnicodeString& infinity); UnicodeString& getNaN(UnicodeString& result) const; void setNaN(const UnicodeString& NaN); UChar getPlusSign(void) const; void setPlusSign(UChar minusSign); UChar getMinusSign(void) const; void setMinusSign(UChar minusSign); UChar getExponentialSymbol(void) const; void setExponentialSymbol(UChar exponential); UnicodeString& getCurrencySymbol(UnicodeString& result) const; void setCurrencySymbol(const UnicodeString& currency); UnicodeString& getInternationalCurrencySymbol(UnicodeString& result) const; void setInternationalCurrencySymbol(const UnicodeString& currency); UChar getMonetaryDecimalSeparator(void) const; void setMonetaryDecimalSeparator(UChar sep); UChar getPadEscape(void) const; void setPadEscape(UChar c); private: void initialize(const Locale& locale, UErrorCode& success, bool_t useLastResortData = FALSE); void initialize(const UnicodeString* numberElements, const UnicodeString* currencyElements); static const char *fgNumberElements; static const char *fgCurrencyElements; static const int32_t fgNumberElementsLength; static const int32_t fgCurrencyElementsLength; static const UnicodeString fgLastResortNumberElements[]; static const UnicodeString fgLastResortCurrencyElements[]; static const UChar fgLastResortPerMill[]; static const UChar fgLastResortInfinity[]; static const UChar fgLastResortNaN[]; static const UChar fgLastResortCurrency[]; static const UChar fgLastResortIntlCurrency[]; UChar fDecimalSeparator; UChar fGroupingSeparator; UChar fPatternSeparator; UChar fPercent; UChar fZeroDigit; UChar fDigit; UChar fPlusSign; UChar fMinusSign; UnicodeString fCurrencySymbol; UnicodeString fIntlCurrencySymbol; UChar fMonetarySeparator; UChar fExponential; UChar fPadEscape; UChar fPerMill; UnicodeString fInfinity; UnicodeString fNaN; }; // ------------------------------------- inline UChar DecimalFormatSymbols::getZeroDigit() const { return fZeroDigit; } // ------------------------------------- inline void DecimalFormatSymbols::setZeroDigit(UChar zeroDigit) { fZeroDigit = zeroDigit; } // ------------------------------------- inline UChar DecimalFormatSymbols::getGroupingSeparator() const { return fGroupingSeparator; } // ------------------------------------- inline void DecimalFormatSymbols::setGroupingSeparator(UChar groupingSeparator) { fGroupingSeparator = groupingSeparator; } // ------------------------------------- inline UChar DecimalFormatSymbols::getDecimalSeparator() const { return fDecimalSeparator; } // ------------------------------------- inline void DecimalFormatSymbols::setDecimalSeparator(UChar decimalSeparator) { fDecimalSeparator = decimalSeparator; } // ------------------------------------- inline UChar DecimalFormatSymbols::getPerMill() const { return fPerMill; } // ------------------------------------- inline void DecimalFormatSymbols::setPerMill(UChar perMill) { fPerMill = perMill; } // ------------------------------------- inline UChar DecimalFormatSymbols::getPercent() const { return fPercent; } // ------------------------------------- inline void DecimalFormatSymbols::setPercent(UChar percent) { fPercent = percent; } // ------------------------------------- inline UChar DecimalFormatSymbols::getDigit() const { return fDigit; } // ------------------------------------- inline void DecimalFormatSymbols::setDigit(UChar digit) { fDigit = digit; } // ------------------------------------- inline UChar DecimalFormatSymbols::getPatternSeparator() const { return fPatternSeparator; } // ------------------------------------- inline void DecimalFormatSymbols::setPatternSeparator(UChar patternSeparator) { fPatternSeparator = patternSeparator; } // ------------------------------------- inline UnicodeString& DecimalFormatSymbols::getInfinity(UnicodeString& result) const { result = fInfinity; return result; } // ------------------------------------- inline void DecimalFormatSymbols::setInfinity(const UnicodeString& infinity) { fInfinity = infinity; } // ------------------------------------- inline UnicodeString& DecimalFormatSymbols::getNaN(UnicodeString& result) const { result = fNaN; return result; } // ------------------------------------- inline void DecimalFormatSymbols::setNaN(const UnicodeString& NaN) { fNaN = NaN; } // ------------------------------------- inline UChar DecimalFormatSymbols::getPlusSign() const { return fPlusSign; } // ------------------------------------- inline void DecimalFormatSymbols::setPlusSign(UChar plusSign) { fPlusSign = plusSign; } // ------------------------------------- inline UChar DecimalFormatSymbols::getMinusSign() const { return fMinusSign; } // ------------------------------------- inline void DecimalFormatSymbols::setMinusSign(UChar minusSign) { fMinusSign = minusSign; } // ------------------------------------- inline UChar DecimalFormatSymbols::getExponentialSymbol(void) const { return fExponential; } // ------------------------------------- inline void DecimalFormatSymbols::setExponentialSymbol(UChar exponential) { fExponential = exponential; } // ------------------------------------- inline UnicodeString& DecimalFormatSymbols::getCurrencySymbol(UnicodeString& result) const { result = fCurrencySymbol; return result; } // ------------------------------------- inline void DecimalFormatSymbols::setCurrencySymbol(const UnicodeString& str) { fCurrencySymbol = str; } // ------------------------------------- inline UnicodeString& DecimalFormatSymbols::getInternationalCurrencySymbol(UnicodeString& result) const { result = fIntlCurrencySymbol; return result; } // ------------------------------------- inline void DecimalFormatSymbols::setInternationalCurrencySymbol(const UnicodeString& str) { fIntlCurrencySymbol = str; } // ------------------------------------- inline UChar DecimalFormatSymbols::getMonetaryDecimalSeparator(void) const { return fMonetarySeparator; } // ------------------------------------- inline void DecimalFormatSymbols::setMonetaryDecimalSeparator(UChar sep) { fMonetarySeparator = sep; } inline UChar DecimalFormatSymbols::getPadEscape(void) const { return fPadEscape; } inline void DecimalFormatSymbols::setPadEscape(UChar c) { fPadEscape = c; } #endif // _DCFMTSYM //eof