Main Page   Class Hierarchy   Compound List   File List   Header Files   Sources   Compound Members   File Members  

cpdtrans.h

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 
00064     CompoundTransliterator(Transliterator* const transliterators[],
00065                            int32_t count,
00066                            UnicodeFilter* adoptedFilter = 0);
00067 
00076     CompoundTransliterator(const UnicodeString& ID,
00077                            UTransDirection dir,
00078                            UnicodeFilter* adoptedFilter,
00079                            UErrorCode& status);
00080 
00086     CompoundTransliterator(const UnicodeString& ID,
00087                            UErrorCode& status);
00088 
00093     virtual ~CompoundTransliterator();
00094 
00099     CompoundTransliterator(const CompoundTransliterator&);
00100 
00105     CompoundTransliterator& operator=(const CompoundTransliterator&);
00106 
00111     Transliterator* clone(void) const;
00112 
00118     virtual int32_t getCount(void) const;
00119 
00126     virtual const Transliterator& getTransliterator(int32_t index) const;
00127 
00131     void setTransliterators(Transliterator* const transliterators[],
00132                             int32_t count);
00133 
00137     void adoptTransliterators(Transliterator* adoptedTransliterators[],
00138                               int32_t count);
00139 
00146     virtual void adoptFilter(UnicodeFilter* f);
00147 
00152     virtual void handleTransliterate(Replaceable& text, UTransPosition& index,
00153                                      UBool incremental) const;
00154 
00155 private:
00156 
00157     void init(const UnicodeString& ID,
00158               UTransDirection dir,
00159               UnicodeFilter* adoptedFilter,
00160               UErrorCode& status);
00161 
00167     UnicodeString joinIDs(Transliterator* const transliterators[],
00168                           int32_t count);
00169 
00173     UnicodeString* split(const UnicodeString& s,
00174                          UChar divider,
00175                          int32_t& count);
00176 
00177     void freeTransliterators(void);
00178 
00179     void computeMaximumContextLength(void);
00180 };
00181 #endif

Generated at Wed Aug 16 16:05:33 2000 for ICU1.6 by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999