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

cpdtrans.h

Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 1999, International Business Machines
00004 *   Corporation and others.  All Rights Reserved.
00005 **********************************************************************
00006 *   Date        Name        Description
00007 *   11/17/99    aliu        Creation.
00008 **********************************************************************
00009 */
00010 #ifndef CPDTRANS_H
00011 #define CPDTRANS_H
00012 
00013 #include "unicode/translit.h"
00014 
00038 class U_I18N_API CompoundTransliterator : public Transliterator {
00039 
00040     Transliterator** trans;
00041 
00045     UnicodeFilter** filters;
00046 
00047     int32_t count;
00048 
00049 public:
00050 
00066     CompoundTransliterator(Transliterator* const transliterators[],
00067                            int32_t transliteratorCount,
00068                            UnicodeFilter* adoptedFilter = 0);
00069 
00078     CompoundTransliterator(const UnicodeString& id,
00079                            UTransDirection dir,
00080                            UnicodeFilter* adoptedFilter,
00081                            UErrorCode& status);
00082 
00088     CompoundTransliterator(const UnicodeString& id,
00089                            UErrorCode& status);
00090 
00095     virtual ~CompoundTransliterator();
00096 
00101     CompoundTransliterator(const CompoundTransliterator&);
00102 
00107     CompoundTransliterator& operator=(const CompoundTransliterator&);
00108 
00113     Transliterator* clone(void) const;
00114 
00120     virtual int32_t getCount(void) const;
00121 
00128     virtual const Transliterator& getTransliterator(int32_t index) const;
00129 
00133     void setTransliterators(Transliterator* const transliterators[],
00134                             int32_t count);
00135 
00139     void adoptTransliterators(Transliterator* adoptedTransliterators[],
00140                               int32_t count);
00141 
00148     virtual void adoptFilter(UnicodeFilter* f);
00149 
00154     virtual void handleTransliterate(Replaceable& text, UTransPosition& index,
00155                                      UBool incremental) const;
00156 
00157 private:
00158 
00159     void init(const UnicodeString& id,
00160               UTransDirection dir,
00161               UnicodeFilter* adoptedFilter,
00162               UErrorCode& status);
00163 
00169     UnicodeString joinIDs(Transliterator* const transliterators[],
00170                           int32_t transCount);
00171 
00175     UnicodeString* split(const UnicodeString& s,
00176                          UChar divider,
00177                          int32_t* countPtr);
00178 
00179     void freeTransliterators(void);
00180 
00181     void computeMaximumContextLength(void);
00182 };
00183 #endif

Generated at Fri Dec 15 12:12:31 2000 for ICU 1.7 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000