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::UnicodeSet, and icu::UnicodeFilter.

## 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()

static 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