public final class BCP47LanguageHandler extends Object implements LanguageHandler
This language handler normalises language tags to lower-case if
normalizeLanguage(String, String)
is used.
BCP47, RFC3066, RFC4646
Constructor and Description |
---|
BCP47LanguageHandler() |
Modifier and Type | Method and Description |
---|---|
boolean |
isRecognizedLanguage(String theLang)
Checks if the given language tag is recognized by this language handler, including cases where the
language tag is recognized, but is not yet normalized.
|
String |
key()
A unique key for this language handler
|
Literal |
normalizeLanguage(String theValue,
String theLang)
Normalize both the language tag and the language if appropriate.
|
String |
normalizeLanguageTag(String theLang)
|
boolean |
verifyLanguage(String theValue,
String theLang)
Verifies that the language tag is valid, optionally including an automated check on the literal value.
|
public boolean isRecognizedLanguage(@Nonnull String theLang)
isRecognizedLanguage
in interface LanguageHandler
theLang
- The language tag to check.LanguageHandler.verifyLanguage(String, String)
and
LanguageHandler.normalizeLanguage(String, String)
.public boolean verifyLanguage(@Nonnull String theValue, @Nonnull String theLang) throws InvalidLiteral
This method must only be called after verifying that LanguageHandler.isRecognizedLanguage(String)
returns true
for the given language tag.
verifyLanguage
in interface LanguageHandler
theValue
- Literal value matching the given language tag.theLang
- A language tag that matched with LanguageHandler.isRecognizedLanguage(String)
.InvalidLiteral
- If the language tag was not recognized.@Nonnull public Literal normalizeLanguage(@Nonnull String theValue, @Nonnull String theLang) throws InvalidLiteral
This method must only be called after verifying that LanguageHandler.isRecognizedLanguage(String)
returns true
for the given language tag, and LanguageHandler.verifyLanguage(String, String)
also returns true for the given
language and literal value.
normalizeLanguage
in interface LanguageHandler
theValue
- Required literal value to use in the normalization process and to provide the value for the
resulting literal.theLang
- The language tag which is to be normalized. This tag is available in normalized form from the
result using Literal.lang()
.Literal
containing the normalized literal value and language tag.InvalidLiteral
- If the language tag was not recognized or verified, or the literal value could not be
normalized due to an error.@Nonnull public String key()
key
in interface LanguageHandler
public String normalizeLanguageTag(@Nonnull String theLang) throws IllformedLocaleException
Locale
API.normalizeLanguageTag
in interface LanguageHandler
theLang
- An unnormalized, valid, language tagIllformedLocaleException
- If the given language tag is ill-formed according to the rules specified in BCP47.Copyright © 2010-2016 Stardog Union. All Rights Reserved.