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

UnicodeMatcher Class Reference

UnicodeMatcher defines a protocol for objects that can match a range of characters in a Replaceable string. More...

#include <unimatch.h>

Inheritance diagram for UnicodeMatcher::

UnicodeFilter UnicodeSet List of all members.

Public Methods

virtual ~UnicodeMatcher ()
 Destructor. More...

virtual UnicodeMatcher * clone () const=0
 Returns a copy of this object. More...

virtual UMatchDegree matches (const Replaceable &text, int32_t &offset, int32_t limit, UBool incremental)=0
 Return a UMatchDegree value indicating the degree of match for the given text at the given offset. More...

virtual UnicodeStringtoPattern (UnicodeString &result, UBool escapeUnprintable=FALSE) const=0
 Returns a string representation of this matcher. More...

virtual UBool matchesIndexValue (uint8_t v) const=0
 Returns TRUE if this matcher will match a character c, where c & 0xFF == v, at offset, in the forward direction (with limit > offset). More...

virtual UClassID getDynamicClassID (void) const
 Returns a unique class ID polymorphically. More...


Static Public Methods

UClassID getStaticClassID (void)
 Return the class ID for this class. More...


Protected Methods

 UnicodeMatcher ()

Static Private Attributes

const char fgClassID
 Class identifier for subclasses of UnicodeMatcher that do not define their class (anonymous subclasses). More...


Detailed Description

UnicodeMatcher defines a protocol for objects that can match a range of characters in a Replaceable string.

Definition at line 56 of file unimatch.h.


Constructor & Destructor Documentation

UnicodeMatcher::~UnicodeMatcher   [inline, virtual]
 

Destructor.

Definition at line 195 of file unimatch.h.

UnicodeMatcher::UnicodeMatcher   [inline, protected]
 

Definition at line 194 of file unimatch.h.


Member Function Documentation

virtual UnicodeMatcher* UnicodeMatcher::clone void    const [pure virtual]
 

Returns a copy of this object.

All UnicodeMatcher objects have to support cloning in order to allow classes using UnicodeMatchers to implement cloning.

Reimplemented in UnicodeSet.

virtual UClassID UnicodeMatcher::getDynamicClassID void    const [inline, virtual]
 

Returns a unique class ID polymorphically.

This method is to implement a simple version of RTTI, since not all C++ compilers support genuine RTTI. Polymorphic operator==() and clone() methods call this method.

Concrete subclasses of UnicodeMatcher that wish clients to be able to identify them should implement getDynamicClassID() and also a static method and data member:

 static UClassID getStaticClassID() { return (UClassID)&fgClassID; }
 static char fgClassID;
 

Subclasses that do not implement this method will have a dynamic class ID of UnicodeMatcher::getStatisClassID().

Returns:
The class ID for this object. All objects of a given class have the same class ID. Objects of other classes have different class IDs.

Reimplemented in UnicodeSet.

Definition at line 179 of file unimatch.h.

UClassID UnicodeMatcher::getStaticClassID void    [inline, static]
 

Return the class ID for this class.

This is useful only for comparing to a return value from getDynamicClassID(). For example:

 .      Base* polymorphic_pointer = createPolymorphicObject();
 .      if (polymorphic_pointer->getDynamicClassID() ==
 .          Derived::getStaticClassID()) ...
 
Returns:
The class ID for all objects of this class.
Stable:

Reimplemented in UnicodeSet.

Definition at line 155 of file unimatch.h.

Referenced by UnicodeSet::getDynamicClassID().

virtual UMatchDegree UnicodeMatcher::matches const Replaceable   text,
int32_t   offset,
int32_t    limit,
UBool    incremental
[pure virtual]
 

Return a UMatchDegree value indicating the degree of match for the given text at the given offset.

Zero, one, or more characters may be matched.

Matching in the forward direction is indicated by limit > offset. Characters from offset forwards to limit-1 will be considered for matching.

Matching in the reverse direction is indicated by limit < offset. Characters from offset backwards to limit+1 will be considered for matching.

If limit == offset then the only match possible is a zero character match (which subclasses may implement if desired).

As a side effect, advance the offset parameter to the limit of the matched substring. In the forward direction, this will be the index of the last matched character plus one. In the reverse direction, this will be the index of the last matched character minus one.

Note: This method is not const because some classes may modify their state as the result of a match.

Parameters:
text  the text to be matched
offset  on input, the index into text at which to begin matching. On output, the limit of the matched text. The number of matched characters is the output value of offset minus the input value. Offset should always point to the HIGH SURROGATE (leading code unit) of a pair of surrogates, both on entry and upon return.
limit  the limit index of text to be matched. Greater than offset for a forward direction match, less than offset for a backward direction match. The last character to be considered for matching will be text.charAt(limit-1) in the forward direction or text.charAt(limit+1) in the backward direction.
incremental  if TRUE, then assume further characters may be inserted at limit and check for partial matching. Otherwise assume the text as given is complete.
Returns:
a match degree value indicating a full match, a partial match, or a mismatch. If incremental is FALSE then U_PARTIAL_MATCH should never be returned.

Reimplemented in UnicodeFilter, and UnicodeSet.

virtual UBool UnicodeMatcher::matchesIndexValue uint8_t    v const [pure virtual]
 

Returns TRUE if this matcher will match a character c, where c & 0xFF == v, at offset, in the forward direction (with limit > offset).

This is used by RuleBasedTransliterator for indexing.

Reimplemented in UnicodeFilter, and UnicodeSet.

virtual UnicodeString& UnicodeMatcher::toPattern UnicodeString   result,
UBool    escapeUnprintable = FALSE
const [pure virtual]
 

Returns a string representation of this matcher.

If the result of calling this function is passed to the appropriate parser, it will produce another matcher that is equal to this one.

Parameters:
result  the string to receive the pattern. Previous contents will be deleted.
escapeUnprintable  if TRUE then convert unprintable character to their hex escape representations, \uxxxx or \Uxxxxxxxx. Unprintable characters are those other than U+000A, U+0020..U+007E.

Reimplemented in UnicodeFilter, and UnicodeSet.


Member Data Documentation

const char UnicodeMatcher::fgClassID [static, private]
 

Class identifier for subclasses of UnicodeMatcher that do not define their class (anonymous subclasses).

Reimplemented in UnicodeSet.

Definition at line 187 of file unimatch.h.


The documentation for this class was generated from the following file:
Generated on Mon Dec 3 19:01:06 2001 for ICU 2.0 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001