From d7d5e5f1b4e7a5a25125d6989e7ddd9f81234f21 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 7 Jan 2020 12:25:33 +0100 Subject: [PATCH] Add utility methods to strip zone from Ipv{4,6}Address Most callers really want to operate of Ipv4AddressNoZone, as a zone does not make sense. Some amount of translation may be needed when dealing with models which we have no control over, hence ensuring no zone is present needs to be done quickly. This adds ipv4AddressNoZoneFor(Ipv4Address), which does an efficient check (for the case where the source is already a NoZone) and strips the zone. Change-Id: Ieada4625637d0216983b515324bb5d33f5d33a99 JIRA: MDSAL-510 Signed-off-by: Robert Varga (cherry picked from commit 6c02ae5ce070dfeeeaae878dc5436c601d305886) --- .../model/ietf/util/AbstractIetfInetUtil.java | 30 +++++++++++++++++++ .../types/rev130715/IetfInetUtilTest.java | 27 ++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) 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 aca74d459f..f03970f66b 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"); @@ -296,6 +300,19 @@ public abstract class AbstractIetfInetUtil