class U_I18N_API CollationElementIterator

The CollationElementIterator class is used as an iterator to walk through each character of an international string

Public Methods

int32_t strengthOrder(int32_t order) const
Gets the comparison order in the desired strength
void setText(const UnicodeString& str, UErrorCode& status)
Sets the source string
void setText(CharacterIterator& str, UErrorCode& status)
Sets the source string
static bool_t isIgnorable(int32_t order)
Checks if a comparison order is ignorable
UTextOffset getOffset(void) const
Gets the offset of the currently processed character in the source string
void setOffset(UTextOffset newOffset, UErrorCode& status)
Sets the offset of the currently processed character in the source string
CollationElementIterator(const CollationElementIterator& other)
Copy constructor
inline int32_t CollationElementIterator::primaryOrder(int32_t order)
Get the primary order of a collation order
inline int32_t CollationElementIterator::secondaryOrder(int32_t order)
Get the secondary order of a collation order
inline int32_t CollationElementIterator::tertiaryOrder(int32_t order)
Get the tertiary order of a collation order

Protected Methods

CollationElementIterator( const UnicodeString& sourceText, const RuleBasedCollator* order, UErrorCode& status)
CollationElementIterator constructor
CollationElementIterator( const CharacterIterator& sourceText, const RuleBasedCollator* order, UErrorCode& status)
CollationElementIterator constructor
const CollationElementIterator& operator=(const CollationElementIterator& other)
Assignment operator

Documentation

The CollationElementIterator class is used as an iterator to walk through each character of an international string. Use the iterator to return the ordering priority of the positioned character. The ordering priority of a character, which we refer to as a key, defines how a character is collated in the given collation object. For example, consider the following in Spanish:
.       "ca" -> the first key is key('c') and second key is key('a').
.       "cha" -> the first key is key('ch') and second key is key('a').
And in German,
.       "�b"-> the first key is key('a'), the second key is key('e'), and
.       the third key is key('b').
The key of a character, is an integer composed of primary order(short), secondary order(char), and tertiary order(char). Java strictly defines the size and signedness of its primitive data types. Therefore, the static functions primaryOrder(), secondaryOrder(), and tertiaryOrder() return int32_t to ensure the correctness of the key value.

Example of the iterator usage: (without error checking)

.  void CollationElementIterator_Example()
.  {
.      UnicodeString str = "This is a test";
.      UErrorCode success = U_ZERO_ERROR;
.      RuleBasedCollator* rbc =
.          (RuleBasedCollator*) RuleBasedCollator::createInstance(success);
.      CollationElementIterator* c =
.          rbc->createCollationElementIterator( str );
.      int32_t order = c->next(success);
.      int32_t primaryOrder = CollationElementIterator::primaryOrder( order );
.      delete c;
.      delete rbc;
.  }

CollationElementIterator::next returns the collation order of the next character based on the comparison level of the collator. A collation order consists of primary order, secondary order and tertiary order. The data type of the collation order is int32_t. The first 16 bits of a collation order is its primary order; the next 8 bits is the secondary order and the last 8 bits is the tertiary order.

int32_t strengthOrder(int32_t order) const
Gets the comparison order in the desired strength. Ignore the other differences.
Parameters:
order - The order value

void setText(const UnicodeString& str, UErrorCode& status)
Sets the source string
Parameters:
str - the source string.
status - the error code status.

void setText(CharacterIterator& str, UErrorCode& status)
Sets the source string
Parameters:
str - the source character iterator.
status - the error code status.

static bool_t isIgnorable(int32_t order)
Checks if a comparison order is ignorable
Returns:
TRUE if a character is ignorable, FALSE otherwise.
Parameters:
order - the collation order.

UTextOffset getOffset(void) const
Gets the offset of the currently processed character in the source string
Returns:
the offset of the character.

void setOffset(UTextOffset newOffset, UErrorCode& status)
Sets the offset of the currently processed character in the source string
Returns:
the offset of the character.
Parameters:
newOffset - the new offset.
status - the error code status.

CollationElementIterator( const UnicodeString& sourceText, const RuleBasedCollator* order, UErrorCode& status)
CollationElementIterator constructor. This takes the source string and the collation object. The cursor will walk thru the source string based on the predefined collation rules. If the source string is empty, NULLORDER will be returned on the calls to next().
Parameters:
sourceText - the source string.
startOffset - the beginning offset of the string where the cursor starts the iterating.
endOffset - the ending offset of the string where the cursor stops the iterating.
order - the collation object.

CollationElementIterator( const CharacterIterator& sourceText, const RuleBasedCollator* order, UErrorCode& status)
CollationElementIterator constructor. This takes the source string and the collation object. The cursor will walk thru the source string based on the predefined collation rules. If the source string is empty, NULLORDER will be returned on the calls to next().
Parameters:
sourceText - the source string.
startOffset - the beginning offset of the string where the cursor starts the iterating.
endOffset - the ending offset of the string where the cursor stops the iterating.
order - the collation object.

const CollationElementIterator& operator=(const CollationElementIterator& other)
Assignment operator

CollationElementIterator(const CollationElementIterator& other)
Copy constructor

inline int32_t CollationElementIterator::primaryOrder(int32_t order)
Get the primary order of a collation order
Returns:
the primary order of a collation order.
Parameters:
order - the collation order

inline int32_t CollationElementIterator::secondaryOrder(int32_t order)
Get the secondary order of a collation order
Returns:
the secondary order of a collation order.
Parameters:
order - the collation order

inline int32_t CollationElementIterator::tertiaryOrder(int32_t order)
Get the tertiary order of a collation order
Returns:
the tertiary order of a collation order.
Parameters:
order - the collation order


This class has no child classes.
Author:
Helena Shih
Version:
1.9 1/30/97
See Also:
Collator
RuleBasedCollator

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de