def virtual_members(self): virtual_members = [] if self.ir_class.is_subclassof("of_oxm"): value_member = find(lambda m: m.name, self.ir_model_members) if value_member: oxm_entry = model.oxm_map[self.interface.name] virtual_members += [ JavaVirtualMember(self, "matchField", java_type.make_match_field_jtype(value_member.java_type.public_type), "MatchField.%s" % oxm_entry.value), JavaVirtualMember(self, "masked", java_type.boolean, "true" if oxm_entry.masked else "false"), ] else: virtual_members += [ JavaVirtualMember(self, "matchField", java_type.make_match_field_jtype(), "null"), JavaVirtualMember(self, "masked", java_type.boolean, "false"), ] elif self.ir_class.is_subclassof("of_oxs"): value_member = find(lambda m: m.name, self.ir_model_members) if value_member: oxs_entry = model.oxs_map[self.interface.name] virtual_members += [ JavaVirtualMember(self, "statField", java_type.make_stat_field_jtype(value_member.java_type.public_type), "StatField.%s" % oxs_entry.value), JavaVirtualMember(self, "masked", java_type.boolean, "true" if oxs_entry.masked else "false"), ] else: virtual_members += [ JavaVirtualMember(self, "statField", java_type.make_stat_field_jtype(), "null"), JavaVirtualMember(self, "masked", java_type.boolean, "false"), ] if not find(lambda m: m.name == "version", self.ir_model_members): virtual_members.append(JavaVirtualMember(self, "version", java_type.of_version, "OFVersion.%s" % self.version.constant_version)) return tuple(virtual_members)
def virtual_members(self): virtual_members = [] if self.name == "OFOxm": virtual_members += [ JavaVirtualMember(self, "value", java_type.generic_t), JavaVirtualMember(self, "mask", java_type.generic_t), JavaVirtualMember(self, "matchField", java_type.make_match_field_jtype("T")), JavaVirtualMember(self, "masked", java_type.boolean), JavaVirtualMember(self, "canonical", java_type.make_oxm_jtype("T")) ] elif self.name == "OFOxs": virtual_members += [ JavaVirtualMember(self, "value", java_type.generic_t), JavaVirtualMember(self, "statField", java_type.make_stat_field_jtype("T")), ] elif self.ir_class.is_subclassof("of_oxm"): value = find(lambda m: m.name=="value", self.ir_model_members) if value: field_type = java_type.make_match_field_jtype(value.java_type.public_type) else: field_type = java_type.make_match_field_jtype() virtual_members += [ JavaVirtualMember(self, "matchField", field_type), JavaVirtualMember(self, "masked", java_type.boolean), JavaVirtualMember(self, "canonical", java_type.make_oxm_jtype(value.java_type.public_type), custom_template=lambda builder: "OFOxm{}_getCanonical.java".format(".Builder" if builder else "")), ] if not find(lambda x: x.name == "mask", self.ir_model_members): virtual_members.append( JavaVirtualMember(self, "mask", find(lambda x: x.name == "value", self.ir_model_members).java_type)) elif self.ir_class.is_subclassof("of_oxs"): value = find(lambda m: m.name=="value", self.ir_model_members) if value: field_type = java_type.make_stat_field_jtype(value.java_type.public_type) else: field_type = java_type.make_stat_field_jtype() virtual_members += [ JavaVirtualMember(self, "statField", field_type), JavaVirtualMember(self, "masked", java_type.boolean), JavaVirtualMember(self, "canonical", java_type.make_oxs_jtype(value.java_type.public_type), custom_template=lambda builder: "OFOxs{}_getCanonical.java".format(".Builder" if builder else "")), ] if not find(lambda x: x.name == "mask", self.ir_model_members): virtual_members.append( JavaVirtualMember(self, "mask", find(lambda x: x.name == "value", self.ir_model_members).java_type)) elif self.name =="OFErrorMsg": virtual_members += [ JavaVirtualMember(self, "data", java_type.error_cause_data) ] if not find(lambda m: m.name == "version", self.ir_model_members): virtual_members.append(JavaVirtualMember(self, "version", java_type.of_version)) return tuple(virtual_members)