*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
-public class SubnetConfig implements Serializable {
+public class SubnetConfig implements Cloneable, Serializable {
//static fields are by default excluded by Gson parser
private static final long serialVersionUID = 1L;
private static final String prettyFields[] = { GUIField.NAME.toString(),
private String subnet; // A.B.C.D/MM Where A.B.C.D is the Default
// Gateway IP (L3) or ARP Querier IP (L2
@XmlElement
- private List<String> nodePorts; // datapath ID/port list:
+ private Set<String> nodePorts; // datapath ID/port list:
// xx:xx:xx:xx:xx:xx:xx:xx/a,b,c-m,r-t,y
public SubnetConfig() {
}
- public SubnetConfig(String desc, String sub, List<String> sp) {
+ public SubnetConfig(String desc, String sub, Set<String> sp) {
name = desc;
subnet = sub;
nodePorts = sp;
}
+ public SubnetConfig(SubnetConfig subnetConfig) {
+ name = subnetConfig.name;
+ subnet = subnetConfig.subnet;
+ nodePorts = new HashSet<String>(subnetConfig.nodePorts);
+ }
+
public String getName() {
return name;
}
- public List<String> getNodePorts() {
+ public Set<String> getNodePorts() {
return nodePorts;
}
nodePorts.remove(sp);
}
+ @Override
public String toString() {
- return ("Subnet Config [Description=" + name + " Subnet=" + subnet
- + " NodeConnectors=" + nodePorts + "]");
+ return ("SubnetConfig [Description=" + name + ", Subnet=" + subnet
+ + ", NodeConnectors=" + nodePorts + "]");
}
+
+ /**
+ * Implement clonable interface
+ */
+ @Override
+ public SubnetConfig clone() {
+ return new SubnetConfig(this);
+ }
+
}