From: Robert Varga Date: Mon, 6 Jan 2020 17:41:24 +0000 (+0100) Subject: Add IPv4 address bridges to primitive int X-Git-Tag: v4.0.9~9 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=7725b36ff2d8cb629e04161aad33905f0b33469c Add IPv4 address bridges to primitive int Interfacing Ipv4Address(NoZone) with plain int is useful when we we want to interface with byte streams, such as DataInput or Netty's ByteBuf. This adds the methods to do so. JIRA: MDSAL-509 Change-Id: Icce95e4a94ae41be4fc2aee352f83655ea55e89f Signed-off-by: Robert Varga (cherry picked from commit 98143cfc18f95eb4057587c1bdb4aa3b5e3b2e20) --- diff --git a/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java b/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java index a67cc8f13e..88da958305 100644 --- a/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java +++ b/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java @@ -250,6 +250,16 @@ public abstract class AbstractIetfInetUtil>> 24).append('.') + .append(bits >>> 16 & 0xFF).append('.') + .append(bits >>> 8 & 0xFF).append('.') + .append(bits & 0xFF) + .toString(); + } + static String addressStringV4(final byte @NonNull[] bytes) { final StringBuilder sb = new StringBuilder(15); appendIpv4String(sb, bytes); diff --git a/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java b/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java index ba19adc47f..dee4d2d45d 100644 --- a/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java +++ b/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java @@ -175,4 +175,28 @@ public class AbstractIetfInetUtilTest { }).when(ipClass).getValue(); UTIL.inet6AddressFor(ipClass); } -} \ No newline at end of file + + @Test + public void testIpv4AddressForBits() { + assertEquals("1.2.3.4", UTIL.ipv4AddressFor(0x01020304).getValue()); + assertEquals("255.255.255.255", UTIL.ipv4AddressFor(0xFFFFFFFF).getValue()); + } + + @Test + public void testIpv4AddressNoZoneForBits() { + assertEquals("1.2.3.4", UTIL.ipv4AddressNoZoneFor(0x01020304).getValue()); + assertEquals("255.255.255.255", UTIL.ipv4AddressNoZoneFor(0xFFFFFFFF).getValue()); + } + + @Test + public void testIpv4AddressBits() { + assertEquals(0x01020304, UTIL.ipv4AddressBits(new IpClass("1.2.3.4"))); + assertEquals(0xFFFFFFFF, UTIL.ipv4AddressBits(new IpClass("255.255.255.255"))); + } + + @Test + public void testIpv4AddressNoZoneBits() { + assertEquals(0x01020304, UTIL.ipv4AddressNoZoneBits(new IpClass("1.2.3.4"))); + assertEquals(0xFFFFFFFF, UTIL.ipv4AddressNoZoneBits(new IpClass("255.255.255.255"))); + } +}