import com.ibm.icu.util.ICUUncheckedIOException;
import com.ibm.icu.util.ULocale;
-// TODO: rename to CaseMapImpl
-public final class CaseMap {
+public final class CaseMapImpl {
/**
* Implementation of UCaseProps.ContextIterator, iterates over a String.
* See ustrcase.c/utf16_caseContextIterator().
protected int dir; // 0=initial state >0=forward <0=backward
}
+ /**
+ * Omit unchanged text when case-mapping with Edits.
+ */
+ public static final int OMIT_UNCHANGED_TEXT = 0x4000;
+
private static int appendCodePoint(Appendable a, int c) throws IOException {
if (c <= Character.MAX_VALUE) {
a.append((char)c);
// (not) original code point
if (edits != null) {
edits.addUnchanged(cpLength);
- // TODO: remove package path
- if ((options & com.ibm.icu.text.CaseMap.OMIT_UNCHANGED_TEXT) != 0) {
+ if ((options & OMIT_UNCHANGED_TEXT) != 0) {
return;
}
}
if (length > 0) {
if (edits != null) {
edits.addUnchanged(length);
- // TODO: remove package path
- if ((options & com.ibm.icu.text.CaseMap.OMIT_UNCHANGED_TEXT) != 0) {
+ if ((options & OMIT_UNCHANGED_TEXT) != 0) {
return;
}
}
import java.util.Locale;
import java.util.Map;
-import com.ibm.icu.impl.CaseMap;
-import com.ibm.icu.impl.CaseMap.StringContextIterator;
+import com.ibm.icu.impl.CaseMapImpl;
+import com.ibm.icu.impl.CaseMapImpl.StringContextIterator;
import com.ibm.icu.impl.IllegalIcuArgumentException;
import com.ibm.icu.impl.Trie2;
import com.ibm.icu.impl.UBiDiProps;
import com.ibm.icu.lang.UCharacterEnums.ECharacterCategory;
import com.ibm.icu.lang.UCharacterEnums.ECharacterDirection;
import com.ibm.icu.text.BreakIterator;
+import com.ibm.icu.text.CaseMap;
import com.ibm.icu.text.Edits;
import com.ibm.icu.text.Normalizer2;
import com.ibm.icu.util.RangeValueIterator;
* @stable ICU 3.2
*/
public static String toUpperCase(ULocale locale, String str) {
- return CaseMap.toUpper(locale, str);
+ return CaseMapImpl.toUpper(locale, str);
}
/**
*/
public static String toLowerCase(Locale locale, String str)
{
- // TODO: remove package path
if (str.length() <= 100) {
if (str.isEmpty()) {
return str;
// Good if no or few changes.
// Bad (slow) if many changes.
Edits edits = new Edits();
- StringBuilder replacementChars = com.ibm.icu.text.CaseMap.toLower().omitUnchangedText().apply(
+ StringBuilder replacementChars = CaseMap.toLower().omitUnchangedText().apply(
locale, str, new StringBuilder(), edits);
return applyEdits(str, replacementChars, edits);
} else {
- return com.ibm.icu.text.CaseMap.toLower().apply(locale, str, new StringBuilder(), null).toString();
+ return CaseMap.toLower().apply(locale, str, new StringBuilder(), null).toString();
}
}
import java.util.Locale;
+import com.ibm.icu.impl.CaseMapImpl;
import com.ibm.icu.impl.UCaseProps;
import com.ibm.icu.lang.UCharacter;
import com.ibm.icu.util.ULocale;
*/
public static final class Lower extends CaseMap {
private static final Lower DEFAULT = new Lower(0);
- private static final Lower OMIT_UNCHANGED = new Lower(OMIT_UNCHANGED_TEXT);
+ private static final Lower OMIT_UNCHANGED = new Lower(CaseMapImpl.OMIT_UNCHANGED_TEXT);
private Lower(int opt) { super(opt); }
/**
locale = Locale.getDefault();
}
int caseLocale = UCaseProps.getCaseLocale(locale);
- // TODO: remove package path
- return com.ibm.icu.impl.CaseMap.toLower(
- caseLocale, internalOptions, src, dest, edits);
+ return CaseMapImpl.toLower(caseLocale, internalOptions, src, dest, edits);
}
}
*/
public static final class Upper extends CaseMap {
private static final Upper DEFAULT = new Upper(0);
- private static final Upper OMIT_UNCHANGED = new Upper(OMIT_UNCHANGED_TEXT);
+ private static final Upper OMIT_UNCHANGED = new Upper(CaseMapImpl.OMIT_UNCHANGED_TEXT);
private Upper(int opt) { super(opt); }
/**
*/
public static final class Title extends CaseMap {
private static final Title DEFAULT = new Title(0);
- private static final Title OMIT_UNCHANGED = new Title(OMIT_UNCHANGED_TEXT);
+ private static final Title OMIT_UNCHANGED = new Title(CaseMapImpl.OMIT_UNCHANGED_TEXT);
private Title(int opt) { super(opt); }
/**
*/
@Override
public Title omitUnchangedText() {
- if (internalOptions == 0 || internalOptions == OMIT_UNCHANGED_TEXT) {
+ if (internalOptions == 0 || internalOptions == CaseMapImpl.OMIT_UNCHANGED_TEXT) {
return OMIT_UNCHANGED;
}
- return new Title(internalOptions | OMIT_UNCHANGED_TEXT);
+ return new Title(internalOptions | CaseMapImpl.OMIT_UNCHANGED_TEXT);
}
/**
public static final class Fold extends CaseMap {
private static final Fold DEFAULT = new Fold(0);
private static final Fold TURKIC = new Fold(UCharacter.FOLD_CASE_EXCLUDE_SPECIAL_I);
- private static final Fold OMIT_UNCHANGED = new Fold(OMIT_UNCHANGED_TEXT);
+ private static final Fold OMIT_UNCHANGED = new Fold(CaseMapImpl.OMIT_UNCHANGED_TEXT);
private static final Fold TURKIC_OMIT_UNCHANGED = new Fold(
- UCharacter.FOLD_CASE_EXCLUDE_SPECIAL_I | OMIT_UNCHANGED_TEXT);
+ UCharacter.FOLD_CASE_EXCLUDE_SPECIAL_I | CaseMapImpl.OMIT_UNCHANGED_TEXT);
private Fold(int opt) { super(opt); }
/**
* @provisional This API might change or be removed in a future release.
*/
public Fold turkic() {
- return (internalOptions & OMIT_UNCHANGED_TEXT) == 0 ?
+ return (internalOptions & CaseMapImpl.OMIT_UNCHANGED_TEXT) == 0 ?
TURKIC : TURKIC_OMIT_UNCHANGED;
}
return null;
}
}
-
- /**
- * Omit unchanged text when case-mapping with Edits.
- *
- * @internal
- * @deprecated This API is ICU internal only.
- */
- @Deprecated
- public static final int OMIT_UNCHANGED_TEXT = 0x4000; // TODO: move to a non-public class
}