Class RsLangs
java.lang.Object
org.apache.uima.analysis_engine.impl.RsLangs
A set of languages, each represented by a canonical string object
The set is stored without any subsumed elements
Instances of this class are shareable
Duplicate-on-update strategy
Requires that all update operations to it return the
possibly new RsLangs object, and that calls are always of the form
rsLangInstance = rsLangInstance.[some-update-operation]
Requires that all copy operations set the shared bit:
copiedInstance = origInstance.setShared();
A instance marked isShared == true is immutable
Updates cause duplication.
Users store x-unspecified as null for the rsLangs instance
Because of this, users use static methods, passing in as the first argument,
the value of rsLangs, and getting an updated value of rsLangs.
This allows the passed-in value to be null.
Languages kept in canonical form:
duplicates removed
subsumed languages removed
language strings mapped to unique strings (allowing == comparisons)
Languages kept in array list, to allow for expansion
Languages not removed, only added (for a given tof)
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static RsLangs
add language unless it's subsumed by existing one remove any languages the newly added one subsumes store x-unspec as null(package private) static RsLangs
(package private) static RsLangs
(package private) static RsLangs
createOrNull
(String[] languages) (package private) static RsLangs
createOrNull
(RsLangs rsl) (package private) static RsLangs
boolean
This must return true ignoring the value of isShared, and treating the lists as a setprivate static String
getBaseLanguage
(String language) int
hashCode()
Must return the same hashcode regardless of the value of isShared, and treating the values as a set(package private) RsLangs
(package private) static boolean
private void
removeSubsumedLanguages
(String canonicalLang, String baseLang) Remove languages that are subsumed by the argument If all removed, keep as empty list(package private) static RsLangs
replaceAll
(RsLangs rsl, String[] langs) (package private) void
(package private) static boolean
private static boolean
subsumesCanonical
(String containingLang, String langToTest, String langToTestBase) (package private) static boolean
subsumesCanonical
(RsLangs rsl, String lang) private static boolean
subsumesCanonical
(RsLangs rsl, String lang, String baseLang) (package private) static String[]
toString()
-
Field Details
-
languages
-
-
Constructor Details
-
RsLangs
private RsLangs() -
RsLangs
-
-
Method Details
-
createSharableEmpty
-
toString
-
createOrNull
-
createOrNull
-
isEmpty
-
subsumes
- Parameters:
rsl
- may be null (means x-unspec, subsumes all)lang
-- Returns:
- true if rsl subsumes lang
-
subsumesCanonical
- Parameters:
lang
-- Returns:
- true if any of the rsLangs subsumes the param lang
-
subsumesCanonical
- Parameters:
rsl
- assumed to be not null, not x-unspeclang
- assumed to be not null, not x-unspecbaseLang
-- Returns:
- true if any of the rsl languages is equal to the lang or the base lang
-
subsumesCanonical
-
getBaseLanguage
- Parameters:
language
- (must not be null)- Returns:
- the same == language or the base form of the language
-
replaceAll
- Parameters:
rsl
- could be null meaning current is x-unspecifiedlangs
- null means x-unspecified- Returns:
- null (meaning x-unspecified, or an instance of RsLangs
-
addAll
-
addAll
-
add
add language unless it's subsumed by existing one remove any languages the newly added one subsumes store x-unspec as null- Parameters:
rsl
- - is not null and has non-null languages array (may be empty)lang
- - may be null or x-unspec
-
removeSubsumedLanguages
Remove languages that are subsumed by the argument If all removed, keep as empty list- Parameters:
canonicalLang
-
-
intersect
- Parameters:
other
-- Returns:
- null for empty intersection (null doesn't mean x-unspecified here)
-
toArray
-
hashCode
public int hashCode()Must return the same hashcode regardless of the value of isShared, and treating the values as a set -
equals
This must return true ignoring the value of isShared, and treating the lists as a set
-