Class BreakTransliterator
- All Implemented Interfaces:
StringTransform, Transform<String,String>, Cloneable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final classprivate static classNested classes/interfaces inherited from class Transliterator
Transliterator.Factory, Transliterator.Position -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BreakIteratorprivate String(package private) static final intCLOVER:ONFields inherited from class Transliterator
DEBUG, FORWARD, ID_DELIM, ID_SEP, REVERSE, VARIANT_SEP -
Constructor Summary
ConstructorsConstructorDescriptionBreakTransliterator(String ID, UnicodeFilter filter) BreakTransliterator(String ID, UnicodeFilter filter, BreakIterator bi, String insertion) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSourceTargetSet(UnicodeSet inputFilter, UnicodeSet sourceSet, UnicodeSet targetSet) Returns the set of all characters that may be generated as replacement text by this transliterator, filtered by BOTH the input filter, and the current getFilter().CLOVER:ONCLOVER:OFFprotected voidhandleTransliterate(Replaceable text, Transliterator.Position pos, boolean incremental) Abstract method that concrete subclasses define to implement their transliteration algorithm.(package private) static voidregister()Registers standard variants with the system.voidCLOVER:OFFvoidsetInsertion(String insertion) CLOVER:OFFMethods inherited from class Transliterator
baseToRules, createFromRules, filteredTransliterate, finishTransliteration, getAvailableIDs, getAvailableSources, getAvailableTargets, getAvailableVariants, getBasicInstance, getDisplayName, getDisplayName, getDisplayName, getElements, getFilter, getFilterAsUnicodeSet, getID, getInstance, getInstance, getInverse, getMaximumContextLength, getSourceSet, getTargetSet, handleGetSourceSet, registerAlias, registerAny, registerClass, registerFactory, registerInstance, registerInstance, registerSpecialInverse, setFilter, setID, setMaximumContextLength, toRules, transform, transliterate, transliterate, transliterate, transliterate, transliterate, transliterate, unregister
-
Field Details
-
bi
-
insertion
-
LETTER_OR_MARK_MASK
static final int LETTER_OR_MARK_MASKCLOVER:ON- See Also:
-
-
Constructor Details
-
BreakTransliterator
-
BreakTransliterator
-
-
Method Details
-
getInsertion
CLOVER:OFF -
setInsertion
CLOVER:OFF -
getBreakIterator
CLOVER:ON -
setBreakIterator
CLOVER:OFF -
handleTransliterate
protected void handleTransliterate(Replaceable text, Transliterator.Position pos, boolean incremental) Description copied from class:TransliteratorAbstract method that concrete subclasses define to implement their transliteration algorithm. This method handles both incremental and non-incremental transliteration. LetoriginalStartrefer to the value ofpos.startupon entry.- If
incrementalis false, then this method should transliterate all characters betweenpos.startandpos.limit. Upon returnpos.startmust ==pos.limit. - If
incrementalis true, then this method should transliterate all characters betweenpos.startandpos.limitthat can be unambiguously transliterated, regardless of future insertions of text atpos.limit. Upon return,pos.startshould be in the range [originalStart,pos.limit).pos.startshould be positioned such that characters [originalStart,pos.start) will not be changed in the future by this transliterator and characters [pos.start,pos.limit) are unchanged.
Implementations of this method should also obey the following invariants:
-
pos.limitandpos.contextLimitshould be updated to reflect changes in length of the text betweenpos.startandpos.limit. The differencepos.contextLimit - pos.limitshould not change. pos.contextStartshould not change.- Upon return, neither
pos.startnorpos.limitshould be less thanoriginalStart. - Text before
originalStartand text afterpos.limitshould not change. - Text before
pos.contextStartand text afterpos.contextLimitshould be ignored.
Subclasses may safely assume that all characters in [
pos.start,pos.limit) are filtered. In other words, the filter has already been applied by the time this method is called. SeefilteredTransliterate().This method is not for public consumption. Calling this method directly will transliterate [
pos.start,pos.limit) without applying the filter. End user code should calltransliterate()instead of this method. Subclass code should callfilteredTransliterate()instead of this method.- Specified by:
handleTransliteratein classTransliterator- Parameters:
text- the buffer holding transliterated and untransliterated textpos- the indices indicating the start, limit, context start, and context limit of the text.incremental- if true, assume more text may be inserted atpos.limitand act accordingly. Otherwise, transliterate all text betweenpos.startandpos.limitand movepos.startup topos.limit.- See Also:
- If
-
register
static void register()Registers standard variants with the system. Called by Transliterator during initialization. -
addSourceTargetSet
Description copied from class:TransliteratorReturns the set of all characters that may be generated as replacement text by this transliterator, filtered by BOTH the input filter, and the current getFilter().SHOULD BE OVERRIDDEN BY SUBCLASSES. It is probably an error for any transliterator to NOT override this, but we can't force them to for backwards compatibility.
Other methods vector through this.
When gathering the information on source and target, the compound transliterator makes things complicated. For example, suppose we have:
Global FILTER = [ax] a > b; :: NULL; b > c; x > d;
While the filter just allows a and x, b is an intermediate result, which could produce c. So the source and target sets cannot be gathered independently. What we have to do is filter the sources for the first transliterator according to the global filter, intersect that transliterator's filter. Based on that we get the target. The next transliterator gets as a global filter (global + last target). And so on.There is another complication:
Global FILTER = [ax] a >|b; b >c;
Even though b would be filtered from the input, whenever we have a backup, it could be part of the input. So ideally we will change the global filter as we go.- Overrides:
addSourceTargetSetin classTransliterator- Parameters:
targetSet- TODO- See Also:
-