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;
/*
* UTILITIES
*/
- public static void addObjectClasses(Dictionary<String, Object> properties, Set<String> objectClasses) {
+ /**
+ * Convert a collection of object classes to the format expected by an LDAP
+ * backend.
+ */
+ public static void addObjectClasses(Dictionary<String, Object> properties, Collection<String> objectClasses) {
String value = properties.get(LdapAttrs.objectClasses.name()).toString();
Set<String> currentObjectClasses = new TreeSet<>(Arrays.asList(value.toString().split("\n")));
currentObjectClasses.addAll(objectClasses);
currentObjectClasses.forEach((s) -> values.add(s));
properties.put(LdapAttrs.objectClasses.name(), values.toString());
}
+
+ public static Object getLocalized(Dictionary<String, Object> 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();
+ }
+ }
}