Skip to content

Instantly share code, notes, and snippets.

@samidalouche
Created February 1, 2011 16:30
Show Gist options
  • Save samidalouche/806106 to your computer and use it in GitHub Desktop.
Save samidalouche/806106 to your computer and use it in GitHub Desktop.
Scala
/**
* reverts to #name if no preferredName found
*/
def preferredName(language: Language) :String = localizedNames.find {n: LocalizedName => n.preferred && n.language == language}
.map{ _.name}
.getOrElse(defaultName)
/**
* reverts to #name if no short name found
*/
def shortName(language: Language) : String = localizedNames.find {n: LocalizedName => n.shortName && n.language == language}
.map {_.name}
.getOrElse(defaultName)
/**
*
* @param language
* @return the preferred name if it exists, otherwise the default name
*/
public String getPreferredName(final Iso639Language language) {
Iterable<AlternateGisFeatureName> alternateGisFeatureNames = Iterables.filter(this.alternateNamesProvider.getAlternateNames(), new Predicate<AlternateGisFeatureName>() {
public boolean apply(AlternateGisFeatureName input) {
return input.getLanguage().equals(language) && input.isPreferred();
}
});
return returnFirstAlternateNameAndFallbackOnDefaultName(alternateGisFeatureNames);
}
private String returnFirstAlternateNameAndFallbackOnDefaultName(
Iterable<AlternateGisFeatureName> alternateGisFeatureNames) {
return Iterables.size(alternateGisFeatureNames) > 0 ? Iterables.get(alternateGisFeatureNames, 0).getName() : this.getName();
}
/**
*
* @param language
* @return the short name if it exists, otherwise the default name
*/
public String getShortName(final Iso639Language language) {
Iterable<AlternateGisFeatureName> alternateGisFeatureNames = Iterables.filter(this.alternateNamesProvider.getAlternateNames(), new Predicate<AlternateGisFeatureName>() {
public boolean apply(AlternateGisFeatureName input) {
return input.getLanguage().equals(language) && input.isShort();
}
});
return returnFirstAlternateNameAndFallbackOnDefaultName(alternateGisFeatureNames);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment