X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fswitchmanager%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fswitchmanager%2FSubnetConfig.java;h=36ab101a79a40525549543869f22befef25c679a;hb=48dd1186e0020b1fba649ded2fff54430dc1e5f1;hp=895f117321a6c61645742e425bcf0ad2d0af6cbd;hpb=27f937c26e44c9c0716613d8b61590942ad9ab80;p=controller.git diff --git a/opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SubnetConfig.java b/opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SubnetConfig.java index 895f117321..36ab101a79 100644 --- a/opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SubnetConfig.java +++ b/opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SubnetConfig.java @@ -19,7 +19,6 @@ import java.util.Set; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @@ -34,7 +33,7 @@ import org.opendaylight.controller.sal.utils.NodeConnectorCreator; */ @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(), @@ -42,29 +41,44 @@ public class SubnetConfig implements Serializable { // Order matters: JSP file expects following fields in the // following order - @XmlAttribute + /** + * Name of the subnet + */ + @XmlElement private String name; - @XmlAttribute - private String subnet; // A.B.C.D/MM Where A.B.C.D is the Default - // Gateway IP (L3) or ARP Querier IP (L2 + /** + * A.B.C.D/MM Where A.B.C.D is the Default + * Gateway IP (L3) or ARP Querier IP (L2) + */ + @XmlElement + private String subnet; + /** + * node ID/port list: + */a,b,c-m,r-t,y + */ @XmlElement - private List nodePorts; // datapath ID/port list: - // xx:xx:xx:xx:xx:xx:xx:xx/a,b,c-m,r-t,y + private Set nodePorts; public SubnetConfig() { } - public SubnetConfig(String desc, String sub, List sp) { + public SubnetConfig(String desc, String sub, Set sp) { name = desc; subnet = sub; nodePorts = sp; } + public SubnetConfig(SubnetConfig subnetConfig) { + name = subnetConfig.name; + subnet = subnetConfig.subnet; + nodePorts = new HashSet(subnetConfig.nodePorts); + } + public String getName() { return name; } - public List getNodePorts() { + public Set getNodePorts() { return nodePorts; } @@ -179,13 +193,13 @@ public class SubnetConfig implements Serializable { //NodeConnectors learnt from a string private void getNodeConnectorsFromString(String codedNodeConnectors, Set sp) { - if (codedNodeConnectors == null) { + if (codedNodeConnectors == null || codedNodeConnectors.isEmpty()) { return; } if (sp == null) { return; } - // codedNodeConnectors = xx:xx:xx:xx:xx:xx:xx:xx/a,b,c-m,r-t,y + // codedNodeConnectors = nodeId/a,b,c-m,r-t,y String pieces[] = codedNodeConnectors.split("/"); for (Short port : getPortList(pieces[1])) { Node n = Node.fromString(pieces[0]); @@ -212,7 +226,7 @@ public class SubnetConfig implements Serializable { } public Set getNodeConnectors(String codedNodeConnectors) { - // codedNodeConnectors = xx:xx:xx:xx:xx:xx:xx:xx/a,b,c-m,r-t,y + // codedNodeConnectors = nodeId/a,b,c-m,r-t,y Set sp = new HashSet(); getNodeConnectorsFromString(codedNodeConnectors, sp); return sp; @@ -233,7 +247,16 @@ public class SubnetConfig implements Serializable { @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); + } + }