java_gen: make OFFactory be a XidGenerator
diff --git a/java_gen/java_model.py b/java_gen/java_model.py
index 033ff20..410a1dd 100644
--- a/java_gen/java_model.py
+++ b/java_gen/java_model.py
@@ -378,14 +378,15 @@
annotated_base_class = base_class + "<?>" if base_class == "OFOxm" else base_class
factories[base_class] = OFFactory(package="%s.%s" % (prefix, package),
- name=base_class + "s", members=[], remove_prefix=remove_prefix, base_class=annotated_base_class, sub_factories={})
+ name=base_class + "s", members=[], remove_prefix=remove_prefix, base_class=annotated_base_class, sub_factories={}, xid_generator=False)
factories[""] = OFFactory(
package=prefix,
name="OFFactory",
remove_prefix="",
members=[], base_class="OFMessage", sub_factories=OrderedDict(
- ("{}{}s".format(n[2].lower(), n[3:]), "{}s".format(n)) for n in sub_factory_classes ))
+ ("{}{}s".format(n[2].lower(), n[3:]), "{}s".format(n)) for n in sub_factory_classes ),
+ xid_generator=True)
for i in self.interfaces:
for n, factory in factories.items():
@@ -421,7 +422,7 @@
return True
-class OFFactory(namedtuple("OFFactory", ("package", "name", "members", "remove_prefix", "base_class", "sub_factories"))):
+class OFFactory(namedtuple("OFFactory", ("package", "name", "members", "remove_prefix", "base_class", "sub_factories", "xid_generator"))):
@property
def factory_classes(self):
return [ OFFactoryClass(
@@ -624,6 +625,10 @@
def writeable_members(self):
return [ m for m in self.members if m.is_writeable ]
+ @memoize
+ def member_by_name(self, name):
+ return find(lambda m: m.name == name, self.members)
+
@property
@memoize
def members(self):