1 // Copyright (C) 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /* 4 ******************************************************************************* 5 * Copyright (C) 2009-2016, International Business Machines Corporation and 6 * others. All Rights Reserved. 7 ******************************************************************************* 8 * 9 * This file contains declarations for the class DecimalFormatStaticSets 10 * 11 * DecimalFormatStaticSets holds the UnicodeSets that are needed for lenient 12 * parsing of decimal and group separators. 13 ******************************************************************************** 14 */ 15 16 #ifndef DECFMTST_H 17 #define DECFMTST_H 18 19 #include "unicode/utypes.h" 20 21 #if !UCONFIG_NO_FORMATTING 22 23 #include "unicode/uobject.h" 24 25 U_NAMESPACE_BEGIN 26 27 class UnicodeSet; 28 29 30 class DecimalFormatStaticSets : public UMemory 31 { 32 public: 33 // Constructor and Destructor not for general use. 34 // Public to permit access from plain C implementation functions. 35 DecimalFormatStaticSets(UErrorCode &status); 36 ~DecimalFormatStaticSets(); 37 38 /** 39 * Return a pointer to a lazy-initialized singleton instance of this class. 40 */ 41 static const DecimalFormatStaticSets *getStaticSets(UErrorCode &status); 42 43 static const UnicodeSet *getSimilarDecimals(UChar32 decimal, UBool strictParse); 44 45 UnicodeSet *fDotEquivalents; 46 UnicodeSet *fCommaEquivalents; 47 UnicodeSet *fOtherGroupingSeparators; 48 UnicodeSet *fDashEquivalents; 49 50 UnicodeSet *fStrictDotEquivalents; 51 UnicodeSet *fStrictCommaEquivalents; 52 UnicodeSet *fStrictOtherGroupingSeparators; 53 UnicodeSet *fStrictDashEquivalents; 54 55 UnicodeSet *fDefaultGroupingSeparators; 56 UnicodeSet *fStrictDefaultGroupingSeparators; 57 58 UnicodeSet *fMinusSigns; 59 UnicodeSet *fPlusSigns; 60 private: 61 void cleanup(); 62 63 }; 64 65 66 U_NAMESPACE_END 67 68 #endif // !UCONFIG_NO_FORMATTING 69 #endif // DECFMTST_H 70