Package com.ibm.icu.impl
Class CaseMapImpl
java.lang.Object
com.ibm.icu.impl.CaseMapImpl
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
static final class
Implementation of UCaseProps.ContextIterator, iterates over a String.private static final class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final char
private static final Trie2_16
private static final int
static final int
Omit unchanged text when case-mapping with Edits.static final int
private static final int
Bit mask for the titlecasing index adjustment options bit set.private static final int
Bit mask for the titlecasing iterator options bit field.static final int
static final int
private static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
addTitleAdjustmentOption
(int options, int newOption) static int
addTitleIteratorOption
(int options, int newOption) private static int
appendCodePoint
(Appendable a, int c) private static void
appendResult
(int result, Appendable dest, int cpLength, int options, Edits edits) Appends a full case mapping result, seeUCaseProps.MAX_STRING_LENGTH
.private static final void
appendUnchanged
(CharSequence src, int start, int length, Appendable dest, int options, Edits edits) private static String
applyEdits
(CharSequence src, StringBuilder replacementChars, Edits edits) static String
fold
(int options, CharSequence src) static <A extends Appendable>
Afold
(int options, CharSequence src, A dest, Edits edits) static BreakIterator
getTitleBreakIterator
(ULocale locale, int options, BreakIterator iter) static BreakIterator
getTitleBreakIterator
(Locale locale, int options, BreakIterator iter) private static void
internalToLower
(int caseLocale, int options, CharSequence src, int srcStart, int srcLimit, CaseMapImpl.StringContextIterator iter, Appendable dest, Edits edits) caseLocale >= 0: Lowercases [srcStart..srcLimit[ but takes context [0..srcLength[ into account.private static void
internalToUpper
(int caseLocale, int options, CharSequence src, Appendable dest, Edits edits) private static boolean
isLNS
(int c) private static <A extends Appendable>
intmaybeTitleDutchIJ
(CharSequence src, int c, int start, int segmentLimit, A dest, int options, Edits edits) Input: c is a letter I with or without acute accent.static String
toLower
(int caseLocale, int options, CharSequence src) static <A extends Appendable>
AtoLower
(int caseLocale, int options, CharSequence src, A dest, Edits edits) static String
toTitle
(int caseLocale, int options, BreakIterator iter, CharSequence src) static <A extends Appendable>
AtoTitle
(int caseLocale, int options, BreakIterator titleIter, CharSequence src, A dest, Edits edits) static String
toUpper
(int caseLocale, int options, CharSequence src) static <A extends Appendable>
AtoUpper
(int caseLocale, int options, CharSequence src, A dest, Edits edits)
-
Field Details
-
TITLECASE_WHOLE_STRING
public static final int TITLECASE_WHOLE_STRING- See Also:
-
TITLECASE_SENTENCES
public static final int TITLECASE_SENTENCES- See Also:
-
TITLECASE_ITERATOR_MASK
private static final int TITLECASE_ITERATOR_MASKBit mask for the titlecasing iterator options bit field. Currently only 3 out of 8 values are used: 0 (words), TITLECASE_WHOLE_STRING, TITLECASE_SENTENCES. See stringoptions.h.- See Also:
-
TITLECASE_ADJUST_TO_CASED
public static final int TITLECASE_ADJUST_TO_CASED- See Also:
-
TITLECASE_ADJUSTMENT_MASK
private static final int TITLECASE_ADJUSTMENT_MASKBit mask for the titlecasing index adjustment options bit set. Currently two bits are defined: TITLECASE_NO_BREAK_ADJUSTMENT, TITLECASE_ADJUST_TO_CASED. See stringoptions.h.- See Also:
-
ACUTE
private static final char ACUTE- See Also:
-
U_GC_M_MASK
private static final int U_GC_M_MASK- See Also:
-
LNS
private static final int LNS- See Also:
-
OMIT_UNCHANGED_TEXT
public static final int OMIT_UNCHANGED_TEXTOmit unchanged text when case-mapping with Edits.- See Also:
-
CASE_TRIE
-
-
Constructor Details
-
CaseMapImpl
public CaseMapImpl()
-
-
Method Details
-
addTitleAdjustmentOption
public static int addTitleAdjustmentOption(int options, int newOption) -
isLNS
private static boolean isLNS(int c) -
addTitleIteratorOption
public static int addTitleIteratorOption(int options, int newOption) -
getTitleBreakIterator
-
getTitleBreakIterator
-
appendCodePoint
- Throws:
IOException
-
appendResult
private static void appendResult(int result, Appendable dest, int cpLength, int options, Edits edits) throws IOException Appends a full case mapping result, seeUCaseProps.MAX_STRING_LENGTH
.- Throws:
IOException
-
appendUnchanged
private static final void appendUnchanged(CharSequence src, int start, int length, Appendable dest, int options, Edits edits) throws IOException - Throws:
IOException
-
applyEdits
-
internalToLower
private static void internalToLower(int caseLocale, int options, CharSequence src, int srcStart, int srcLimit, CaseMapImpl.StringContextIterator iter, Appendable dest, Edits edits) throws IOException caseLocale >= 0: Lowercases [srcStart..srcLimit[ but takes context [0..srcLength[ into account. caseLocale invalid input: '<' 0: Case-folds [srcStart..srcLimit[.- Throws:
IOException
-
internalToUpper
private static void internalToUpper(int caseLocale, int options, CharSequence src, Appendable dest, Edits edits) throws IOException - Throws:
IOException
-
toLower
-
toLower
public static <A extends Appendable> A toLower(int caseLocale, int options, CharSequence src, A dest, Edits edits) -
toUpper
-
toUpper
public static <A extends Appendable> A toUpper(int caseLocale, int options, CharSequence src, A dest, Edits edits) -
toTitle
-
toTitle
public static <A extends Appendable> A toTitle(int caseLocale, int options, BreakIterator titleIter, CharSequence src, A dest, Edits edits) -
maybeTitleDutchIJ
private static <A extends Appendable> int maybeTitleDutchIJ(CharSequence src, int c, int start, int segmentLimit, A dest, int options, Edits edits) throws IOException Input: c is a letter I with or without acute accent. start is the index in src after c, and is less than segmentLimit. If a plain i/I is followed by a plain j/J, or an i/I with acute (precomposed or decomposed) is followed by a j/J with acute, then we output accordingly.- Returns:
- the src index after the titlecased sequence, or the start index if no Dutch IJ
- Throws:
IOException
-
fold
-
fold
-