Reorganized OFFactories
diff --git a/java_gen/templates/of_factory_interface.java b/java_gen/templates/of_factory_interface.java
index 39432a8..fcb690f 100644
--- a/java_gen/templates/of_factory_interface.java
+++ b/java_gen/templates/of_factory_interface.java
@@ -31,17 +31,27 @@
//:: include('_autogen.java')
-package org.openflow.protocol;
+package ${factory.package};
//:: include("_imports.java")
public interface ${factory.name} {
+ // Subfactories
+//:: for name, clazz in factory.sub_factories.items():
+ ${clazz} ${name}();
+//:: #endfor
+
//:: for i in factory.members:
//:: if i.is_virtual:
//:: continue
//:: #endif
- ${i.name}.Builder create${i.name[2:]}Builder()${ "" if i.is_universal else " throws UnsupportedOperationException"};
+ //:: if len(i.writeable_members) > 0:
+ ${i.name}.Builder ${factory.method_name(i, builder=True)}()${ "" if i.is_universal else " throws UnsupportedOperationException"};
+ //:: #endif
+ //:: if len(i.writeable_members) <= 2:
+ ${i.name} ${factory.method_name(i, builder=False )}(${", ".join("%s %s" % (p.java_type.public_type, p.name) for p in i.writeable_members)});
+ //:: #endif
//:: #endfor
- OFMessageReader<OFMessage> getMessageReader();
+ OFMessageReader<${factory.base_class}> getReader();
}