Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        /// <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;
        }