Example #1
0
    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)
Example #2
0
    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),
                   ]
        elif self.parent_interface and self.parent_interface.startswith("OFOxm"):
            field_type = java_type.make_match_field_jtype(model.oxm_map[self.name].type_name) \
                if self.name in model.oxm_map \
                else java_type.make_match_field_jtype()

            virtual_members += [
                    JavaVirtualMember(self, "matchField", field_type),
                    JavaVirtualMember(self, "masked", java_type.boolean),
                   ]
            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))

        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)
Example #3
0
    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"),
                ]
        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)
Example #4
0
    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.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.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)
Example #5
0
 def virtual_members(self):
     if self.interface.parent_interface and self.interface.parent_interface.startswith("OFOxm"):
         if self.interface.name in model.oxm_map:
             oxm_entry = model.oxm_map[self.interface.name]
             return (
                 JavaVirtualMember(self, "matchField", java_type.make_match_field_jtype(oxm_entry.type_name), "MatchField.%s" % oxm_entry.value),
                 JavaVirtualMember(self, "masked", java_type.boolean, "true" if oxm_entry.masked else "false"),
                )
         else:
             return (
                 JavaVirtualMember(self, "matchField", java_type.make_match_field_jtype(), "null"),
                 JavaVirtualMember(self, "masked", java_type.boolean, "false"),
                )
     else:
         return ()
Example #6
0
    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.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.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)
Example #7
0
    def virtual_members(self):
        virtual_members = []
        if self.interface.parent_interface and self.interface.parent_interface.startswith("OFOxm"):
            if self.interface.name in model.oxm_map:
                oxm_entry = model.oxm_map[self.interface.name]
                virtual_members += [
                    JavaVirtualMember(self, "matchField", java_type.make_match_field_jtype(oxm_entry.type_name), "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"),
                   ]

        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)
Example #8
0
    def virtual_members(self):
        if self.name == "OFOxm":
            return (
                    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),
                   )
        elif self.parent_interface and self.parent_interface.startswith("OFOxm"):
            field_type = java_type.make_match_field_jtype(model.oxm_map[self.name].type_name) \
                if self.name in model.oxm_map \
                else java_type.make_match_field_jtype()

            return (
                    JavaVirtualMember(self, "matchField", field_type),
                    JavaVirtualMember(self, "masked", java_type.boolean),
                   ) \
                   + \
                   (
                           ( JavaVirtualMember(self, "mask", find(lambda x: x.name == "value", self.ir_model_members).java_type), ) if not find(lambda x: x.name == "mask", self.ir_model_members) else
                    ()
                   )
        else:
            return ()