act['action1'] = mm.OpaqueAction() act['action1']['execution1'] = mm.Stereotype(profile=profile) act['action1']['execution1']['tgv'] = mm.TaggedValue(value="dummy value") act['action1']['lpc1'] = mm.PreConstraint(specification='True is True') act['action1']['lpo1'] = mm.PostConstraint(specification='False is False') act['action2'] = mm.OpaqueAction() act['action3'] = mm.OpaqueAction() act['join'] = mm.JoinNode() act['decision'] = mm.DecisionNode() act['merge'] = mm.MergeNode() act['flow end'] = mm.FlowFinalNode() act['end'] = mm.ActivityFinalNode() act['1'] = mm.ActivityEdge(source=act['start'], target=act['fork']) act['2'] = mm.ActivityEdge(source=act['fork'], target=act['action1']) act['3'] = mm.ActivityEdge(source=act['fork'], target=act['action2']) act['4'] = mm.ActivityEdge(source=act['action1'], target=act['action3']) act['5'] = mm.ActivityEdge(source=act['action2'], target=act['join']) act['6'] = mm.ActivityEdge(source=act['action3'], target=act['decision']) act['7'] = mm.ActivityEdge(source=act['action3'], target=act['join']) act['8'] = mm.ActivityEdge(source=act['decision'], target=act['flow end'], guard="else") act['9'] = mm.ActivityEdge(source=act['decision'], target=act['merge'], guard="True") act['10'] = mm.ActivityEdge(source=act['join'], target=act['merge']) act['11'] = mm.ActivityEdge(source=act['merge'], target=act['end']) mm.validate(model) #
from activities.runtime.runtime import ActivityRuntime ar = ActivityRuntime(model['main']) ar.start(data={'test':False}) # Print Tokenstate e.g. # "1: ...Token..., data: {'test': False}" ar.ts() ar.next() # Restart of runtime activity = ar.activity token_pool = ar.token_pool del ar new_ar = ActivityRuntime(activity) new_ar.token_pool = token_pool new_ar.next() # Changing the model at runtime new_ar.activity['action1']['execution1']['foo'].value =\ "Changed at runtime!" import activities.metamodel as mm mm.validate(new_ar.activity) new_ar.stop()