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);
}
}