Richer model for OXMs
diff --git a/java_gen/templates/of_virtual_class.java b/java_gen/templates/of_virtual_class.java
index f1ac849..fe5c66c 100644
--- a/java_gen/templates/of_virtual_class.java
+++ b/java_gen/templates/of_virtual_class.java
@@ -37,7 +37,7 @@
 
 //:: include("_imports.java", msg=msg)
 
-abstract class ${msg.name} implements ${msg.interface.name} {
+abstract class ${msg.name} {
     // version: ${version}
     private final static byte WIRE_VERSION = ${version.int_version};
 //:: if msg.is_fixed_length:
@@ -49,7 +49,7 @@
 
     public final static ${msg.name}.Reader READER = new Reader();
 
-    static class Reader implements OFMessageReader<${msg.interface.name}> {
+    static class Reader implements OFMessageReader<${msg.interface.inherited_declaration()}> {
         @Override
         public ${msg.interface.name} readFrom(ChannelBuffer bb) throws OFParseError {
             int start = bb.readerIndex();