public IntPredicate predicate() { UnicodeSet set = set(); set.freeze(); return set::contains; }
public final IntPredicate predicate(String value) { UnicodeSet set = set(getValue(value)); set.freeze(); return set::contains; }
/** * Changes the filter used by this transliterator. If the filter * is set to <tt>null</tt> then no filtering will occur. * * <p>Callers must take care if a transliterator is in use by * multiple threads. The filter should not be changed by one * thread while another thread may be transliterating. * @stable ICU 2.0 */ public void setFilter(UnicodeFilter filter) { if (filter == null) { this.filter = null; } else { try { // fast high-runner case this.filter = new UnicodeSet((UnicodeSet)filter).freeze(); } catch (Exception e) { this.filter = new UnicodeSet(); filter.addMatchSetTo(this.filter); this.filter.freeze(); } } }
public void forData(CollationData d) { // Add all from the data, can be tailoring or base. if (d.base != null) { checkTailored = -1; } data = d; Iterator<Trie2.Range> trieIterator = data.trie.iterator(); Trie2.Range range; while (trieIterator.hasNext() && !(range = trieIterator.next()).leadSurrogate) { enumCnERange(range.startCodePoint, range.endCodePoint, range.value, this); } if (d.base == null) { return; } // Add all from the base data but only for un-tailored code points. tailored.freeze(); checkTailored = 1; data = d.base; trieIterator = data.trie.iterator(); while (trieIterator.hasNext() && !(range = trieIterator.next()).leadSurrogate) { enumCnERange(range.startCodePoint, range.endCodePoint, range.value, this); } }
/** Creates a new ICUFoldingFilterFactory */ public ICUFoldingFilterFactory(Map<String,String> args) { super(args); Normalizer2 normalizer = ICUFoldingFilter.NORMALIZER; String filter = get(args, "filter"); if (filter != null) { UnicodeSet set = new UnicodeSet(filter); if (!set.isEmpty()) { set.freeze(); normalizer = new FilteredNormalizer2(normalizer, set); } } if (!args.isEmpty()) { throw new IllegalArgumentException("Unknown parameters: " + args); } this.normalizer = normalizer; }
/** * Create a SpoofChecker with current configuration. * * @return SpoofChecker * @stable ICU 4.6 */ public SpoofChecker build() { // TODO: Make this data loading be lazy (see #12696). if (fSpoofData == null) { // read binary file fSpoofData = SpoofData.getDefault(); } // Copy all state from the builder to the new SpoofChecker. // Make sure that everything is either cloned or copied, so // that subsequent re-use of the builder won't modify the built // SpoofChecker. // // One exception to this: the SpoofData is just assigned. // If the builder subsequently needs to modify fSpoofData // it will create a new SpoofData object first. SpoofChecker result = new SpoofChecker(); result.fChecks = this.fChecks; result.fSpoofData = this.fSpoofData; result.fAllowedCharsSet = (UnicodeSet) (this.fAllowedCharsSet.clone()); result.fAllowedCharsSet.freeze(); result.fAllowedLocales = new HashSet<ULocale>(this.fAllowedLocales); result.fRestrictionLevel = this.fRestrictionLevel; return result; }
/** * Returns the intersectionof this instance's filter intersected with an external filter. * The externalFilter must be frozen (it is frozen if not). * The result may be frozen, so don't attempt to modify. * @internal * @deprecated This API is ICU internal only. */ @Deprecated // TODO change to getMergedFilter public UnicodeSet getFilterAsUnicodeSet(UnicodeSet externalFilter) { if (filter == null) { return externalFilter; } UnicodeSet filterSet = new UnicodeSet(externalFilter); // Most, but not all filters will be UnicodeSets. Optimize for // the high-runner case. UnicodeSet temp; try { temp = filter; } catch (ClassCastException e) { filter.addMatchSetTo(temp = new UnicodeSet()); } return filterSet.retainAll(temp).freeze(); }
/** Creates a new ICUNormalizer2CharFilterFactory */ public ICUNormalizer2CharFilterFactory(Map<String,String> args) { super(args); String name = get(args, "name", "nfkc_cf"); String mode = get(args, "mode", Arrays.asList("compose", "decompose"), "compose"); Normalizer2 normalizer = Normalizer2.getInstance (null, name, "compose".equals(mode) ? Normalizer2.Mode.COMPOSE : Normalizer2.Mode.DECOMPOSE); String filter = get(args, "filter"); if (filter != null) { UnicodeSet set = new UnicodeSet(filter); if (!set.isEmpty()) { set.freeze(); normalizer = new FilteredNormalizer2(normalizer, set); } } if (!args.isEmpty()) { throw new IllegalArgumentException("Unknown parameters: " + args); } this.normalizer = normalizer; }
/** Creates a new ICUNormalizer2FilterFactory */ public ICUNormalizer2FilterFactory(Map<String,String> args) { super(args); String name = get(args, "name", "nfkc_cf"); String mode = get(args, "mode", Arrays.asList("compose", "decompose"), "compose"); Normalizer2 normalizer = Normalizer2.getInstance (null, name, "compose".equals(mode) ? Normalizer2.Mode.COMPOSE : Normalizer2.Mode.DECOMPOSE); String filter = get(args, "filter"); if (filter != null) { UnicodeSet set = new UnicodeSet(filter); if (!set.isEmpty()) { set.freeze(); normalizer = new FilteredNormalizer2(normalizer, set); } } if (!args.isEmpty()) { throw new IllegalArgumentException("Unknown parameters: " + args); } this.normalizer = normalizer; }
@Override public TokenStream create(TokenStream tokenStream) { // The ICUFoldingFilter is in fact implemented as a ICUNormalizer2Filter. // ICUFoldingFilter lacks a constructor for adding filtering so we implemement it here if (unicodeSetFilter != null) { Normalizer2 base = Normalizer2.getInstance( ICUFoldingFilter.class.getResourceAsStream("utr30.nrm"), "utr30", Normalizer2.Mode.COMPOSE); UnicodeSet unicodeSet = new UnicodeSet(unicodeSetFilter); unicodeSet.freeze(); Normalizer2 filtered = new FilteredNormalizer2(base, unicodeSet); return new org.apache.lucene.analysis.icu.ICUNormalizer2Filter(tokenStream, filtered); } else { return new ICUFoldingFilter(tokenStream); } } }
@Override public TokenStream create(TokenStream tokenStream) { // The ICUFoldingFilter is in fact implemented as a ICUNormalizer2Filter. // ICUFoldingFilter lacks a constructor for adding filtering so we implemement it here if (unicodeSetFilter != null) { Normalizer2 base = Normalizer2.getInstance( ICUFoldingFilter.class.getResourceAsStream("utr30.nrm"), "utr30", Normalizer2.Mode.COMPOSE); UnicodeSet unicodeSet = new UnicodeSet(unicodeSetFilter); unicodeSet.freeze(); Normalizer2 filtered = new FilteredNormalizer2(base, unicodeSet); return new org.apache.lucene.analysis.icu.ICUNormalizer2Filter(tokenStream, filtered); } else { return new ICUFoldingFilter(tokenStream); } } }
sourceCache.freeze();
unsafeBackwardSet.freeze();
tailoring.unsafeBackwardSet.freeze(); data.unsafeBackwardSet = tailoring.unsafeBackwardSet; } else if(data == null) {