diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java
index 6780035..15f8a9b 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java
@@ -14,4 +14,16 @@
         return key ^ (value & valueMask);
     }
 
+    public static int prefixBits(long raw1, int numBits) {
+        Preconditions.checkArgument(numBits >= 0 && numBits <= 32,
+                "numBits must be in range [0, 32]");
+
+        if(numBits == 0)
+            return 0;
+
+        final int shiftDown = 64 - numBits;
+
+        return (int) (raw1 >>> shiftDown);
+    }
+
 }
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U128.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U128.java
index 747e566..af76aee 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U128.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U128.java
@@ -2,7 +2,6 @@
 
 import org.jboss.netty.buffer.ChannelBuffer;
 
-import com.google.common.base.Preconditions;
 import com.google.common.hash.PrimitiveSink;
 
 public class U128 implements OFValueType<U128>, HashValue<U128> {
@@ -121,15 +120,7 @@
 
     @Override
     public int prefixBits(int numBits) {
-        Preconditions.checkArgument(numBits <= 31, "numBits must be <= 31");
-
-        Preconditions.checkArgument(numBits >= 0 && numBits < 32,
-                "numBits must be in range [0, 32[");
-
-        final int mask = (1 << numBits) -1;
-        final int shiftDown = 64 - numBits;
-
-        return (int) ((raw1 >>> shiftDown) & mask);
+        return HashValueUtils.prefixBits(this.raw1, numBits);
     }
 
     @Override
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java
index dd62cd0..9001eb8 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java
@@ -24,7 +24,6 @@
 import org.projectfloodlight.openflow.protocol.OFMessageReader;
 import org.projectfloodlight.openflow.protocol.Writeable;
 
-import com.google.common.base.Preconditions;
 import com.google.common.hash.PrimitiveSink;
 import com.google.common.primitives.UnsignedLongs;
 
@@ -154,13 +153,7 @@
      */
     @Override
     public int prefixBits(int numBits) {
-        Preconditions.checkArgument(numBits >= 0 && numBits < 32,
-                "numBits must be in range [0, 32[");
-
-        final int mask = (1 << numBits) -1;
-        final int shiftDown = 64 - numBits;
-
-        return (int) ((raw >>> shiftDown) & mask);
+        return HashValueUtils.prefixBits(raw, numBits);
     }
 
     @Override
