def __init__(self, **args): Linkable.__init__(self, **args) self.type: GatewayType = self.expects( args, 'type', GatewayType.Exclusive) self.ignore_attrs('type')
def __init__(self, **args): Linkable.__init__(self, **args) self.type: EventType = self.expects(args, 'type', EventType.Start) self.definition = self.expects(args, 'definition', EventDefinition.Default) self.attachedTo = self.expects(args, 'attachedTo') self.cancelActivity = self.expects(args, 'cancelActivity', True) self.ignore_attrs('type', 'definition', 'attachedTo')
def serialize(self): # Fix Tag Name eventElement = Linkable.serialize(self) eventElement.tag = bpmn + ('boundary' if self.attachedTo != None else camel_case(self.type.name)) + 'Event' # Add Cancel Attribute if self.attachedTo != None: eventElement.attrib['cancelActivity'] = str(self.cancelActivity) eventElement.attrib['attachedToRef'] = str(self.attachedTo.id) # Add Definition Element if self.definition != EventDefinition.Default: eventDefElement = et.Element( camel_case(self.definition.name) + 'EventDefinition') eventDefElement.attrib[ 'id'] = f'{self.id}_{self.definition.name}Definition' eventElement.append(eventDefElement) return eventElement
def serialize(self): e = Linkable.serialize(self) if self.flag in [ ActivityFlag.ParallelMultiple, ActivityFlag.SequentialMultiple, ActivityFlag.Loop ]: # instantiate characteristics element element = et.Element(bpmn + ('standard' if self.flag == ActivityFlag.Loop else 'multiInstance') + 'LoopCharacteristics') # mark as sequential if self.flag == ActivityFlag.SequentialMultiple: element.attrib['isSequential'] = 'true' # add characteristics element e.append(element) return e
def __init__(self, **args): Linkable.__init__(self, **args) self.flag = self.expects(args, 'flag', ActivityFlag.Default) self.ignore_attrs('flag')
def serialize(self): element = Linkable.serialize(self) element.tag = bpmn + camel_case(self.type.name) + 'Gateway' return element
def run_test(): l = Linkable(id='whatever') print(et.tostring(l.serialize()))
def run_dataAssociation(): l1 = Linkable(id='Activity_1', name='Linkable 01') l2 = Linkable(id='Gateway', name='Linkable 02') d = DataAssociation(id="haha", source=l1, target=l2, direction=0) print(et.tostring(d.serialize()))
def run_flow_test(): l1 = Linkable(id='Activity_1', name='Linkable 01') l2 = Linkable(id='Gateway', name='Linkable 02') f = Association(id="id1", source=l1, target=l2) # f.serialize() print(et.tostring(f.serialize()))