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

CollationElementIterator Class Reference

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

#include <coleitr.h>

List of all members.


Public Members

 ~CollationElementIterator ()
Destructor. More...

UBool operator== (const CollationElementIterator& other) const
Returns true if "other" is the same as "this". More...

UBool operator!= (const CollationElementIterator& other) const
Returns true if "other" is not the same as "this". More...

void reset (void)
Resets the cursor to the beginning of the string. More...

int32_t next (UErrorCode& status)
Gets the ordering priority of the next character in the string. More...

int32_t previous (UErrorCode& status)
Get the ordering priority of the previous collation element in the string. More...

int32_t getMaxExpansion (int32_t order) const
Return the maximum length of any expansion sequences that end with the specified comparison order. More...

int32_t strengthOrder (int32_t order) const
Gets the comparison order in the desired strength. More...

void setText (const UnicodeString& str, UErrorCode& status)
Sets the source string. More...

void setText (CharacterIterator& str, UErrorCode& status)
Sets the source string. More...

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

void setOffset (UTextOffset newOffset, UErrorCode& status)
Sets the offset of the currently processed character in the source string. More...

 CollationElementIterator (const CollationElementIterator& other)
Copy constructor. More...


Static Public Members

int32_t primaryOrder (int32_t order)
Gets the primary order of a collation order. More...

int32_t secondaryOrder (int32_t order)
Gets the secondary order of a collation order. More...

int32_t tertiaryOrder (int32_t order)
Gets the tertiary order of a collation order. More...

UBool isIgnorable (int32_t order)
Checks if a comparison order is ignorable. More...

int32_t const NULLORDER
NULLORDER indicates the iterator has consumed the last element.


Protected Members

 CollationElementIterator ( const UnicodeString& sourceText, const RuleBasedCollator* order, UErrorCode& status)
CollationElementIterator constructor. More...

 CollationElementIterator ( const CharacterIterator& sourceText, const RuleBasedCollator* order, UErrorCode& status)
CollationElementIterator constructor. More...

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


Friends

class  RuleBasedCollator


Detailed Description

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.

See also:
Collator , RuleBasedCollator
Version:
1.9 1/30/97
Author(s):
Helena Shih

Definition at line 86 of file coleitr.h.


Member Function Documentation

CollationElementIterator::~CollationElementIterator ()

Destructor.

Stable:

UBool CollationElementIterator::operator== (const CollationElementIterator & other) const

Returns true if "other" is the same as "this".

Stable:

UBool CollationElementIterator::operator!= (const CollationElementIterator & other) const

Returns true if "other" is not the same as "this".

Stable:

void CollationElementIterator::reset (void)

Resets the cursor to the beginning of the string.

Stable:

int32_t CollationElementIterator::next (UErrorCode & status)

Gets the ordering priority of the next character in the string.

Parameters:
status   the error code status.
Returns:
the next character's ordering. Returns NULLORDER if the end of string is reached.
Stable:

int32_t CollationElementIterator::previous (UErrorCode & status)

Get the ordering priority of the previous collation element in the string.

Parameters:
status   the error code status.
Returns:
the previous element's ordering. Returns NULLORDER if the beginning of string is reached.
Stable:

int32_t CollationElementIterator::getMaxExpansion (int32_t order) const [inline]

Return the maximum length of any expansion sequences that end with the specified comparison order.

Parameters:
order   a collation order returned by previous or next.
Returns:
the maximum length of any expansion sequences ending with the specified order.
Stable:

Definition at line 366 of file coleitr.h.

int32_t CollationElementIterator::strengthOrder (int32_t order) const

Gets the comparison order in the desired strength.

Ignore the other differences.

Parameters:
order   The order value
Stable:

void CollationElementIterator::setText (const UnicodeString & str, UErrorCode & status)

Sets the source string.

Parameters:
str   the source string.
status   the error code status.
Stable:

void CollationElementIterator::setText (CharacterIterator & str, UErrorCode & status)

Sets the source string.

Parameters:
str   the source character iterator.
status   the error code status.
Stable:

UTextOffset CollationElementIterator::getOffset (void) const

Gets the offset of the currently processed character in the source string.

Returns:
the offset of the character.
Stable:

void CollationElementIterator::setOffset (UTextOffset newOffset, UErrorCode & status)

Sets the offset of the currently processed character in the source string.

Parameters:
newOffset   the new offset.
status   the error code status.
Returns:
the offset of the character.
Stable:

CollationElementIterator::CollationElementIterator (const CollationElementIterator & other)

Copy constructor.

Stable:

int32_t CollationElementIterator::primaryOrder (int32_t order) [inline, static]

Gets the primary order of a collation order.

Parameters:
order   the collation order
Returns:
the primary order of a collation order.
Stable:

Definition at line 338 of file coleitr.h.

int32_t CollationElementIterator::secondaryOrder (int32_t order) [inline, static]

Gets the secondary order of a collation order.

Parameters:
order   the collation order
Returns:
the secondary order of a collation order.
Stable:

Definition at line 349 of file coleitr.h.

int32_t CollationElementIterator::tertiaryOrder (int32_t order) [inline, static]

Gets the tertiary order of a collation order.

Parameters:
order   the collation order
Returns:
the tertiary order of a collation order.
Stable:

Definition at line 360 of file coleitr.h.

UBool CollationElementIterator::isIgnorable (int32_t order) [inline, static]

Checks if a comparison order is ignorable.

Parameters:
order   the collation order.
Returns:
TRUE if a character is ignorable, FALSE otherwise.
Stable:

Definition at line 372 of file coleitr.h.

CollationElementIterator::CollationElementIterator (const UnicodeString & sourceText, const RuleBasedCollator * order, UErrorCode & status) [protected]

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.
Stable:

CollationElementIterator::CollationElementIterator (const CharacterIterator & sourceText, const RuleBasedCollator * order, UErrorCode & status) [protected]

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.
Stable:

const CollationElementIterator & CollationElementIterator::operator= (const CollationElementIterator & other) [protected]

Assignment operator.

Stable:

Friends And Related Function Documentation

friend class RuleBasedCollator [friend]

Definition at line 300 of file coleitr.h.


Member Data Documentation

int32_t const CollationElementIterator::NULLORDER [static]

NULLORDER indicates the iterator has consumed the last element.

Definition at line 92 of file coleitr.h.


The documentation for this class was generated from the following file:
Generated at Mon Jun 5 12:53:12 2000 for ICU1.5 by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999