# UnicodeFilter Class Reference

`UnicodeFilter` defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Unicode characters. More...

`#include <unifilt.h>`

Inheritance diagram for UnicodeFilter:

## Public Member Functions
virtual | ~UnicodeFilter ()
| Destructor.
virtual UBool | contains (UChar32 c) const =0
| Returns `true` for characters that are in the selected subset.
virtual UnicodeMatcher * | toMatcher () const
| UnicodeFunctor API.
virtual UMatchDegree | matches (const Replaceable &text, int32_t &offset, int32_t limit, UBool incremental)
| Implement UnicodeMatcher API.
virtual void | setData (const TransliterationRuleData *)
| UnicodeFunctor API.
virtual UClassID | getDynamicClassID () const =0
| ICU "poor man's RTTI", returns a UClassID for the actual class.
## Static Public Member Functions
static UClassID | getStaticClassID ()
| ICU "poor man's RTTI", returns a UClassID for this class.

## Detailed Description

`UnicodeFilter` defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Unicode characters.

Currently, filters are used in conjunction with classes like Transliterator to only process selected characters through a transformation.

Note: UnicodeFilter currently stubs out two pure virtual methods of its base class, UnicodeMatcher. These methods are toPattern() and matchesIndexValue(). This is done so that filter classes that are not actually used as matchers -- specifically, those in the UnicodeFilterLogic component, and those in tests -- can continue to work without defining these methods. As long as a filter is not used in an RBT during real transliteration, these methods will not be called. However, this breaks the UnicodeMatcher base class protocol, and it is not a correct solution.

In the future we may revisit the UnicodeMatcher / UnicodeFilter hierarchy and either redesign it, or simply remove the stubs in UnicodeFilter and force subclasses to implement the full UnicodeMatcher protocol.

See also:
  UnicodeFilterLogic

Stable:
  ICU 2.0

Definition at line 59 of file unifilt.h.

## Constructor & Destructor Documentation

virtual UnicodeFilter::~UnicodeFilter | ( |  | ) | `[virtual]`

Destructor.

Stable:
  ICU 2.0

## Member Function Documentation

virtual UBool UnicodeFilter::contains | ( | UChar32 | c | ) | const`[pure virtual]`

Returns `true` for characters that are in the selected subset.

In other words, if a character is to be filtered, then `contains()` returns `false`.

Stable:
  ICU 2.0

Implemented in UnicodeSet.

virtual UClassID UnicodeFilter::getDynamicClassID | ( |  | ) | const`[pure virtual]`

ICU "poor man's RTTI", returns a UClassID for the actual class.

Stable:
  ICU 2.2

Implements UnicodeFunctor.

Implemented in UnicodeSet.

static UClassID UnicodeFilter::getStaticClassID | ( |  | ) | `[static]`

ICU "poor man's RTTI", returns a UClassID for this class.

Stable:
  ICU 2.2

Reimplemented from UnicodeFunctor.

Reimplemented in UnicodeSet.

virtual UMatchDegree UnicodeFilter::matches | ( | const Replaceable & | text,
|  | int32_t & | offset,
|  | int32_t | limit,
|  | UBool | incremental |
| ) |  |  | `[virtual]`

Implement UnicodeMatcher API.

Stable:
  ICU 2.4

Implements UnicodeMatcher.

Reimplemented in UnicodeSet.

virtual void UnicodeFilter::setData | ( | const TransliterationRuleData * |  | ) | `[virtual]`

UnicodeFunctor API.

Nothing to do.

Stable:
  ICU 2.4

Implements UnicodeFunctor.

virtual UnicodeMatcher* UnicodeFilter::toMatcher | ( |  | ) | const`[virtual]`

UnicodeFunctor API.

Cast 'this' to a UnicodeMatcher* pointer and return the pointer.

Stable:
  ICU 2.4

Reimplemented from UnicodeFunctor.

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

- unifilt.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines