X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcompatibility%2Fsal-compatibility%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcompatibility%2FNodeMapping.java;h=b873f8a9fe060ff93c0279fbef0ad3cf59d0ab84;hb=67d58d1ab50f3c3bbe19a96fb6f0d9d94211829f;hp=be087abdb41099b9a5d8505ed20f7ac59624f531;hpb=8e42b08cb626a60919c145b2a46d94114c3905d6;p=controller.git 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 be087abdb4..b873f8a9fe 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 @@ -14,6 +14,7 @@ import java.math.BigInteger; import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.regex.Pattern; import org.opendaylight.controller.sal.common.util.Arguments; import org.opendaylight.controller.sal.core.AdvertisedBandwidth; import org.opendaylight.controller.sal.core.Bandwidth; @@ -80,6 +81,12 @@ public final class NodeMapping { private final static Class NODECONNECTOR_CLASS = NodeConnector.class; + private final static Pattern COLON_NUMBERS_EOL = Pattern.compile(":[0-9]+$"); + + private final static Pattern NUMBERS_ONLY = Pattern.compile("[0-9]+"); + + private final static Pattern ALL_CHARS_TO_COLON = Pattern.compile("^.*:"); + private NodeMapping() { throw new UnsupportedOperationException("Utility class. Instantiation is not allowed."); } @@ -182,15 +189,16 @@ public final class NodeMapping { return org.opendaylight.controller.sal.core.NodeConnector.SPECIALNODECONNECTORID; } - String nodeConnectorIdStripped = nodeConnectorId.getValue().replaceFirst("^.*:", ""); - if (nodeConnectorIdStripped.matches("[0-9]+")) { + String nodeConnectorIdStripped = ALL_CHARS_TO_COLON.matcher(nodeConnectorId.getValue()).replaceFirst(""); + + if (NUMBERS_ONLY.matcher(nodeConnectorIdStripped).matches()) { Short nodeConnectorIdVal = null; try { nodeConnectorIdVal = Short.valueOf(nodeConnectorIdStripped); + return nodeConnectorIdVal; } catch (NumberFormatException e) { - LOG.warn("nodeConnectorId not supported (short): {}", nodeConnectorIdStripped, e); + LOG.warn("nodeConnectorId not supported (long): {}", nodeConnectorIdStripped, e); } - return nodeConnectorIdVal; } return nodeConnectorIdStripped; } @@ -198,7 +206,7 @@ public final class NodeMapping { public static NodeId toAdNodeId(final NodeConnectorId nodeConnectorId) { NodeId nodeId = null; if (nodeConnectorId != null) { - nodeId = new NodeId(nodeConnectorId.getValue().replaceFirst(":[0-9]+$", "")); + nodeId = new NodeId(COLON_NUMBERS_EOL.matcher(nodeConnectorId.getValue()).replaceFirst("")); } return nodeId; }