Loading...
Searching...
No Matches
icu::UnicodeFunctor Class Referenceabstract

`UnicodeFunctor` is an abstract base class for objects that perform match and/or replace operations on Unicode strings. More...

`#include <unifunct.h>`

Inheritance diagram for icu::UnicodeFunctor:

## Public Member Functions

virtual | ~UnicodeFunctor ()
| Destructor.
virtual UnicodeFunctor * | clone () const =0
| Return a copy of this object.
virtual UnicodeMatcher * | toMatcher () const
| Cast 'this' to a UnicodeMatcher* pointer and return the pointer, or null if this is not a UnicodeMatcher*.
virtual UnicodeReplacer * | toReplacer () const
| Cast 'this' to a UnicodeReplacer* pointer and return the pointer, or null if this is not a UnicodeReplacer*.
virtual UClassID | getDynamicClassID () const override=0
| Returns a unique class ID polymorphically.
virtual void | setData (const TransliterationRuleData *)=0
| Set the data object associated with this functor.
Public Member Functions inherited from icu::UObject
virtual | ~UObject ()
| Destructor.

## Static Public Member Functions

static UClassID | getStaticClassID ()
| Return the class ID for this class.

## Detailed Description

`UnicodeFunctor` is an abstract base class for objects that perform match and/or replace operations on Unicode strings.

Author
  Alan Liu

Stable
  ICU 2.4

Definition at line 38 of file unifunct.h.

## Constructor & Destructor Documentation

## ~UnicodeFunctor()

virtual icu::UnicodeFunctor::~UnicodeFunctor | ( |  | ) |

virtual

Destructor.

Stable
  ICU 2.4

## Member Function Documentation

## clone()

virtual UnicodeFunctor * icu::UnicodeFunctor::clone | ( |  | ) | const

pure virtual

Return a copy of this object.

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

Stable
  ICU 2.4

Implemented in icu::UnicodeFilter, and icu::UnicodeSet.

## getDynamicClassID()

virtual UClassID icu::UnicodeFunctor::getDynamicClassID | ( |  | ) | const

override pure 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 UnicodeFunctor should use the macro UOBJECT_DEFINE_RTTI_IMPLEMENTATION from uobject.h to provide definitions getStaticClassID and getDynamicClassID.

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.

Stable
  ICU 2.4

Reimplemented from icu::UObject.

Implemented in icu::UnicodeSet.

## getStaticClassID()

UClassID icu::UnicodeFunctor::getStaticClassID | ( |  | ) |

static

Return the class ID for this class.

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

Returns
  The class ID for all objects of this class.

Stable
  ICU 2.0

## setData()

virtual void icu::UnicodeFunctor::setData | ( | const TransliterationRuleData * |  | ) |

pure virtual

Set the data object associated with this functor.

The data object provides context for functor-to-standin mapping. This method is required when assigning a functor to a different data object. This function MAY GO AWAY later if the architecture is changed to pass data object pointers through the API.

Internal
  Do not use. This API is for internal use only. ICU 2.1

Implemented in icu::UnicodeFilter.

## toMatcher()

virtual UnicodeMatcher * icu::UnicodeFunctor::toMatcher | ( |  | ) | const

virtual

Cast 'this' to a UnicodeMatcher* pointer and return the pointer, or null if this is not a UnicodeMatcher*.

Subclasses that mix in UnicodeMatcher as a base class must override this. This protocol is required because a pointer to a UnicodeFunctor cannot be cast to a pointer to a UnicodeMatcher, since UnicodeMatcher is a mixin that does not derive from UnicodeFunctor.

Stable
  ICU 2.4

Reimplemented in icu::UnicodeFilter.

## toReplacer()

virtual UnicodeReplacer * icu::UnicodeFunctor::toReplacer | ( |  | ) | const

virtual

Cast 'this' to a UnicodeReplacer* pointer and return the pointer, or null if this is not a UnicodeReplacer*.

Subclasses that mix in UnicodeReplacer as a base class must override this. This protocol is required because a pointer to a UnicodeFunctor cannot be cast to a pointer to a UnicodeReplacer, since UnicodeReplacer is a mixin that does not derive from UnicodeFunctor.

Stable
  ICU 2.4

The documentation for this class was generated from the following file:

- common/unicode/unifunct.h