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 AutomataStateFiniteBasic(IAutomataFinite automata, string ID, IAutomataStateUmlTags umlTag, params FiniteAutomataStateEvent[] actions)
     : base(automata, ID, umlTag, actions)
 {
 }
 public AutomataStateAbstract(string ID, IAutomataStateUmlTags umlTag)
     : base()
 {
     _id = ID;
     _umlTag = umlTag;
 }
 public static IAutomataStateFinite GenerateAutomataState(IAutomataFinite automata, string ID, IAutomataStateUmlTags umlTag, params FiniteAutomataStateEvent[] actions)
 {
     return new AutomataStateFiniteBasic(automata, ID, umlTag, actions);
 }