Renamed IPAddress.fromInetAddress() to of(); added withMask() methods that corresponds to IPv4Address.of() methods
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java
index 5e4e818..8831ee1 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java
@@ -55,6 +55,8 @@
      */
     public abstract F not();
 
+    public abstract byte[] getBytes();
+
     @Override
     public abstract boolean equals(Object other);
 
@@ -88,7 +90,7 @@
      * @throws NullPointerException if address is null
      */
     @Nonnull
-    public static IPAddress<?> fromInetAddress(@Nonnull InetAddress address) {
+    public static IPAddress<?> of(@Nonnull InetAddress address) {
         Preconditions.checkNotNull(address, "address must not be null");
         byte [] bytes = address.getAddress();
         if(address instanceof Inet4Address)
@@ -98,4 +100,10 @@
         else
             return IPAddress.of(address.getHostAddress());
     }
+
+    @Deprecated
+    @Nonnull
+    public static IPAddress<?> fromInetAddress(@Nonnull InetAddress address) {
+        return of(address);
+    }
 }
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
index 8f3cce3..e845521 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
@@ -1,5 +1,6 @@
 package org.projectfloodlight.openflow.types;
 
+import java.net.Inet4Address;
 import java.util.Arrays;
 
 import javax.annotation.Nonnull;
@@ -98,7 +99,8 @@
         return IPv4Address.of(~rawValue);
     }
 
-    public static IPv4Address of(final byte[] address) {
+    @Nonnull
+    public static IPv4Address of(@Nonnull final byte[] address) {
         Preconditions.checkNotNull(address, "address must not be null");
 
         if (address.length != LENGTH) {
@@ -117,6 +119,7 @@
      * @param raw the IPAdress represented as a 32-bit integer
      * @return the constructed IPv4Address
      */
+    @Nonnull
     public static IPv4Address of(final int raw) {
         if(raw == NONE_VAL)
             return NONE;
@@ -158,6 +161,13 @@
         return IPv4Address.of(raw);
     }
 
+    @Nonnull
+    public static IPv4Address of(@Nonnull final Inet4Address address) {
+        Preconditions.checkNotNull(address, "address must not be null");
+        return IPv4Address.of(address.getAddress());
+    }
+
+    @Nonnull
     public static IPv4Address ofCidrMaskLength(final int cidrMaskLength) {
         Preconditions.checkArgument(
                 cidrMaskLength >= 0 && cidrMaskLength <= 32,
@@ -173,6 +183,27 @@
         }
     }
 
+    public IPv4AddressWithMask withMask(@Nonnull byte[] mask) {
+        return IPv4AddressWithMask.of(this, IPv4Address.of(mask));
+    }
+
+    public IPv4AddressWithMask withMask(int mask) {
+        return IPv4AddressWithMask.of(this, IPv4Address.of(mask));
+    }
+
+    public IPv4AddressWithMask withMask(@Nonnull String mask) {
+        return IPv4AddressWithMask.of(this, IPv4Address.of(mask));
+    }
+
+    public IPv4AddressWithMask withMask(@Nonnull Inet4Address mask) {
+        return IPv4AddressWithMask.of(this, IPv4Address.of(mask));
+    }
+
+    public IPv4AddressWithMask withMaskOfLength(int cidrMaskLength) {
+        return IPv4AddressWithMask.of(this,
+                IPv4Address.ofCidrMaskLength(cidrMaskLength));
+    }
+
     public int getInt() {
         return rawValue;
     }