//metodo que procura o estado inicial da VFSM e converte as informação para estado da FSM. private void addInitialStateVFSMToFSM(VFSM vfsm, FiniteStateMachine fsm) { State stateInitial = new State(); TransitionVFSM tVFSM = GetStateInitialVFSM(vfsm.StateInitial, vfsm); String name = vfsm.StateInitial.Name; foreach (Variable v in tVFSM.ListGuardian) { name += v.Condition; } stateInitial.Name = name; stateInitial.Id = vfsm.StateInitial.Id; fsm.InitialState = stateInitial; }
//meetodo que converte uma transição de uma VFSm para uma transição de uma FSM. private Transition ConvertToTransitionFSM(TransitionVFSM tVFSM, VFSM vfsm) { Transition t = new Transition(); t.Input = tVFSM.Input; t.Output = tVFSM.Output; State sSource = new State(); sSource.Name = Concatenate(vfsm.ListOfGuardian, tVFSM.Source); //sSource.Id = t.SourceState.Id; UpdateVariableCurrentVFSM(vfsm, tVFSM.ListNewGuardian); State Starget = new State(); Starget.Name = Concatenate(tVFSM.ListNewGuardian, tVFSM.Target); //Starget.Id = t.TargetState.Id; t.SourceState = sSource; t.TargetState = Starget; return(t); }