Updated Java types according to new design
diff --git a/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java b/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java
index 0f9eaf7..11c733d 100644
--- a/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java
+++ b/java_gen/pre-written/src/main/java/org/openflow/types/VlanVid.java
@@ -1,5 +1,88 @@
 package org.openflow.types;
 
-public class VlanVid {
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.openflow.exceptions.OFParseError;
 
+public class VlanVid implements OFValueType {
+    
+    private static final short VALIDATION_MASK = 0x0FFF;
+    final static int LENGTH = 2;
+    
+    private final short vid;
+    
+    private VlanVid(short vid) {
+        this.vid = vid;
+    }
+    
+    public static VlanVid of(short vid) {
+        if ((vid & VALIDATION_MASK) != vid)
+            throw new IllegalArgumentException("Illegal VLAN VID value: " + vid);
+        return new VlanVid(vid);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (!(obj instanceof VlanVid))
+            return false;
+        VlanVid other = (VlanVid)obj;
+        if (other.vid != this.vid)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int prime = 13873;
+        return this.vid * prime;
+    }
+
+    @Override
+    public String toString() {
+        return "0x" + Integer.toHexString(vid);
+    }
+    
+    public short getValue() {
+        return vid;
+    }
+
+    @Override
+    public int getLength() {
+        return LENGTH;
+    }
+
+
+    volatile byte[] bytesCache = null;
+
+    public byte[] getBytes() {
+        if (bytesCache == null) {
+            synchronized (this) {
+                if (bytesCache == null) {
+                    bytesCache =
+                            new byte[] { (byte) ((vid >>> 8) & 0xFF),
+                                         (byte) ((vid >>> 0) & 0xFF) };
+                }
+            }
+        }
+        return bytesCache;
+    }
+    
+    public static final Serializer<VlanVid> SERIALIZER_V10 = new SerializerV10();
+    public static final Serializer<VlanVid> SERIALIZER_V11 = SERIALIZER_V10;
+    public static final Serializer<VlanVid> SERIALIZER_V12 = SERIALIZER_V10;
+    public static final Serializer<VlanVid> SERIALIZER_V13 = SERIALIZER_V10;
+    
+    private static class SerializerV10 implements OFValueType.Serializer<VlanVid> {
+
+        @Override
+        public void writeTo(VlanVid value, ChannelBuffer c) {
+            c.writeShort(value.vid);
+        }
+
+        @Override
+        public VlanVid readFrom(ChannelBuffer c) throws OFParseError {
+            return VlanVid.of(c.readShort());
+        }
+        
+    }
+    
 }