NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

event_matcher_definition.py (3014B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\campaigns\client\v2\data_model\event_matcher_definition.py
      2 from __future__ import absolute_import, division, print_function
      3 import campaigns.client.v2.data_model.flatbuffer.event_matcher_definitions_generated as definitions_fb
      4 from campaigns.client.v2.data_model.campaign_parameters import ParameterDefinition
      5 from campaigns.client.v2.data_model.ui_definition import UIDefinition
      6 from eveProto.generated.eve_public.campaign.trigger.eventmatch.definition.api.requests_pb2 import GetAllResponse
      7 from flatbuffers.vector_utils import write_vector_of_offsets
      8 
      9 class EventMatcherDefinition(object):
     10 
     11     def __init__(self, event_matcher_name, ui_definition, parameters):
     12         self._name = event_matcher_name
     13         self._ui_definition = ui_definition
     14         self._parameters = parameters
     15 
     16     @property
     17     def name(self):
     18         return self._name
     19 
     20     @property
     21     def ui_definition(self):
     22         return self._ui_definition
     23 
     24     @property
     25     def parameters(self):
     26         return self._parameters
     27 
     28     def __repr__(self):
     29         return '<%s %r>' % (self.__class__.__name__, self.__dict__)
     30 
     31     @classmethod
     32     def from_proto(cls, definition):
     33         name = definition.definition.name
     34         ui_definition = UIDefinition.from_proto(definition.attributes.ui)
     35         parameters = [ ParameterDefinition.from_proto(parameter) for parameter in definition.attributes.parameters ]
     36         return EventMatcherDefinition(name, ui_definition, parameters)
     37 
     38     def to_flatbuffer(self, builder):
     39         name_offset = builder.CreateString(self.name)
     40         ui_definition_offset = self.ui_definition.to_flatbuffer(builder)
     41         parameter_offsets = [ parameter.to_flatbuffer(builder) for parameter in self.parameters ]
     42         parameter_offset = write_vector_of_offsets(builder, definitions_fb.DefinitionStartParametersVector, parameter_offsets)
     43         definitions_fb.DefinitionStart(builder)
     44         definitions_fb.DefinitionAddName(builder, name_offset)
     45         definitions_fb.DefinitionAddUi(builder, ui_definition_offset)
     46         definitions_fb.DefinitionAddParameters(builder, parameter_offset)
     47         return definitions_fb.DefinitionsEnd(builder)
     48 
     49     @classmethod
     50     def from_flatbuffer(cls, definition_fb):
     51         name = definition_fb.Name().decode('utf-8')
     52         ui = UIDefinition.from_flatbuffer(definition_fb.Ui())
     53         parameters = []
     54         for index in range(definition_fb.ParametersLength()):
     55             parameter = definition_fb.Parameters(index)
     56             parameters.append(ParameterDefinition.from_flatbuffer(parameter))
     57 
     58         return EventMatcherDefinition(name, ui, parameters)
     59 
     60     def __eq__(self, other):
     61         if not isinstance(other, EventMatcherDefinition):
     62             raise NotImplementedError
     63         return self.name == other.name and self.ui_definition == other.ui_definition and self.parameters == other.parameters
     64 
     65     def __ne__(self, other):
     66         return not self.__eq__(other)