use of org.opensaml.saml.saml2.metadata.LocalizedName in project cas by apereo.
the class SamlMetadataUIInfo method findLocale.
private static Optional<String> findLocale(final String locale, final List<?> items) {
LOGGER.trace("Looking for locale [{}]", locale);
val p = Pattern.compile(locale, Pattern.CASE_INSENSITIVE);
return items.stream().filter(item -> item instanceof LocalizedName).map(item -> (LocalizedName) item).filter(item -> {
val xmlLang = item.getXMLLang();
return StringUtils.isNotBlank(xmlLang) && p.matcher(xmlLang).matches() && StringUtils.isNotBlank(item.getValue());
}).map(XSString::getValue).findFirst();
}
use of org.opensaml.saml.saml2.metadata.LocalizedName in project cas by apereo.
the class SamlMetadataUIInfo method getLocalizedValues.
/**
* Gets localized values.
*
* @param locale browser preferred language
* @param items the items
* @return the string value
*/
private static String getLocalizedValues(final String locale, final List<?> items) {
val foundLocale = findLocale(StringUtils.defaultString(locale, "en"), items);
if (foundLocale.isPresent()) {
return foundLocale.get();
}
if (!items.isEmpty()) {
val item = items.get(0);
var value = StringUtils.EMPTY;
if (item instanceof LocalizedName) {
value = ((LocalizedName) item).getValue();
}
if (item instanceof LocalizedURI) {
value = ((LocalizedURI) item).getURI();
}
if (item instanceof XSString) {
value = ((XSString) item).getValue();
}
LOGGER.trace("Loading first available locale [{}]", value);
return value;
}
return null;
}
Aggregations