package org.safehaus.penrose.ldap;
import java.util.Collection;
import java.util.ArrayList;
/**
* @author Endi S. Dewata
*/
public class ModifyRequest extends Request implements Cloneable {
protected DN dn;
protected Collection<Modification> modifications = new ArrayList<Modification>();
public ModifyRequest() {
}
public ModifyRequest(ModifyRequest request) {
super(request);
dn = request.getDn();
modifications.addAll(request.modifications);
}
public DN getDn() {
return dn;
}
public void setDn(String dn) {
this.dn = new DN(dn);
}
public void setDn(RDN rdn) throws Exception {
this.dn = new DN(rdn);
}
public void setDn(DN dn) {
this.dn = dn;
}
public Collection<Modification> getModifications() {
return modifications;
}
public void addModification(Modification modification) {
modifications.add(modification);
}
public void setModifications(Collection<Modification> modifications) {
if (this.modifications == modifications) return;
this.modifications.clear();
if (modifications != null) this.modifications.addAll(modifications);
}
public Object clone() throws CloneNotSupportedException {
ModifyRequest request = (ModifyRequest)super.clone();
request.dn = dn;
request.modifications = new ArrayList<Modification>();
for (Modification modification : modifications) {
request.modifications.add((Modification)modification.clone());
}
return request;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("dn: ");
sb.append(dn);
sb.append("\n");
sb.append("changetype: modify\n");
for (Modification modification : modifications) {
Attribute attr = modification.getAttribute();
sb.append(LDAP.getModificationOperation(modification.getType()));
sb.append(": ");
sb.append(attr.getName());
sb.append("\n");
sb.append(attr);
sb.append("-");
sb.append("\n");
}
return sb.toString();
}
}