package org.safehaus.penrose.ldap; import java.util.Map; import java.util.TreeMap; /** * @author Endi S. Dewata */ public class RDNBuilder { public Map<String,Object> values = new TreeMap<String,Object>(); public RDNBuilder() { } public boolean isEmpty() { return values.isEmpty(); } public void clear() { values.clear(); } public void add(RDN rdn) { values.putAll(rdn.getValues()); } public void set(RDN rdn) { values.clear(); values.putAll(rdn.getValues()); } public void add(String prefix, RDN rdn) { for (String name : rdn.getNames()) { Object value = rdn.get(name); values.put(prefix == null ? name : prefix + "." + name, value); } } public void set(String prefix, RDN rdn) { values.clear(); for (String name : rdn.getNames()) { Object value = rdn.get(name); values.put(prefix == null ? name : prefix + "." + name, value); } } public void set(String name, Object value) { this.values.put(name, value); } public Object remove(String name) { return values.remove(name); } public void normalize() { for (String name : values.keySet()) { Object value = values.get(name); if (value == null) continue; if (value instanceof String) { value = ((String) value).toLowerCase(); } values.put(name, value); } } public RDN toRdn() { return new RDN(values); } }