public AutomataStateFiniteAbstract(IAutomataFinite automata, string ID, IAutomataStateUmlTags umlTag, params FiniteAutomataStateEvent[] actions)
     : base(ID, umlTag)
 {
     _automata = automata;
     Automata.States.addObject(this);
     foreach(FiniteAutomataStateEvent action in actions)
     {
         OnExecution += new FiniteAutomataStateEvent(action);
     }
 }
 public AutomataTransitionFiniteAbstract(IAutomataStateFinite statestart, IAutomataStateFinite stateend, params FiniteAutomataTransitionConditionDecision[] decisions)
     : base()
 {
     if (statestart.Automata != stateend.Automata) { new ExceptionAutomataFinite(); };
     _statestart = statestart;
     _stateend = stateend;
     _automata = statestart.Automata;
     _conditions = FactoryAutomataFinite.GenerateAutomataTransitionConditionCollection();
     Automata.Transitions.addObject(this);
     this.GenerateCondition(decisions);
 }
        public IAutomataTransitionFinite Eval(IAutomataFinite automata)
        {
            foreach (IAutomataTransitionFinite transition in automata.Transitions)
            {
                if (transition.StateStart == automata.State)
                {
                    foreach (IAutomataTransitionConditionFinite condition in transition.Conditions)
                    {
                        automata.DoOnEval(condition);
                        if (condition.Eval())
                        {
                            return transition;
                        }
                    }
                }
            }

            return null;
        }
        protected override void PrepareExecution()
        {
            base.PrepareExecution();

            _cycle = FactoryCycle.GenerateCycle(ID,1,1);
            _cycle.OnCycleTriggerEvent += new EventHandlerCycleTriggerEvent(updateCycleStatus);

            _explorer = ExplorerCycleFactory.generateCycleExplorer(ManagerUI.MainWindow);
            _explorer.Explore(_cycle, "Cycle Exploration Description");

            _automata = FactoryAutomataFinite.GenerateAutomata("Sample Automata", _cycle);
            _automata.OnStateEnter += new FiniteAutomataStateEvent(eventStateEnter);
            _automata.OnStateExit += new FiniteAutomataStateEvent(eventStateExit);
            _automata.OnTransition += new FiniteAutomataTransitionEvent(eventTransition);
            _automata.OnEval += new FiniteAutomataTransitionConditionEvent(eventCondition);

            IAutomataStateFinite _state_Initial = FactoryAutomataFinite.GenerateAutomataStateInitial(_automata, eventExecuteAction);
            IAutomataStateFinite _state_Test = FactoryAutomataFinite.GenerateAutomataStateGeneric(_automata, "Test", eventExecuteAction);
            IAutomataStateFinite _state_Final = FactoryAutomataFinite.GenerateAutomataStateFinal(_automata, eventExecuteAction);

            IAutomataTransitionFinite _transition_Initial_Test = FactoryAutomataFinite.GenerateAutomataTransition(_state_Initial, _state_Test, FactoryAutomataFinite.TransitionConditionAlways);
            IAutomataTransitionFinite _transition_Test_Final = FactoryAutomataFinite.GenerateAutomataTransition(_state_Test, _state_Final, FactoryAutomataFinite.TransitionConditionAlways);
        }
 public AutomataStateFiniteAbstract(IAutomataFinite automata, string ID, params FiniteAutomataStateEvent[] actions)
     : this(automata, ID, IAutomataStateUmlTags.None, actions)
 {
 }
 public DebuggerAutomataFinite(IAutomataFinite automata)
     : base()
 {
     _automata = automata;
 }
 public AutomataStateFiniteBasic(IAutomataFinite automata, string ID, IAutomataStateUmlTags umlTag, params FiniteAutomataStateEvent[] actions)
     : base(automata, ID, umlTag, actions)
 {
 }
 public static IAutomataStateFinite GenerateAutomataStateInitial(IAutomataFinite automata, params FiniteAutomataStateEvent[] actions)
 {
     return FactoryAutomataFinite.GenerateAutomataState(automata, "INITIAL", IAutomataStateUmlTags.Initial, actions);
 }
 public static IAutomataStateFinite GenerateAutomataStateGeneric(IAutomataFinite automata, string ID, params FiniteAutomataStateEvent[] actions)
 {
     return FactoryAutomataFinite.GenerateAutomataState(automata, ID, actions);
 }
 public static IAutomataStateFinite GenerateAutomataState(IAutomataFinite automata, string ID, IAutomataStateUmlTags umlTag, params FiniteAutomataStateEvent[] actions)
 {
     return new AutomataStateFiniteBasic(automata, ID, umlTag, actions);
 }
 public static IDebuggerAutomataFinite GenerateAutomataDebugger(IAutomataFinite automata)
 {
     return new DebuggerAutomataFinite(automata);
 }