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

CompoundTransliterator Class Reference

A transliterator that is composed of two or more other transliterator objects linked together. More...

#include <cpdtrans.h>

Inheritance diagram for CompoundTransliterator:

Transliterator List of all members.

Public Methods

 CompoundTransliterator (Transliterator* const transliterators[], int32_t transliteratorCount, UnicodeFilter* adoptedFilter = 0)
 Constructs a new compound transliterator given an array of transliterators. More...

 CompoundTransliterator (const UnicodeString& id, UTransDirection dir, UnicodeFilter* adoptedFilter, UErrorCode& status)
 Constructs a new compound transliterator. More...

 CompoundTransliterator (const UnicodeString& id, UErrorCode& status)
 Constructs a new compound transliterator in the FORWARD direction with a NULL filter. More...

virtual ~CompoundTransliterator ()
 Destructor. More...

 CompoundTransliterator (const CompoundTransliterator&)
 Copy constructor. More...

CompoundTransliterator& operator= (const CompoundTransliterator&)
 Assignment operator. More...

Transliteratorclone (void) const
 Transliterator API. More...

virtual int32_t getCount (void) const
 Returns the number of transliterators in this chain. More...

virtual const TransliteratorgetTransliterator (int32_t index) const
 Returns the transliterator at the given index in this chain. More...

void setTransliterators (Transliterator* const transliterators[], int32_t count)
void adoptTransliterators (Transliterator* adoptedTransliterators[], int32_t count)
virtual void adoptFilter (UnicodeFilter* f)
 Override Transliterator. More...

virtual void handleTransliterate (Replaceable& text, UTransPosition& index, UBool incremental) const
 Implements. More...


Private Methods

void init (const UnicodeString& id, UTransDirection dir, UnicodeFilter* adoptedFilter, UErrorCode& status)
UnicodeString joinIDs (Transliterator* const transliterators[], int32_t transCount)
 Return the IDs of the given list of transliterators, concatenated with ';' delimiting them. More...

UnicodeStringsplit (const UnicodeString& s, UChar divider, int32_t* countPtr)
 Splits a string, as in JavaScript.

void freeTransliterators (void)
void computeMaximumContextLength (void)

Private Attributes

Transliterator** trans
UnicodeFilter** filters
 Array of original filters associated with transliterators. More...

int32_t count

Detailed Description

A transliterator that is composed of two or more other transliterator objects linked together.

For example, if one transliterator transliterates from script A to script B, and another transliterates from script B to script C, the two may be combined to form a new transliterator from A to C.

Composed transliterators may not behave as expected. For example, inverses may not combine to form the identity transliterator. See the class documentation for Transliterator for details.

If a non-null UnicodeFilter is applied to a CompoundTransliterator, it has the effect of being logically anded with the filter of each transliterator in the chain.

Copyright © IBM Corporation 1999. All rights reserved.

Author(s):
Alan Liu
Version:
RCSfile:
cpdtrans.h,v
Revision:
1.12
Date:
2000/12/09 02:37:40
Draft:

Definition at line 38 of file cpdtrans.h.


Constructor & Destructor Documentation

CompoundTransliterator::CompoundTransliterator ( Transliterator *const transliterators[],
int32_t transliteratorCount,
UnicodeFilter * adoptedFilter = 0 )
 

Constructs a new compound transliterator given an array of transliterators.

The array of transliterators may be of any length, including zero or one, however, useful compound transliterators have at least two components.

Parameters:
transliterators   array of Transliterator objects
transliteratorCount   The number of Transliterator objects in transliterators.
filter   the filter. Any character for which filter.contains() returns false will not be altered by this transliterator. If filter is null then no filtering is applied.
Draft:

CompoundTransliterator::CompoundTransliterator ( const UnicodeString & id,
UTransDirection dir,
UnicodeFilter * adoptedFilter,
UErrorCode & status )
 

Constructs a new compound transliterator.

Parameters:
filter   the filter. Any character for which filter.isIn() returns false will not be altered by this transliterator. If filter is null then no filtering is applied.
Draft:

CompoundTransliterator::CompoundTransliterator ( const UnicodeString & id,
UErrorCode & status )
 

Constructs a new compound transliterator in the FORWARD direction with a NULL filter.

Draft:

CompoundTransliterator::~CompoundTransliterator ( ) [virtual]
 

Destructor.

Draft:

CompoundTransliterator::CompoundTransliterator ( const CompoundTransliterator & )
 

Copy constructor.

Draft:


Member Function Documentation

void CompoundTransliterator::adoptFilter ( UnicodeFilter * f ) [virtual]
 

Override Transliterator.

Modify the transliterators that make up this compound transliterator so their filters are the logical AND of this transliterator's filter and their own. Original filters are kept in the filters array.

Reimplemented from Transliterator.

void CompoundTransliterator::adoptTransliterators ( Transliterator * adoptedTransliterators[],
int32_t count )
 

Draft:

Transliterator * CompoundTransliterator::clone ( void ) const [virtual]
 

Transliterator API.

Draft:

Reimplemented from Transliterator.

void CompoundTransliterator::computeMaximumContextLength ( void ) [private]
 

void CompoundTransliterator::freeTransliterators ( void ) [private]
 

int32_t CompoundTransliterator::getCount ( void ) const [virtual]
 

Returns the number of transliterators in this chain.

Returns:
number of transliterators in this chain.
Draft:

const Transliterator & CompoundTransliterator::getTransliterator ( int32_t index ) const [virtual]
 

Returns the transliterator at the given index in this chain.

Parameters:
index   index into chain, from 0 to getCount() - 1
Returns:
transliterator at the given index
Draft:

void CompoundTransliterator::handleTransliterate ( Replaceable & text,
UTransPosition & index,
UBool incremental ) const [virtual]
 

Implements.

Transliterator#handleTransliterate.

Draft:

Reimplemented from Transliterator.

void CompoundTransliterator::init ( const UnicodeString & id,
UTransDirection dir,
UnicodeFilter * adoptedFilter,
UErrorCode & status ) [private]
 

UnicodeString CompoundTransliterator::joinIDs ( Transliterator *const transliterators[],
int32_t transCount ) [private]
 

Return the IDs of the given list of transliterators, concatenated with ';' delimiting them.

Equivalent to the perlish expression join(';', map($_.getID(), transliterators).

CompoundTransliterator & CompoundTransliterator::operator= ( const CompoundTransliterator & )
 

Assignment operator.

Draft:

void CompoundTransliterator::setTransliterators ( Transliterator *const transliterators[],
int32_t count )
 

Draft:

UnicodeString * CompoundTransliterator::split ( const UnicodeString & s,
UChar divider,
int32_t * countPtr ) [private]
 

Splits a string, as in JavaScript.


Member Data Documentation

int32_t CompoundTransliterator::count [private]
 

Definition at line 47 of file cpdtrans.h.

UnicodeFilter ** CompoundTransliterator::filters [private]
 

Array of original filters associated with transliterators.

Definition at line 45 of file cpdtrans.h.

Transliterator ** CompoundTransliterator::trans [private]
 

Definition at line 40 of file cpdtrans.h.


The documentation for this class was generated from the following file:
Generated at Fri Dec 15 12:13:12 2000 for ICU 1.7 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000