internal MultipleInternalArc(StateMachineFactory <Operand, State, Eventtype, Event > _enclosing, ICollection <STATE> postStates, MultipleArcTransition <OPERAND, EVENT , STATE> hook) { this._enclosing = _enclosing; // Fields // transition hook this.validPostStates = postStates; this.hook = hook; }
/// <returns> /// a NEW StateMachineFactory just like /// <c>this</c> /// with the current /// transition added as a new legal transition /// Note that the returned StateMachineFactory is a distinct object. /// This method is part of the API. /// </returns> /// <param name="preState">pre-transition state</param> /// <param name="postStates">valid post-transition states</param> /// <param name="eventType">stimulus for the transition</param> /// <param name="hook">transition hook</param> public StateMachineFactory <OPERAND, STATE, EVENTTYPE, EVENT> AddTransition(STATE preState, ICollection <STATE> postStates, EVENTTYPE eventType, MultipleArcTransition <OPERAND, EVENT, STATE> hook) { return(new StateMachineFactory <OPERAND, STATE, EVENTTYPE, EVENT>(this, new StateMachineFactory.ApplicableSingleOrMultipleTransition <OPERAND, STATE, EVENTTYPE, EVENT>(preState, eventType, new StateMachineFactory.MultipleInternalArc (this, postStates, hook)))); }