def __init__(self, name=None, source=None, target=None, guard=None): # TODO: bool(source) evals to False if IControlNode.providedBy(source) if IActivityNode.providedBy(source): self.source = source if IActivityNode.providedBy(target): self.target = target self.guard = guard super(ActivityEdge, self).__init__(name)
def check_model_constraints(self): super(ActivityEdge, self).check_model_constraints() try: assert self.source or self.target is not None except AssertionError: raise ModelIllFormedException,\ str(self) + " " +\ "An ActivityEdge must have source and target set" # [1] try: assert self.source.activity is self.target.activity except AssertionError: raise ModelIllFormedException,\ str(self) + " " +\ "Source and target must be in the same activity" # [2] try: assert self.__parent__ is not None assert IActivity.providedBy(self.__parent__) except AssertionError: raise ModelIllFormedException,\ str(self) + " " +\ "An ActivityEdge must have an Activity as parent" try: assert IActivityNode.providedBy(self.source) except AssertionError: raise ModelIllFormedException,\ str(self) + " " +\ "An ActivityEdge must have an ActivityNode as source" try: assert IActivityNode.providedBy(self.target) except AssertionError: raise ModelIllFormedException,\ str(self) + " " +\ "An ActivityEdge must have an ActivityNode as target"