public HashSet <UML.CommonBehaviors.Communications.Trigger> createTransitionTriggers(UTF_EA.BehaviorStateMachines.Transition transition) { HashSet <UML.CommonBehaviors.Communications.Trigger> triggers = new HashSet <TSF.UmlToolingFramework.UML.CommonBehaviors.Communications.Trigger>(); UML_SM.StateMachine stateMachine = getContainingStateMachine(transition.owner); if (stateMachine != null) { string[] events = transition.wrappedConnector.TransitionEvent.Split(", ".ToCharArray()); if (events.Length > 0) { if (!stateMachineTriggersMap.ContainsKey(stateMachine)) { stateMachineTriggersMap[stateMachine] = createContainedTriggers(stateMachine as UTF_EA.BehaviorStateMachines.StateMachine); } foreach (string eventName in events) { foreach (UML.CommonBehaviors.Communications.Trigger trigger in stateMachineTriggersMap[stateMachine]) { if (trigger.event_.name == eventName) { triggers.Add(trigger); break; } } } } } return(triggers); }
public HashSet <UML.CommonBehaviors.Communications.Trigger> getContainedTriggers(UML_SM.StateMachine stateMachine) { if (stateMachine != null) { if (!stateMachineTriggersMap.ContainsKey(stateMachine)) { stateMachineTriggersMap[stateMachine] = createContainedTriggers(stateMachine as UTF_EA.BehaviorStateMachines.StateMachine); } return(stateMachineTriggersMap[stateMachine]); } return(null); }