Home | History | Annotate | Download | only in i18n
      1 //  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