/* */ package com.ibm.icu.text; /* */ /* */ import com.ibm.icu.impl.UCaseProps; /* */ import com.ibm.icu.lang.UCharacter; /* */ import com.ibm.icu.util.ULocale; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ class LowercaseTransliterator /* */ extends Transliterator /* */ { /* */ static final String _ID = "Any-Lower"; /* */ private ULocale locale; /* */ private UCaseProps csp; /* */ private ReplaceableContextIterator iter; /* */ private StringBuilder result; /* */ private int[] locCache; /* */ /* */ static void register() /* */ { /* 30 */ Transliterator.registerFactory("Any-Lower", new Transliterator.Factory() { /* */ public Transliterator getInstance(String ID) { /* 32 */ return new LowercaseTransliterator(ULocale.US); /* */ } /* */ /* 35 */ }); /* 36 */ Transliterator.registerSpecialInverse("Lower", "Upper", true); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public LowercaseTransliterator(ULocale loc) /* */ { /* 51 */ super("Any-Lower", null); /* 52 */ this.locale = loc; /* 53 */ this.csp = UCaseProps.INSTANCE; /* 54 */ this.iter = new ReplaceableContextIterator(); /* 55 */ this.result = new StringBuilder(); /* 56 */ this.locCache = new int[1]; /* 57 */ this.locCache[0] = 0; /* */ } /* */ /* */ /* */ /* */ /* */ protected synchronized void handleTransliterate(Replaceable text, Transliterator.Position offsets, boolean isIncremental) /* */ { /* 65 */ if (this.csp == null) { /* 66 */ return; /* */ } /* */ /* 69 */ if (offsets.start >= offsets.limit) { /* 70 */ return; /* */ } /* */ /* 73 */ this.iter.setText(text); /* 74 */ this.result.setLength(0); /* */ /* */ /* */ /* */ /* */ /* 80 */ this.iter.setIndex(offsets.start); /* 81 */ this.iter.setLimit(offsets.limit); /* 82 */ this.iter.setContextLimits(offsets.contextStart, offsets.contextLimit); /* 83 */ int c; while ((c = this.iter.nextCaseMapCP()) >= 0) { /* 84 */ c = this.csp.toFullLower(c, this.iter, this.result, this.locale, this.locCache); /* */ /* 86 */ if ((this.iter.didReachLimit()) && (isIncremental)) /* */ { /* */ /* 89 */ offsets.start = this.iter.getCaseMapCPStart(); /* 90 */ return; /* */ } /* */ /* */ /* 94 */ if (c >= 0) /* */ { /* */ int delta; /* 97 */ if (c <= 31) /* */ { /* 99 */ int delta = this.iter.replace(this.result.toString()); /* 100 */ this.result.setLength(0); /* */ } /* */ else { /* 103 */ delta = this.iter.replace(UTF16.valueOf(c)); /* */ } /* */ /* 106 */ if (delta != 0) { /* 107 */ offsets.limit += delta; /* 108 */ offsets.contextLimit += delta; /* */ } /* */ } } /* 111 */ offsets.start = offsets.limit; /* */ } /* */ /* */ /* 115 */ SourceTargetUtility sourceTargetUtility = null; /* */ /* */ /* */ /* */ /* */ public void addSourceTargetSet(UnicodeSet inputFilter, UnicodeSet sourceSet, UnicodeSet targetSet) /* */ { /* 122 */ synchronized (this) { /* 123 */ if (this.sourceTargetUtility == null) { /* 124 */ this.sourceTargetUtility = new SourceTargetUtility(new Transform() { /* */ public String transform(String source) { /* 126 */ return UCharacter.toLowerCase(LowercaseTransliterator.this.locale, source); /* */ } /* */ }); /* */ } /* */ } /* 131 */ this.sourceTargetUtility.addSourceTargetSet(this, inputFilter, sourceSet, targetSet); /* */ } /* */ } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\ibm\icu\text\LowercaseTransliterator.class * Java compiler version: 5 (49.0) * JD-Core Version: 0.7.1 */