package org.safehaus.penrose.ldap; import org.safehaus.penrose.control.Control; import java.util.*; import java.io.Serializable; /** * @author Endi S. Dewata */ public class SearchReference implements Serializable, Cloneable { public final static long serialVersionUID = 1L; private DN dn; private Collection<String> urls = new ArrayList<String>(); private Collection<Control> controls = new ArrayList<Control>(); public SearchReference() { } public SearchReference(String dn, Collection<String> urls) { this.dn = new DN(dn); this.urls.addAll(urls); } public SearchReference(DN dn, Collection<String> urls) { this.dn = dn; this.urls.addAll(urls); } public SearchReference(DN dn, Collection<String> urls, Collection<Control> controls) { this.dn = dn; this.urls.addAll(urls); this.controls.addAll(controls); } public DN getDn() { return dn; } public void setDn(DN dn) { this.dn = dn; } public Collection<String> getUrls() { return urls; } public void setUrls(Collection<String> urls) { if (this.urls == urls) return; this.urls.clear(); if (urls != null) this.urls.addAll(urls); } public Collection<Control> getControls() { return controls; } public void setControls(Collection<Control> controls) { if (this.controls == controls) return; this.controls.clear(); if (controls != null) this.controls.addAll(controls); } public Object clone() throws CloneNotSupportedException { SearchReference sr = (SearchReference)super.clone(); sr.dn = dn; sr.urls = new ArrayList<String>(); sr.urls.addAll(urls); sr.controls = new ArrayList<Control>(); for (Control control : controls) { sr.controls.add((Control)control.clone()); } return sr; } }