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)