/** * Retains EACH of the characters in this string. Note: "ch" == {"c", "h"} * If this set already any particular character, it has no effect on that character. * @param s the source string * @return this object, for chaining * @stable ICU 2.0 */ public final UnicodeSet retainAll(CharSequence s) { return retainAll(fromAll(s)); }
/** * @see #retainAll(com.ibm.icu.text.UnicodeSet) * @stable ICU 4.4 */ public <T extends CharSequence> UnicodeSet retainAll(Iterable<T> collection) { checkFrozen(); // TODO optimize UnicodeSet toRetain = new UnicodeSet(); toRetain.addAll(collection); retainAll(toRetain); return this; }
/** * 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(); }
public void addSourceTargetSet(UnicodeSet inputFilter, UnicodeSet sourceSet, UnicodeSet targetSet) { UnicodeSet myFilter = getFilterAsUnicodeSet(inputFilter); UnicodeSet temp = new UnicodeSet(handleGetSourceSet()).retainAll(myFilter);
items.retainAll(myFilter);
public void addSourceTargetSet(Transliterator transliterator, UnicodeSet inputFilter, UnicodeSet sourceSet, UnicodeSet targetSet) { UnicodeSet myFilter = transliterator.getFilterAsUnicodeSet(inputFilter); UnicodeSet affectedCharacters = new UnicodeSet(sourceCache).retainAll(myFilter); sourceSet.addAll(affectedCharacters); for (String s : affectedCharacters) { targetSet.addAll(transform.transform(s)); } for (String s : sourceStrings) { if (myFilter.containsAll(s)) { String t = transform.transform(s); if (!s.equals(t)) { targetSet.addAll(t); sourceSet.addAll(s); } } } } }
spanSet.retainAll(set); if (0 != (which & NOT_CONTAINED)) {
break; case '&': retainAll(nested); break; case 0:
@Override public void addSourceTargetSet(UnicodeSet inputFilter, UnicodeSet sourceSet, UnicodeSet targetSet) { UnicodeSet myFilter = getFilterAsUnicodeSet(inputFilter); if (!myFilter.containsAll(UnicodeNameTransliterator.OPEN_DELIM) || !myFilter.contains(CLOSE_DELIM)) { return; // we have to contain both prefix and suffix } UnicodeSet items = new UnicodeSet() .addAll('0', '9') .addAll('A', 'F') .addAll('a', 'z') // for controls .add('<').add('>') // for controls .add('(').add(')') // for controls .add('-') .add(' ') .addAll(UnicodeNameTransliterator.OPEN_DELIM) .add(CLOSE_DELIM); items.retainAll(myFilter); if (items.size() > 0) { sourceSet.addAll(items); // could produce any character targetSet.addAll(0, 0x10FFFF); } } }