make logical oper typesafe and remove code duplication
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddressWithMask.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddressWithMask.java
index f9eefc1..ba7eb93 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddressWithMask.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddressWithMask.java
@@ -9,7 +9,7 @@
 
     public abstract IPVersion getIpVersion();
 
-    public IPAddress<?> getSubnetBroadcastAddress() {
+    public F getSubnetBroadcastAddress() {
         if (!mask.isCidrMask()) {
             throw new IllegalArgumentException("Mask Invalid " + mask +
                                                " cannot get subnet for non CIDR mask");
@@ -17,7 +17,7 @@
         return value.or(mask.not());
     }
 
-    public boolean isSubnetBroadcastAddress(IPAddress<?> candidate) {
+    public boolean isSubnetBroadcastAddress(F candidate) {
         return getSubnetBroadcastAddress().equals(candidate);
     }