Unify prefix splitting 95/35195/1
authorRobert Varga <robert.varga@pantheon.sk>
Mon, 22 Feb 2016 14:00:52 +0000 (15:00 +0100)
committerRobert Varga <robert.varga@pantheon.sk>
Mon, 22 Feb 2016 14:00:52 +0000 (15:00 +0100)
Instead of duplicating code, create a static utility method to perform
the string split.

Change-Id: I3c25b1cff00fa61e037dc94fb9951fd998567455
Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java

index b008d1ac783bcfbc1f3443a8e6f3e9d022b3ca2b..e8a112aeace721d4b9bedb12af855fa0578be7e2 100644 (file)
@@ -166,10 +166,7 @@ public abstract class AbstractIetfInetUtil<A4, P4, A6, P6, A> {
     }
 
     @Nonnull public final Entry<A4, Integer> splitIpv4Prefix(@Nonnull final P4 prefix) {
-        final String str = ipv4PrefixString(prefix);
-        final int slash = str.lastIndexOf('/');
-        final A4 addr = address4Factory.newInstance(str.substring(0, slash));
-        return new SimpleImmutableEntry<>(addr, Integer.valueOf(str.substring(slash + 1)));
+        return splitPrefix(address4Factory, ipv4PrefixString(prefix));
     }
 
     /**
@@ -272,16 +269,19 @@ public abstract class AbstractIetfInetUtil<A4, P4, A6, P6, A> {
     }
 
     @Nonnull public final Entry<A6, Integer> splitIpv6Prefix(@Nonnull final P6 prefix) {
-        final String str = ipv6PrefixString(prefix);
-        final int slash = str.lastIndexOf('/');
-        final A6 addr = address6Factory.newInstance(str.substring(0, slash));
-        return new SimpleImmutableEntry<>(addr, Integer.valueOf(str.substring(slash + 1)));
+        return splitPrefix(address6Factory, ipv6PrefixString(prefix));
     }
 
     private static <T> T prefixToAddress(final StringValueObjectFactory<T> factory, final String str) {
         return factory.newInstance(str.substring(0, str.lastIndexOf('/')));
     }
 
+    private static <T> Entry<T, Integer> splitPrefix(final StringValueObjectFactory<T> factory, final String str) {
+        final int slash = str.lastIndexOf('/');
+        return new SimpleImmutableEntry<>(factory.newInstance(str.substring(0, slash)),
+                Integer.valueOf(str.substring(slash + 1)));
+    }
+
     private static void appendIpv4String(final StringBuilder sb, final byte[] bytes) {
         Preconditions.checkArgument(bytes.length == 4, "IPv4 address length is 4 bytes");