X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcompatibility%2Fsal-compatibility%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcompatibility%2FNodeMapping.java;h=2c95252ac7f6a3e571dcb8cceb03de24dbc2d0c0;hp=c4c1ee93519cf4276de26115419e0de187655fca;hb=c6ab5fdef3d0cc6fac96cb960839168ed7906b3a;hpb=b01d40271b253aeb4643e7c1d7c9aa28b00d2053 diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java index c4c1ee9351..2c95252ac7 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.sal.compatibility; +import java.math.BigInteger; import java.util.Date; import java.util.HashSet; import java.util.List; @@ -54,10 +55,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.No import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -83,32 +81,20 @@ public final class NodeMapping { return new org.opendaylight.controller.sal.core.Node(NodeMapping.MD_SAL_TYPE, aDNodeId); } - public static NodeId toNodeId(final InstanceIdentifier node) { - Preconditions.>checkNotNull(node); - List path = node.getPath(); - Preconditions.>checkNotNull(path); - int size = path.size(); - Preconditions.checkArgument(size >= 2); - final PathArgument arg = path.get(1); - final IdentifiableItem item = Arguments.checkInstanceOf(arg, IdentifiableItem.class); - Identifier key = item.getKey(); - final NodeKey nodeKey = Arguments.checkInstanceOf(key, NodeKey.class); - return nodeKey.getId(); + public static NodeId toNodeId(final InstanceIdentifier id) { + final NodeKey key = id.firstKeyOf(Node.class, NodeKey.class); + Preconditions.checkArgument(key != null, "No node identifier found in %s", id); + return key.getId(); } public static String toADNodeId(final NodeId nodeId) { - Preconditions.checkNotNull(nodeId); return nodeId.getValue(); } public static org.opendaylight.controller.sal.core.NodeConnector toADNodeConnector(final NodeConnectorRef source) throws ConstructionException { - Preconditions.checkNotNull(source); - final InstanceIdentifier path = Preconditions.>checkNotNull(source.getValue()); - Preconditions.checkArgument(path.getPath().size() >= 3); - final PathArgument arg = path.getPath().get(2); - final IdentifiableItem item = Arguments.checkInstanceOf(arg,IdentifiableItem.class); - final NodeConnectorKey connectorKey = Arguments.checkInstanceOf(item.getKey(), NodeConnectorKey.class); - return NodeMapping.toADNodeConnector(connectorKey.getId(), NodeMapping.toNodeId(path)); + final InstanceIdentifier id = Preconditions.checkNotNull(source.getValue()); + final NodeConnectorKey key = id.firstKeyOf(NodeConnector.class, NodeConnectorKey.class); + return NodeMapping.toADNodeConnector(key.getId(), NodeMapping.toNodeId(id)); } public static org.opendaylight.controller.sal.core.NodeConnector toADNodeConnector(final NodeConnectorId ncid, final NodeId nid) throws ConstructionException { @@ -161,6 +147,7 @@ public final class NodeMapping { public static NodeConnectorRef toNodeConnectorRef(final org.opendaylight.controller.sal.core.NodeConnector nodeConnector) { final NodeRef node = NodeMapping.toNodeRef(nodeConnector.getNode()); + @SuppressWarnings("unchecked") final InstanceIdentifier nodePath = ((InstanceIdentifier) node.getValue()); NodeConnectorId nodeConnectorId = null; @@ -348,8 +335,8 @@ public final class NodeMapping { public static MacAddress toADMacAddress(final NodeId id) { final String nodeId = id.getValue().replaceAll("openflow:", ""); - long lNodeId = Long.parseLong(nodeId); - lNodeId = Long.valueOf(lNodeId).longValue(); + BigInteger nodeIdRaw = new BigInteger(nodeId); + long lNodeId = nodeIdRaw.longValue(); byte[] bytesFromDpid = ToSalConversionsUtils.bytesFromDpid(lNodeId); return new MacAddress(bytesFromDpid); }