X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2FNode.java;h=0ea04c32065e7746518504901abc454f4d5e6281;hp=ef0c0667aa22eeff199ea83ad3769adfaba7cfb9;hb=0007635e8377230bf3befc836f1e05b6e075251b;hpb=1e9531138e44cd757ca27b0d86e98eccb22ccd82 diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java index ef0c0667aa..0ea04c3206 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java @@ -27,6 +27,7 @@ import java.util.concurrent.ConcurrentHashMap; 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; import org.opendaylight.controller.sal.utils.HexEncode; @@ -197,7 +198,7 @@ public class Node implements Serializable { * * @return The node Type for this Node object */ - @XmlAttribute(name = "type") + @XmlElement(name = "type") public String getType() { return this.nodeType; } @@ -228,8 +229,13 @@ public class Node implements Serializable { } else if (typeStr.equals(NodeIDType.PRODUCTION)) { this.nodeID = IDStr; } else { - // We need to lookup via OSGi service registry for an - // handler for this + //Use plugin's method to get appropriate conversion from IDStr to nodeID + INodeFactory f = (INodeFactory) ServiceHelper + .getGlobalInstance(INodeFactory.class, new Node(), "(protocolName="+typeStr+")"); + if(f!=null){ + Node n = f.fromString(typeStr, IDStr); + this.nodeID = n.nodeID; + } } } @@ -261,7 +267,7 @@ public class Node implements Serializable { * * @return The nodeID in string format */ - @XmlAttribute(name = "id") + @XmlElement(name = "id") public String getNodeIDString() { if (this.nodeType.equals(NodeIDType.OPENFLOW)) { return HexEncode.longToHexString((Long) this.nodeID); @@ -317,10 +323,10 @@ public class Node implements Serializable { @Override public String toString() { if (this.nodeType.equals(NodeIDType.OPENFLOW)) { - return this.nodeType.toString() + "|" + return this.nodeType + "|" + HexEncode.longToHexString((Long) this.nodeID); } else { - return this.nodeType.toString() + "|" + this.nodeID.toString(); + return this.nodeType + "|" + this.nodeID.toString(); } }