| Index: icu46/source/i18n/funcrepl.h
|
| ===================================================================
|
| --- icu46/source/i18n/funcrepl.h (revision 0)
|
| +++ icu46/source/i18n/funcrepl.h (revision 0)
|
| @@ -0,0 +1,123 @@
|
| +/*
|
| +**********************************************************************
|
| +* Copyright (c) 2002-2007, International Business Machines Corporation
|
| +* and others. All Rights Reserved.
|
| +**********************************************************************
|
| +* Date Name Description
|
| +* 02/04/2002 aliu Creation.
|
| +**********************************************************************
|
| +*/
|
| +
|
| +#ifndef FUNCREPL_H
|
| +#define FUNCREPL_H
|
| +
|
| +#include "unicode/utypes.h"
|
| +
|
| +#if !UCONFIG_NO_TRANSLITERATION
|
| +
|
| +#include "unicode/unifunct.h"
|
| +#include "unicode/unirepl.h"
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +class Transliterator;
|
| +
|
| +/**
|
| + * A replacer that calls a transliterator to generate its output text.
|
| + * The input text to the transliterator is the output of another
|
| + * UnicodeReplacer object. That is, this replacer wraps another
|
| + * replacer with a transliterator.
|
| + *
|
| + * @author Alan Liu
|
| + */
|
| +class FunctionReplacer : public UnicodeFunctor, public UnicodeReplacer {
|
| +
|
| + private:
|
| +
|
| + /**
|
| + * The transliterator. Must not be null. OWNED.
|
| + */
|
| + Transliterator* translit;
|
| +
|
| + /**
|
| + * The replacer object. This generates text that is then
|
| + * processed by 'translit'. Must not be null. OWNED.
|
| + */
|
| + UnicodeFunctor* replacer;
|
| +
|
| + public:
|
| +
|
| + /**
|
| + * Construct a replacer that takes the output of the given
|
| + * replacer, passes it through the given transliterator, and emits
|
| + * the result as output.
|
| + */
|
| + FunctionReplacer(Transliterator* adoptedTranslit,
|
| + UnicodeFunctor* adoptedReplacer);
|
| +
|
| + /**
|
| + * Copy constructor.
|
| + */
|
| + FunctionReplacer(const FunctionReplacer& other);
|
| +
|
| + /**
|
| + * Destructor
|
| + */
|
| + virtual ~FunctionReplacer();
|
| +
|
| + /**
|
| + * Implement UnicodeFunctor
|
| + */
|
| + virtual UnicodeFunctor* clone() const;
|
| +
|
| + /**
|
| + * UnicodeFunctor API. Cast 'this' to a UnicodeReplacer* pointer
|
| + * and return the pointer.
|
| + */
|
| + virtual UnicodeReplacer* toReplacer() const;
|
| +
|
| + /**
|
| + * UnicodeReplacer API
|
| + */
|
| + virtual int32_t replace(Replaceable& text,
|
| + int32_t start,
|
| + int32_t limit,
|
| + int32_t& cursor);
|
| +
|
| + /**
|
| + * UnicodeReplacer API
|
| + */
|
| + virtual UnicodeString& toReplacerPattern(UnicodeString& rule,
|
| + UBool escapeUnprintable) const;
|
| +
|
| + /**
|
| + * Implement UnicodeReplacer
|
| + */
|
| + virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const;
|
| +
|
| + /**
|
| + * UnicodeFunctor API
|
| + */
|
| + virtual void setData(const TransliterationRuleData*);
|
| +
|
| + /**
|
| + * ICU "poor man's RTTI", returns a UClassID for the actual class.
|
| + *
|
| + * @draft ICU 2.2
|
| + */
|
| + virtual UClassID getDynamicClassID() const;
|
| +
|
| + /**
|
| + * ICU "poor man's RTTI", returns a UClassID for this class.
|
| + *
|
| + * @draft ICU 2.2
|
| + */
|
| + static UClassID U_EXPORT2 getStaticClassID();
|
| +};
|
| +
|
| +U_NAMESPACE_END
|
| +
|
| +#endif /* #if !UCONFIG_NO_TRANSLITERATION */
|
| +#endif
|
| +
|
| +//eof
|
|
|
| Property changes on: icu46/source/i18n/funcrepl.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|