X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2Fdirectory%2Fldap%2FLdapEntry.java;h=4657c8798e41fdf40fe9b37110b593e041a7a14a;hb=3c1cdc594d954520b14646102b366290bdad58c7;hp=cf293cee2e94aa2ec6eda2312ae4aef2209a19ab;hpb=285c23f26c4d634cd139d393ebcb708187d5e960;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/util/directory/ldap/LdapEntry.java b/org.argeo.util/src/org/argeo/util/directory/ldap/LdapEntry.java index cf293cee2..4657c8798 100644 --- a/org.argeo.util/src/org/argeo/util/directory/ldap/LdapEntry.java +++ b/org.argeo.util/src/org/argeo/util/directory/ldap/LdapEntry.java @@ -1,8 +1,10 @@ package org.argeo.util.directory.ldap; import java.util.Arrays; +import java.util.Collection; import java.util.Dictionary; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.StringJoiner; import java.util.TreeSet; @@ -29,7 +31,11 @@ public interface LdapEntry { /* * UTILITIES */ - public static void addObjectClasses(Dictionary properties, Set objectClasses) { + /** + * Convert a collection of object classes to the format expected by an LDAP + * backend. + */ + public static void addObjectClasses(Dictionary properties, Collection objectClasses) { String value = properties.get(LdapAttrs.objectClasses.name()).toString(); Set currentObjectClasses = new TreeSet<>(Arrays.asList(value.toString().split("\n"))); currentObjectClasses.addAll(objectClasses); @@ -37,4 +43,23 @@ public interface LdapEntry { currentObjectClasses.forEach((s) -> values.add(s)); properties.put(LdapAttrs.objectClasses.name(), values.toString()); } + + public static Object getLocalized(Dictionary properties, String key, Locale locale) { + if (locale == null) + return null; + Object value = null; + value = properties.get(key + ";lang-" + locale.getLanguage() + "-" + locale.getCountry()); + if (value == null) + value = properties.get(key + ";lang-" + locale.getLanguage()); + return value; + } + + public static String toLocalizedKey(String key, Locale locale) { + String country = locale.getCountry(); + if ("".equals(country)) { + return key + ";lang-" + locale.getLanguage(); + } else { + return key + ";lang-" + locale.getLanguage() + "-" + locale.getCountry(); + } + } }