Adds new utility function 25/23725/1
authorMilos Fabian <milfabia@cisco.com>
Fri, 3 Jul 2015 09:21:50 +0000 (11:21 +0200)
committerMilos Fabian <milfabia@cisco.com>
Fri, 3 Jul 2015 09:25:25 +0000 (11:25 +0200)
converts IpAddress and PortNumber to InetSocketAddress

Change-Id: I43f5e6af0316aeb0dfe2ab901d3c396118da707b
Signed-off-by: Milos Fabian <milfabia@cisco.com>
util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java
util/src/test/java/org/opendaylight/protocol/util/IPAddressesAndPrefixesTest.java

index c735d5391e2609a9fb23c70db9e72739804e09ee..b61790494e66a4e6dbddeaa840054ea09666f857 100644 (file)
@@ -16,6 +16,7 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import java.net.Inet4Address;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.Collections;
@@ -24,6 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 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;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
 
 /**
  * Util class for creating generated Ipv4Address.
@@ -211,4 +213,21 @@ public final class Ipv4Util {
         }
         return new IpAddress(new Ipv6Address(address));
     }
+
+    /**
+     * Converts IpAddress and PortNumber to InetSocketAddress
+     *
+     * @param ipAddress
+     * @param port
+     * @return InetSocketAddress
+     */
+    public static InetSocketAddress toInetSocketAddress(final IpAddress ipAddress, final PortNumber port) {
+        final String ipString;
+        if (ipAddress.getIpv4Address() != null) {
+            ipString = ipAddress.getIpv4Address().getValue();
+        } else {
+            ipString = ipAddress.getIpv6Address().getValue();
+        }
+        return new InetSocketAddress(InetAddresses.forString(ipString), port.getValue());
+    }
 }
index 7d07f83738242eb3258826d13f62e21c253cd1e3..79d9d38d5057ed3264427eb1d021037fb0bbe715 100644 (file)
@@ -20,6 +20,7 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.util.List;
 import org.junit.Assert;
@@ -30,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
 
 public class IPAddressesAndPrefixesTest {
 
@@ -204,4 +206,15 @@ public class IPAddressesAndPrefixesTest {
         Assert.assertNotNull(ipAddress2.getIpv6Address());
         Assert.assertEquals(new Ipv6Address("2001:db8:1:2::"), ipAddress2.getIpv6Address());
     }
+
+    @Test
+    public void testToInetSocketAddress() {
+        final InetSocketAddress isa = Ipv4Util.toInetSocketAddress(new IpAddress(new Ipv4Address("123.42.13.8")), new PortNumber(10));
+        Assert.assertEquals(10, isa.getPort());
+        Assert.assertEquals("123.42.13.8", InetAddresses.toAddrString(isa.getAddress()));
+
+        final InetSocketAddress isa2 = Ipv4Util.toInetSocketAddress(new IpAddress(new Ipv6Address("2001:db8:1:2::")), new PortNumber(10));
+        Assert.assertEquals(10, isa2.getPort());
+        Assert.assertEquals("2001:db8:1:2::", InetAddresses.toAddrString(isa2.getAddress()));
+    }
 }