From: Shuva Kar Date: Thu, 2 Jun 2016 14:39:57 +0000 (+0530) Subject: BUG-2771: Converting String.split() to Guava Splitter X-Git-Tag: release/boron~203^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=9c89ce5b711c0721dab92f1840a2b8c544074005;p=openflowplugin.git BUG-2771: Converting String.split() to Guava Splitter for Inventory Utils Change-Id: I70eaaebae0a9ad879aba5fa3313d01450af6194d Signed-off-by: Shuva Kar --- diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/IpConversionUtil.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/IpConversionUtil.java index 9a09033db7..fbf9e8cdf4 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/IpConversionUtil.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/IpConversionUtil.java @@ -15,6 +15,9 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; +import java.util.List; + +import com.google.common.collect.Lists; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix; @@ -224,7 +227,11 @@ public final class IpConversionUtil { * the input is validated via regexps in Ipv6Prefix() */ - String [] address = (ipv6Address.getValue()).split("%"); + Iterable splittedV6Address = Splitter.on("%") + .trimResults() + .omitEmptyStrings() + .split(ipv6Address.getValue()); + List partsV6Address = Lists.newArrayList(splittedV6Address.iterator()); int colonp; char ch; @@ -234,7 +241,7 @@ public final class IpConversionUtil { int val; - char[] src = address[0].toCharArray(); + char[] src = partsV6Address.get(0).toCharArray(); byte[] dst = new byte[INADDR6SZ]; @@ -307,7 +314,7 @@ public final class IpConversionUtil { Preconditions.checkArgument(j != (INADDR6SZ - INADDR4SZ - 1), "Invalid v4 in v6 mapping"); - InetAddress _inet_form = InetAddresses.forString(address[0].substring(curtok, src_length)); + InetAddress _inet_form = InetAddresses.forString(partsV6Address.get(0).substring(curtok, src_length)); Preconditions.checkArgument(_inet_form instanceof Inet4Address); System.arraycopy(_inet_form.getAddress(), 0, dst, j, INADDR4SZ); @@ -372,13 +379,16 @@ public final class IpConversionUtil { int mask = 128; - String [] address = null; + Iterable splittedV6Prefix = Splitter.on("/") + .trimResults() + .omitEmptyStrings() + .split(ipv6Prefix.getValue()); + List partsV6Prefix = Lists.newArrayList(splittedV6Prefix.iterator()); boolean valid = true; - address = (ipv6Prefix.getValue()).split("/"); try { - mask = Integer.parseInt(address[1]); + mask = Integer.parseInt(partsV6Prefix.get(1)); if (mask > 128) { valid = false; } @@ -397,7 +407,7 @@ public final class IpConversionUtil { int val; - char[] src = address[0].toCharArray(); + char[] src = partsV6Prefix.get(0).toCharArray(); byte[] dst = new byte[INADDR6SZ + 1]; @@ -485,7 +495,7 @@ public final class IpConversionUtil { Preconditions.checkArgument(j != (INADDR6SZ - INADDR4SZ - 1), "Invalid v4 in v6 mapping"); - InetAddress _inet_form = InetAddresses.forString(address[0].substring(curtok, src_length)); + InetAddress _inet_form = InetAddresses.forString(partsV6Prefix.get(0).substring(curtok, src_length)); Preconditions.checkArgument(_inet_form instanceof Inet4Address); System.arraycopy(_inet_form.getAddress(), 0, dst, j, INADDR4SZ); @@ -645,6 +655,7 @@ public final class IpConversionUtil { String maskInBits; // converting byte array to bits maskInBits = new BigInteger(1, byteMask).toString(2); + ArrayList stringMaskArrayList = new ArrayList(Arrays.asList(maskInBits.split("(?!^)"))); for (String string:stringMaskArrayList) { integerMaskArrayList.add(Integer.parseInt(string)); diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java index 1558524ecc..bc002d1409 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java @@ -14,6 +14,7 @@ import java.util.List; import org.opendaylight.controller.sal.common.util.Arguments; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; +import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey; @@ -123,8 +124,8 @@ public final class PacketOutConvertor { InstanceIdentifier.IdentifiableItem item = Arguments.checkInstanceOf(pathArgument, InstanceIdentifier.IdentifiableItem.class); NodeConnectorKey key = Arguments.checkInstanceOf(item.getKey(), NodeConnectorKey.class); - String[] split = key.getId().getValue().split(":"); - Long port = OpenflowPortsUtil.getPortFromLogicalName(OpenflowVersion.get(ofVersion), split[split.length - 1]); + Long port = InventoryDataServiceUtil.portNumberfromNodeConnectorId( + OpenflowVersion.get(ofVersion), key.getId()); return new PortNumber(port); } } diff --git a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertorTest.java b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertorTest.java index ad4bf7eb3a..9f0409efb8 100644 --- a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertorTest.java +++ b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertorTest.java @@ -17,6 +17,7 @@ import org.junit.Test; import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; +import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCaseBuilder; @@ -215,9 +216,8 @@ public class PacketOutConvertorTest { */ private static PortNumber getPortNumber(final NodeConnectorKey nConKey, final Short ofVersion) { - String[] split = nConKey.getId().getValue().split(":"); - Long port = OpenflowPortsUtil.getPortFromLogicalName( - OpenflowVersion.get(ofVersion), split[split.length - 1]); + Long port = InventoryDataServiceUtil.portNumberfromNodeConnectorId( + OpenflowVersion.get(ofVersion), nConKey.getId()); return new PortNumber(port); }