Index: icu46/source/i18n/brktrans.h |
=================================================================== |
--- icu46/source/i18n/brktrans.h (revision 0) |
+++ icu46/source/i18n/brktrans.h (revision 0) |
@@ -0,0 +1,113 @@ |
+/* |
+********************************************************************** |
+* Copyright (C) 2008-2009, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+********************************************************************** |
+* Date Name Description |
+* 05/11/2008 Andy Heninger Ported from Java |
+********************************************************************** |
+*/ |
+#ifndef BRKTRANS_H |
+#define BRKTRANS_H |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_TRANSLITERATION && !UCONFIG_NO_BREAK_ITERATION |
+ |
+#include "unicode/translit.h" |
+ |
+ |
+U_NAMESPACE_BEGIN |
+ |
+class UVector32; |
+ |
+/** |
+ * A transliterator that pInserts the specified characters at word breaks. |
+ * To restrict it to particular characters, use a filter. |
+ * TODO: this is an internal class, and only temporary. |
+ * Remove it once we have \b notation in Transliterator. |
+ */ |
+class BreakTransliterator : public Transliterator { |
+public: |
+ |
+ BreakTransliterator(const UnicodeString &ID, |
+ UnicodeFilter *adoptedFilter, |
+ BreakIterator *bi, |
+ const UnicodeString &insertion); |
+ /** |
+ * Constructs a transliterator. |
+ * @param adoptedFilter the filter for this transliterator. |
+ */ |
+ BreakTransliterator(UnicodeFilter* adoptedFilter = 0); |
+ |
+ /** |
+ * Destructor. |
+ */ |
+ virtual ~BreakTransliterator(); |
+ |
+ /** |
+ * Copy constructor. |
+ */ |
+ BreakTransliterator(const BreakTransliterator&); |
+ |
+ /** |
+ * Transliterator API. |
+ * @return A copy of the object. |
+ */ |
+ virtual Transliterator* clone(void) const; |
+ |
+ virtual const UnicodeString &getInsertion() const; |
+ |
+ virtual void setInsertion(const UnicodeString &insertion); |
+ |
+ /** |
+ * Return the break iterator used by this transliterator. |
+ * Caution, this is the live break iterator; it must not be used while |
+ * there is any possibility that this transliterator is using it. |
+ */ |
+ virtual BreakIterator *getBreakIterator(); |
+ |
+ |
+ /** |
+ * 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(); |
+ |
+ protected: |
+ |
+ /** |
+ * Implements {@link Transliterator#handleTransliterate}. |
+ * @param text the buffer holding transliterated and |
+ * untransliterated text |
+ * @param offset the start and limit of the text, the position |
+ * of the cursor, and the start and limit of transliteration. |
+ * @param incremental if true, assume more text may be coming after |
+ * pos.contextLimit. Otherwise, assume the text is complete. |
+ */ |
+ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, |
+ UBool isIncremental) const; |
+ |
+ private: |
+ BreakIterator *bi; |
+ UnicodeString fInsertion; |
+ UVector32 *boundaries; |
+ UnicodeString sText; // text from handleTransliterate(). |
+ |
+ static UnicodeString replaceableAsString(Replaceable &r); |
+ |
+ /** |
+ * Assignment operator. |
+ */ |
+ BreakTransliterator& operator=(const BreakTransliterator&); |
+}; |
+ |
+U_NAMESPACE_END |
+ |
+#endif /* #if !UCONFIG_NO_TRANSLITERATION */ |
+ |
+#endif |
Property changes on: icu46/source/i18n/brktrans.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |