Esempio n. 1
0
 private void EnforceNotIdentityTransition(TStateType destination)
 {
     if (destination.Equals(_specification.UnderlyingState))
     {
         throw new ArgumentException("Cannot transition to same state.");
     }
 }
Esempio n. 2
0
 private StateSpecifier InternalPermitIf(TTriggerType trigger, TStateType destinationState,
                                         Func <bool> triggerCondition)
 {
     _specification.AddTriggerStrategy(new StateTransitionTriggerStrategy(trigger, destinationState,
                                                                          triggerCondition));
     return(this);
 }
Esempio n. 3
0
            public StateSpecifier SubstateOf(TStateType superstate)
            {
                var superRepresentation = _specificationLookup(superstate);

                _specification.Superstate = superRepresentation;
                superRepresentation.AddSubstate(_specification);
                return(this);
            }
 public override bool ResultsInTransitionFrom(TStateType source, object[] args, out TStateType destination)
 {
     destination = _destination(args);
     return(true);
 }
Esempio n. 5
0
 public State(FSM <TStateType> fsm, TStateType stateType)
 {
     _fsm      = fsm;
     StateType = stateType;
 }
Esempio n. 6
0
 public StateTransition(TStateType source, TStateType destination, TTriggerType trigger)
 {
     _source      = source;
     _destination = destination;
     _trigger     = trigger;
 }
Esempio n. 7
0
 public abstract bool ResultsInTransitionFrom(TStateType source, object[] args, out TStateType destination);
Esempio n. 8
0
 public StateSpecifier PermitIf(TTriggerType trigger, TStateType destinationState,
                                Func <bool> triggerCondition)
 {
     EnforceNotIdentityTransition(destinationState);
     return(InternalPermitIf(trigger, destinationState, triggerCondition));
 }
Esempio n. 9
0
 public StateSpecifier Permit(TTriggerType trigger, TStateType destinationState)
 {
     EnforceNotIdentityTransition(destinationState);
     return(InternalPermit(trigger, destinationState));
 }
Esempio n. 10
0
 private StateSpecifier InternalPermit(TTriggerType trigger, TStateType destinationState)
 {
     return(InternalPermitIf(trigger, destinationState, () => true));
 }
Esempio n. 11
0
 public override bool ResultsInTransitionFrom(TStateType source, object[] args, out TStateType destination)
 {
     destination = default(TStateType);
     return(false);
 }
Esempio n. 12
0
 public StateTransitionTriggerStrategy(TTriggerType trigger, TStateType destination,
                                       Func <bool> triggerCondition)
     : base(trigger, triggerCondition)
 {
     _destination = destination;
 }
 public StateSpecification(TStateType state)
 {
     _state = state;
 }
 public bool IsIncludedIn(TStateType state)
 {
     return
         (_state.Equals(state) ||
          (_superstate != null && _superstate.IsIncludedIn(state)));
 }
 public bool Includes(TStateType state)
 {
     return(_state.Equals(state) || _substates.Any(s => s.Includes(state)));
 }