Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ptnentry.h

Go to the documentation of this file.
00001 /******************************************************************************
00002 * Copyright © {1996-1999}, International Business Machines Corporation and others. All Rights Reserved.
00003 ******************************************************************************
00004 * Created by:     Mark Davis, Helena Shih
00005 *
00006 * Modification History:
00007 * Date        Name        Description
00008 *
00009 *  8/18/97     helena      Added internal API documentation.
00010 *  8/14/98     erm         Synched with 1.2 version of PatternEntry.java
00011 * 04/23/99     stephen     Removed EDecompositionMode, merged with
00012 *                          Normalizer::EMode
00013 */
00014 
00015 #ifndef PTNENTRY_H
00016 #define PTNENTRY_H
00017 
00018 #include "unicode/utypes.h"
00019 #include "unicode/unistr.h"
00020 #include "unicode/coll.h"
00021 #include "unicode/normlzr.h"
00022 
00023 /* forward declarations */
00024 class MergeCollation;
00025 class PointerToPatternEntry;
00026 class VectorOfPointersToPatternEntry;
00027 
00034 class PatternEntry 
00035 {
00036 
00037   friend class MergeCollation;
00038   friend class PointerToPatternEntry;
00039   friend class VectorOfPointersToPatternEntry;
00040 
00041  public:
00042 
00047   void appendQuotedExtension(UnicodeString& toAddTo) const;
00048 
00052   void appendQuotedChars(UnicodeString& toAddTo) const;
00053 
00059   UBool equals(const PatternEntry& other) const;
00060 
00066   int32_t getStrength(void)   const;
00067 
00073   const   UnicodeString&  getExtension(UnicodeString& ext) const;
00074 
00080   const   UnicodeString&  getChars(UnicodeString& chars) const;
00081 
00087   class Parser
00088     {
00089     public:
00090       Parser(const UnicodeString &patternStr, Normalizer::EMode decompMode);
00091       
00092       Parser(const Parser &that);
00093       
00094       Parser &operator=(const Parser &that);
00095       
00096       ~Parser();
00097       
00098       PatternEntry *next(UErrorCode &status);
00099 
00100     private:
00101       UnicodeString pattern;
00102       int32_t index;
00103       Normalizer::EMode fDecompMode;
00104 
00105       UnicodeString newChars;
00106       UnicodeString newExtensions;
00107     };
00108 
00109   friend class Parser;
00110 
00111 
00115   UnicodeString& toString(UnicodeString&) const;
00116 
00117  private:
00118 
00121   PatternEntry();
00122 
00126   PatternEntry(int32_t strength,
00127            const UnicodeString& chars,
00128            const UnicodeString& extension,
00129            Normalizer::EMode decompMode);
00133   PatternEntry(const  PatternEntry& other);
00137   ~PatternEntry();
00138 
00141   const   PatternEntry&       operator=(const PatternEntry&   other);
00142 
00151   void addToBuffer(UnicodeString& toAddTo,
00152            UBool showExtension,
00153            UBool showWhiteSpace,
00154            const PatternEntry* lastEntry) const;
00155 
00161   static void appendQuoted(const UnicodeString& chars, UnicodeString& toAddTo);
00162 
00176   static UBool isSpecialChar(UChar ch);
00177 
00178   int32_t strength;
00179   UnicodeString chars;
00180   UnicodeString extension;
00181 
00182   static const int32_t RESET;
00183   static const int32_t UNSET;
00184 };
00185 
00186 
00187 #endif // _PTNENTRY

Generated at Tue Dec 5 17:55:30 2000 for ICU by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000