Package eu.bandm.tools.muli
Class MuLi
java.lang.Object
eu.bandm.tools.muli.MuLi
Each
The
An index of
MuLi
represents a multi-lingual identifier or text.
Its structure is
language ::= (String U syntheticLanguage)
MuLi ::= language -/-> String
SYNTHETIC_LANGUAGE
is a special string value reserved for the cases
in which a language differetiation is not applicable (e.g. for pure
numeric strings or personal names).
The
language
values should follow the ISO language codes.
as specified in
ISO 639-2. These are the codes also used by "xml:lang
",
cf. RFC 4646 / RFC 4647 / IETF BCP 47.
At least they should not have the value of the SYNTHETIC_LANGUAGE
string.
The look-up function getSpecific(String)
delegates to a map object
and has the usual java-like semantics, esp. returning null
iff
s
not in the domain.
Further, there is a special look-up function get(String...)
of type
get : preference:(SEQ language)->MuLi.TextFoundwith
MuLi.TextFound ::= (index:(NAT U{-1}) * language:String * result:StringThe object of class
MuLi.TextFound
,
as returned by the function, reflects the most left language in
the original preference list for which an entry can be found in the
MuLi
object.
An index of
=-1
indicated the fact that the found language is
chosen by random and was not in the list of preferred languages.
ATTENTION
"language" parameters are currently encoded as "totally free" string values.
(1) A linkage to the "locale" mechanisms of java is not yet defined.
(2) A hash storage for all "language" strings (converting them to unique
single objects) could be sensible, but has to be decided in connection
with (1).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A class representing the result of calls toget(String...)
and sim. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns an unmodifiable copy.boolean
containsLang
(String lang) Return whether there is an entry in the given language.Return aMuLi.TextFound
object representing the first string found when trying the listed languages from left to right.Return aMuLi.TextFound
object representing the first string found.Returns an unmodifiable copy of all languages serving as keys.getSpecific
(String lang) Rreturn the string stored under a certain key representing a "language".static String
Get the version of this class (and thus this package), as defined by the Maven publishing framework.Deprecated, for removal: This API element is subject to removal in a future version.Put a new key/value pair into the internal map.Deprecated.use "put(Collections.literalMap(Object,Object)
)" instead!Put a multitude of key/value pairs into the internal map.toString()
Return a string representation.
-
Field Details
-
SYNTHETIC_LANGUAGE
Use this as key value forput
andget
in cases where no natural language is applicable. E.g. for technical notions, personal names, formulae.- See Also:
-
texts
Map from the target languages to their text versions.
-
-
Constructor Details
-
MuLi
public MuLi()Construct an empty instance. -
MuLi
Initialize translations, usesput(Map)
, see there for important remarks!- Parameters:
data
- the initial translations
-
-
Method Details
-
getVersionValue
Get the version of this class (and thus this package), as defined by the Maven publishing framework.- Returns:
- the version of this class.
-
cloneUnmodifiable
Returns an unmodifiable copy.- Returns:
- an unmodifiable copy.
-
toString
Return a string representation. -
getLanguages
Returns an unmodifiable copy of all languages serving as keys.- Returns:
- an unmodifiable copy of all languages serving as keys.
-
getSpecific
Rreturn the string stored under a certain key representing a "language". Is directly mapped to java.util.Map, i.e. returnsnull
if key not in domain.- Parameters:
lang
- the language for which the translation is searched.- Returns:
- the string stored for the given language.
-
containsLang
Return whether there is an entry in the given language.- Parameters:
lang
- the language.- Returns:
- whether there is an entry in the given language.
-
get
Return aMuLi.TextFound
object representing the first string found when trying the listed languages from left to right. If no such translation is found, return an arbitrary one. If no translation exists, return null.- Parameters:
preference
- list of languages to search.- Returns:
- a
MuLi.TextFound
object representing the first string found.
-
get
Return aMuLi.TextFound
object representing the first string found.- See Also:
-
put
Put a new key/value pair into the internal map. Existing entries will silently be overwritten.- Parameters:
lang
- the key, should be a language code.text
- the value, i.e. the translation into this language.- Returns:
- this for method chaining.
-
put
Put a multitude of key/value pairs into the internal map. The mapentries are separated into key and value, and passed toput(String,String)
.
So, existing entries will silently be overwritten.- Parameters:
data
- map of language to name- Returns:
- this for method chaining.
-
put
Deprecated, for removal: This API element is subject to removal in a future version.use "put(Collections.literalMap(Object,Object)
)" instead!Put a multitude of key/value pairs into the internal map. The number of arguments must be even. The arguments are intepreted as key and value, alternatingly, and passed toput(String,String)
.
So, existing entries will silently be overwritten.- Parameters:
pairs
- sequence of key/value pairs- Returns:
- this for method chaining.
- Throws:
IllegalArgumentException
- in case the number of Strings in not even.
-
put
Deprecated.use "put(Collections.literalMap(Object,Object)
)" instead!- Returns:
- this for method chaining.
- See Also:
-
Collections.literalMap(Object,Object)
)" instead!