/// <summary> /// Remove a transition. /// /// Used in editing the graph. /// </summary> /// <returns>The transition.</returns> /// <param name="transition">Transition.</param> public StateMachine RemoveTransition(Transition transition) { // Find all states referencing this transition and remove the reference foreach (State s in states) { s.RemoveTransition (transition); } return this; }
/// <summary> /// No package private. Called by machine. /// </summary> /// <returns>The transition.</returns> /// <param name="transition">Transition.</param> public State RemoveTransition(Transition transition) { if (transitions.Contains(transition)) { transitions.Remove (transition); } return this; }
/// <summary> /// Add a Transition from one state to another. /// /// Used in constructing the graph. /// </summary> /// <returns>The transition.</returns> /// <param name="from">From.</param> /// <param name="to">To.</param> public Transition AddTransition(State from, State to) { if (!States.Contains (from) || !States.Contains (to)) throw new TransitionException ("One or both of the states does not exist"); Transition transition = new Transition (to); from.AddTransition (transition); transitions.Add (transition); return transition; }
/// <summary> /// No package private. Called by Machine. /// </summary> /// <returns>The transition.</returns> /// <param name="transition">Transition.</param> public Transition AddTransition(Transition transition) { if (transition.State.Machine != machine) { throw new TransitionException ("The to state in this transition is from another state machine than this one."); } transitions.Add (transition); return transition; }