From: Robert Varga Date: Tue, 7 Jan 2020 12:57:43 +0000 (+0100) Subject: Return Ipv{4,6}AddressNoZone when formatting from binary X-Git-Tag: v6.0.0~185 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;ds=sidebyside;h=b32e2ed3958c68357ff60800e3450e69aef02b73;p=mdsal.git Return Ipv{4,6}AddressNoZone when formatting from binary Ever since MDSAL-440 was implemented, there is no point in our utilities returning Ipv4Address objects as they never contain a zone and therefore are equivalent to Ipv4AddressNoZone. Ipv4AddressNoZone has the additional benefit that the lack of a zone is contained in the type definition -- hence it can be propagated through Java interfaces in a type-safe manner. Futhermore, given the relationship between the two classes, the non-presence of zone can be ascertained via a simple instanceof check rather than searching the string. JIRA: MDSAL-511 Change-Id: I7e0ed85bad7a63af9e9a6f8838609c0e53776ab0 Signed-off-by: Robert Varga --- 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 24e35c3d8a..124318ae59 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 @@ -31,33 +31,28 @@ public abstract class AbstractIetfInetUtil address4Factory; private final StringValueObjectFactory address4NoZoneFactory; private final StringValueObjectFactory prefix4Factory; - private final StringValueObjectFactory 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) { + protected AbstractIetfInetUtil(final Class addr4nzClass, final Class prefix4Class, + 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"); - this.address6Factory = StringValueObjectFactory.create(addr6Class, "::0"); this.address6NoZoneFactory = StringValueObjectFactory.create(addr6nzClass, "::0"); this.prefix6Factory = StringValueObjectFactory.create(prefix6Class, "::0/0"); } - protected abstract @NonNull A ipv4Address(@NonNull A4 addr); + protected abstract @NonNull A ipv4Address(@NonNull A4NZ addr); protected abstract @NonNull ANZ ipv4AddressNoZone(@NonNull A4NZ addr); - protected abstract @NonNull A ipv6Address(@NonNull A6 addr); + protected abstract @NonNull A ipv6Address(@NonNull A6NZ addr); protected abstract @NonNull ANZ ipv6AddressNoZone(@NonNull A6NZ addr); @@ -122,9 +117,9 @@ public abstract class AbstractIetfInetUtil splitIpv4Prefix(final @NonNull P4 prefix) { - return splitPrefix(address4Factory, ipv4PrefixString(prefix)); + public final @NonNull Entry splitIpv4Prefix(final @NonNull P4 prefix) { + return splitPrefix(address4NoZoneFactory, ipv4PrefixString(prefix)); } + @Deprecated(forRemoval = true) public final @NonNull Entry splitIpv4PrefixNoZone(final @NonNull P4 prefix) { - return splitPrefix(address4NoZoneFactory, ipv4PrefixString(prefix)); + return splitIpv4Prefix(prefix); } public final byte @NonNull[] ipv4PrefixToBytes(final @NonNull P4 prefix) { @@ -474,8 +477,8 @@ public abstract class AbstractIetfInetUtil splitIpv6Prefix(final @NonNull P6 prefix) { - return splitPrefix(address6Factory, ipv6PrefixString(prefix)); + public final @NonNull Entry splitIpv6Prefix(final @NonNull P6 prefix) { + return splitPrefix(address6NoZoneFactory, ipv6PrefixString(prefix)); } + @Deprecated(forRemoval = true) public final @NonNull Entry splitIpv6PrefixNoZone(final @NonNull P6 prefix) { - return splitPrefix(address6NoZoneFactory, ipv6PrefixString(prefix)); + return splitIpv6Prefix(prefix); } private static @NonNull T prefixToAddress(final StringValueObjectFactory factory, final String str) { diff --git a/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/IpUtil.java b/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/IpUtil.java index bf4756441c..e28e16fd4d 100644 --- a/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/IpUtil.java +++ b/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/IpUtil.java @@ -18,7 +18,7 @@ final class IpUtil extends AbstractIetfInetUtil