X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=model%2Fietf%2Fietf-type-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fmodel%2Fietf%2Futil%2FAbstractIetfInetUtil.java;h=24e35c3d8aa5960a89edfb049f2b241630c49323;hb=6c02ae5ce070dfeeeaae878dc5436c601d305886;hp=88da958305a9e62cec3b41cf9c465939010027fd;hpb=98143cfc18f95eb4057587c1bdb4aa3b5e3b2e20;p=mdsal.git 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 88da958305..24e35c3d8a 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 @@ -37,10 +37,14 @@ public abstract class AbstractIetfInetUtil address6Factory; private final StringValueObjectFactory address6NoZoneFactory; private final StringValueObjectFactory prefix6Factory; + private final Class addr4nzClass; + private final Class addr6nzClass; protected AbstractIetfInetUtil(final Class addr4Class, final Class addr4nzClass, final Class prefix4Class, final Class addr6Class, final Class addr6nzClass, final Class prefix6Class) { + this.addr4nzClass = requireNonNull(addr4nzClass); + this.addr6nzClass = requireNonNull(addr6nzClass); this.address4Factory = StringValueObjectFactory.create(addr4Class, "0.0.0.0"); this.address4NoZoneFactory = StringValueObjectFactory.create(addr4nzClass, "0.0.0.0"); this.prefix4Factory = StringValueObjectFactory.create(prefix4Class, "0.0.0.0/0"); @@ -245,9 +249,7 @@ public abstract class AbstractIetfInetUtil= 0 && mask <= 128, "Invalid mask %s", mask); return prefix6Factory.newInstance(addressStringV6(addr) + '/' + mask); } @@ -695,32 +689,35 @@ 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); return sb.toString(); } + private static @NonNull String addressStringV4(final InetAddress addr) { + requireNonNull(addr, "Address must not be null"); + checkArgument(addr instanceof Inet4Address, "Address has to be an Inet4Address"); + return addr.getHostAddress(); + } + private static String addressStringV6(final byte @NonNull[] bytes) { checkArgument(bytes.length == INET6_LENGTH, "IPv6 address length is 16 bytes"); try { - return addressStringV6(Inet6Address.getByAddress(bytes)); + return addressStringV6(Inet6Address.getByAddress(null, bytes, null)); } catch (UnknownHostException e) { throw new IllegalArgumentException(String.format("Invalid input %s", bytes), e); } } private static String addressStringV6(final InetAddress addr) { + requireNonNull(addr, "Address must not be null"); + checkArgument(addr instanceof Inet6Address, "Address has to be an Inet6Address"); + return addressStringV6((Inet6Address) addr); + } + + private static String addressStringV6(final Inet6Address addr) { return InetAddresses.toAddrString(addr); }