| Index: icu46/source/i18n/anytrans.h
|
| ===================================================================
|
| --- icu46/source/i18n/anytrans.h (revision 0)
|
| +++ icu46/source/i18n/anytrans.h (revision 0)
|
| @@ -0,0 +1,129 @@
|
| +/*
|
| +***********************************************************************
|
| +* Copyright (c) 2002-2007, International Business Machines Corporation
|
| +* and others. All Rights Reserved.
|
| +***********************************************************************
|
| +* Date Name Description
|
| +* 06/06/2002 aliu Creation.
|
| +***********************************************************************
|
| +*/
|
| +#ifndef _ANYTRANS_H_
|
| +#define _ANYTRANS_H_
|
| +
|
| +#include "unicode/utypes.h"
|
| +
|
| +#if !UCONFIG_NO_TRANSLITERATION
|
| +
|
| +#include "unicode/translit.h"
|
| +#include "unicode/uscript.h"
|
| +#include "uhash.h"
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +/**
|
| + * A transliterator named Any-T or Any-T/V, where T is the target
|
| + * script and V is the optional variant, that uses multiple
|
| + * transliterators, all going to T or T/V, all with script sources.
|
| + * The target must be a script. It partitions text into runs of the
|
| + * same script, and then based on the script of each run,
|
| + * transliterates from that script to the given target or
|
| + * target/variant. Adjacent COMMON or INHERITED script characters are
|
| + * included in each run.
|
| + *
|
| + * @author Alan Liu
|
| + */
|
| +class AnyTransliterator : public Transliterator {
|
| +
|
| + /**
|
| + * Cache mapping UScriptCode values to Transliterator*.
|
| + */
|
| + UHashtable* cache;
|
| +
|
| + /**
|
| + * The target or target/variant string.
|
| + */
|
| + UnicodeString target;
|
| +
|
| + /**
|
| + * The target script code. Never USCRIPT_INVALID_CODE.
|
| + */
|
| + UScriptCode targetScript;
|
| +
|
| +public:
|
| +
|
| + /**
|
| + * Destructor.
|
| + */
|
| + virtual ~AnyTransliterator();
|
| +
|
| + /**
|
| + * Copy constructor.
|
| + */
|
| + AnyTransliterator(const AnyTransliterator&);
|
| +
|
| + /**
|
| + * Transliterator API.
|
| + */
|
| + virtual Transliterator* clone() const;
|
| +
|
| + /**
|
| + * Implements {@link Transliterator#handleTransliterate}.
|
| + */
|
| + virtual void handleTransliterate(Replaceable& text, UTransPosition& index,
|
| + UBool incremental) const;
|
| +
|
| + /**
|
| + * ICU "poor man's RTTI", returns a UClassID for the actual class.
|
| + */
|
| + virtual UClassID getDynamicClassID() const;
|
| +
|
| + /**
|
| + * ICU "poor man's RTTI", returns a UClassID for this class.
|
| + */
|
| + U_I18N_API static UClassID U_EXPORT2 getStaticClassID();
|
| +
|
| +private:
|
| +
|
| + /**
|
| + * Private constructor
|
| + * @param id the ID of the form S-T or S-T/V, where T is theTarget
|
| + * and V is theVariant. Must not be empty.
|
| + * @param theTarget the target name. Must not be empty, and must
|
| + * name a script corresponding to theTargetScript.
|
| + * @param theVariant the variant name, or the empty string if
|
| + * there is no variant
|
| + * @param theTargetScript the script code corresponding to
|
| + * theTarget.
|
| + * @param ec error code, fails if the internal hashtable cannot be
|
| + * allocated
|
| + */
|
| + AnyTransliterator(const UnicodeString& id,
|
| + const UnicodeString& theTarget,
|
| + const UnicodeString& theVariant,
|
| + UScriptCode theTargetScript,
|
| + UErrorCode& ec);
|
| +
|
| + /**
|
| + * Returns a transliterator from the given source to our target or
|
| + * target/variant. Returns NULL if the source is the same as our
|
| + * target script, or if the source is USCRIPT_INVALID_CODE.
|
| + * Caches the result and returns the same transliterator the next
|
| + * time. The caller does NOT own the result and must not delete
|
| + * it.
|
| + */
|
| + Transliterator* getTransliterator(UScriptCode source) const;
|
| +
|
| + /**
|
| + * Registers standard transliterators with the system. Called by
|
| + * Transliterator during initialization.
|
| + */
|
| + static void registerIDs();
|
| +
|
| + friend class Transliterator; // for registerIDs()
|
| +};
|
| +
|
| +U_NAMESPACE_END
|
| +
|
| +#endif /* #if !UCONFIG_NO_TRANSLITERATION */
|
| +
|
| +#endif
|
|
|
| Property changes on: icu46/source/i18n/anytrans.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|