Package com.ibm.icu.impl.coll
Class FCDIterCollationIterator
- java.lang.Object
-
- com.ibm.icu.impl.coll.CollationIterator
-
- com.ibm.icu.impl.coll.IterCollationIterator
-
- com.ibm.icu.impl.coll.FCDIterCollationIterator
-
public final class FCDIterCollationIterator extends IterCollationIterator
Incrementally checks the input text for FCD and normalizes where necessary.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
FCDIterCollationIterator.State
-
Field Summary
Fields Modifier and Type Field Description private int
limit
private Normalizer2Impl
nfcImpl
private java.lang.StringBuilder
normalized
private int
pos
private java.lang.StringBuilder
s
private int
start
private FCDIterCollationIterator.State
state
-
Fields inherited from class com.ibm.icu.impl.coll.IterCollationIterator
iter
-
Fields inherited from class com.ibm.icu.impl.coll.CollationIterator
data, NO_CP_AND_CE32, trie
-
-
Constructor Summary
Constructors Constructor Description FCDIterCollationIterator(CollationData data, boolean numeric, UCharacterIterator ui, int startIndex)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
backwardNumCodePoints(int num)
protected void
forwardNumCodePoints(int num)
int
getOffset()
protected char
handleGetTrailSurrogate()
Called when handleNextCE32() returns a LEAD_SURROGATE_TAG for a lead surrogate code unit.protected long
handleNextCE32()
Returns the next code point and its local CE32 value.int
nextCodePoint()
Returns the next code point (with post-increment).private boolean
nextSegment()
Extends the FCD text segment forward or normalizes around pos.private void
normalize(java.lang.CharSequence s)
int
previousCodePoint()
Returns the previous code point (with pre-decrement).private boolean
previousSegment()
Extends the FCD text segment backward or normalizes around pos.void
resetToOffset(int newOffset)
Resets the iterator state and sets the position to the specified offset.private void
switchToBackward()
Switches to backward checking.private void
switchToForward()
Switches to forward checking if possible.-
Methods inherited from class com.ibm.icu.impl.coll.CollationIterator
appendCEsFromCE32, clearCEs, clearCEsIfNoneRemaining, equals, fetchCEs, forbidSurrogateCodePoints, getCE, getCE32FromBuilderData, getCEs, getCEsLength, getDataCE32, hashCode, isLeadSurrogate, isTrailSurrogate, makeCodePointAndCE32Pair, nextCE, previousCE, reset, reset, setCurrentCE
-
-
-
-
Field Detail
-
state
private FCDIterCollationIterator.State state
-
start
private int start
-
pos
private int pos
-
limit
private int limit
-
nfcImpl
private final Normalizer2Impl nfcImpl
-
s
private java.lang.StringBuilder s
-
normalized
private java.lang.StringBuilder normalized
-
-
Constructor Detail
-
FCDIterCollationIterator
public FCDIterCollationIterator(CollationData data, boolean numeric, UCharacterIterator ui, int startIndex)
-
-
Method Detail
-
resetToOffset
public void resetToOffset(int newOffset)
Description copied from class:CollationIterator
Resets the iterator state and sets the position to the specified offset. Subclasses must implement, and must call the parent class method, or CollationIterator.reset().- Overrides:
resetToOffset
in classIterCollationIterator
-
getOffset
public int getOffset()
- Overrides:
getOffset
in classIterCollationIterator
-
nextCodePoint
public int nextCodePoint()
Description copied from class:CollationIterator
Returns the next code point (with post-increment). Public for identical-level comparison and for testing.- Overrides:
nextCodePoint
in classIterCollationIterator
-
previousCodePoint
public int previousCodePoint()
Description copied from class:CollationIterator
Returns the previous code point (with pre-decrement). Public for identical-level comparison and for testing.- Overrides:
previousCodePoint
in classIterCollationIterator
-
handleNextCE32
protected long handleNextCE32()
Description copied from class:CollationIterator
Returns the next code point and its local CE32 value. Returns Collation.FALLBACK_CE32 at the end of the text (c<0) or when c's CE32 value is to be looked up in the base data (fallback). The code point is used for fallbacks, context and implicit weights. It is ignored when the returned CE32 is not special (e.g., FFFD_CE32). Returns the code point in bits 63..32 (signed) and the CE32 in bits 31..0.- Overrides:
handleNextCE32
in classIterCollationIterator
-
handleGetTrailSurrogate
protected char handleGetTrailSurrogate()
Description copied from class:CollationIterator
Called when handleNextCE32() returns a LEAD_SURROGATE_TAG for a lead surrogate code unit. Returns the trail surrogate in that case and advances past it, if a trail surrogate follows the lead surrogate. Otherwise returns any other code unit and does not advance.- Overrides:
handleGetTrailSurrogate
in classIterCollationIterator
-
forwardNumCodePoints
protected void forwardNumCodePoints(int num)
- Overrides:
forwardNumCodePoints
in classIterCollationIterator
-
backwardNumCodePoints
protected void backwardNumCodePoints(int num)
- Overrides:
backwardNumCodePoints
in classIterCollationIterator
-
switchToForward
private void switchToForward()
Switches to forward checking if possible.
-
nextSegment
private boolean nextSegment()
Extends the FCD text segment forward or normalizes around pos.- Returns:
- true if success
-
switchToBackward
private void switchToBackward()
Switches to backward checking.
-
previousSegment
private boolean previousSegment()
Extends the FCD text segment backward or normalizes around pos.- Returns:
- true if success
-
normalize
private void normalize(java.lang.CharSequence s)
-
-