ICU 74.2: icu::UnicodeFilter Class Reference

ICU 74.2 74.2

Public Member Functions | Static Public Member Functions
icu::UnicodeFilter Class Referenceabstract

`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 icu::UnicodeFilter:

## Public Member Functions
virtual | ~UnicodeFilter ()
| Destructor.
virtual UnicodeFilter * | clone () const override=0
| Clones this object polymorphically.
virtual UBool | contains (UChar32 c) const =0
| Returns `true` for characters that are in the selected subset.
virtual UnicodeMatcher * | toMatcher () const override
| UnicodeFunctor API.
virtual UMatchDegree | matches (const Replaceable &text, int32_t &offset, int32_t limit, UBool incremental) override
| Implement UnicodeMatcher API.
virtual void | setData (const TransliterationRuleData *) override
| UnicodeFunctor API.
Public Member Functions inherited from icu::UnicodeFunctor
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 (void) 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.
virtual UClassID | getDynamicClassID () const
| ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
Public Member Functions inherited from icu::UnicodeMatcher
virtual | ~UnicodeMatcher ()
| Destructor.
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.
virtual UnicodeString & | toPattern (UnicodeString &result, UBool escapeUnprintable=false) const =0
| Returns a string representation of this matcher.
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).
virtual void | addMatchSetTo (UnicodeSet &toUnionTo) const =0
| Union the set of all characters that may be matched by this object into the given set.

## Static Public Member Functions
static UClassID | getStaticClassID ()
| ICU "poor man's RTTI", returns a UClassID for this class.
Static Public Member Functions inherited from icu::UnicodeFunctor
static UClassID | getStaticClassID (void)
| Return the class ID 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 65 of file unifilt.h.

## Constructor & Destructor Documentation

## ◆ ~UnicodeFilter()

virtual icu::UnicodeFilter::~UnicodeFilter | ( |  | ) |
| virtual

Destructor.

Stable:
  ICU 2.0

## Member Function Documentation

## ◆ clone()

virtual UnicodeFilter * icu::UnicodeFilter::clone | ( |  | ) | const
| overridepure virtual

Clones this object polymorphically.

The caller owns the result and should delete it when done.

Returns
  clone, or nullptr if an error occurred

Stable:
  ICU 2.4

Implements icu::UnicodeFunctor.

Implemented in icu::UnicodeSet.

## ◆ contains()

virtual UBool icu::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 icu::UnicodeSet.

## ◆ getStaticClassID()

static UClassID icu::UnicodeFilter::getStaticClassID | ( |  | ) |
| static

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

Stable:
  ICU 2.2

## ◆ matches()

virtual UMatchDegree icu::UnicodeFilter::matches | ( | const Replaceable & | text,
|  | int32_t & | offset,
|  | int32_t | limit,
|  | UBool | incremental
| ) |  |
| overridevirtual

Implement UnicodeMatcher API.

Stable:
  ICU 2.4

Implements icu::UnicodeMatcher.

Reimplemented in icu::UnicodeSet.

## ◆ setData()

virtual void icu::UnicodeFilter::setData | ( | const TransliterationRuleData * |  | ) |
| overridevirtual

UnicodeFunctor API.

Nothing to do.

Stable:
  ICU 2.4

Implements icu::UnicodeFunctor.

## ◆ toMatcher()

virtual UnicodeMatcher * icu::UnicodeFilter::toMatcher | ( |  | ) | const
| overridevirtual

UnicodeFunctor API.

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

Stable:
  ICU 2.4

Reimplemented from icu::UnicodeFunctor.

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

- common/unicode/unifilt.h