示例#1
0
        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);
        }
示例#2
0
        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);
        }