| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | #region  --------------- Copyright Dresser Wayne Pignone -------------#endregion#region Old file header#endregionusing System;using System.Collections.Generic;using System.Text;namespace Wayne.Lib.StateEngine{    internal class CompositeStateMachine : StateMachine    {        #region Fields        CompositeState ownerState;        #endregion        #region Construction        public CompositeStateMachine(CompositeState ownerState)            : base(ownerState.GetType().FullName, null, null)         {            this.ownerState = ownerState;        }        #endregion        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Wayne.Lib.StateEngine.StateEngineException.#ctor(System.String)")]        public override void Start()        {            throw new StateEngineException("You may not call Start on a state machine in a composite state.");        }                                        public override void IncomingEvent(StateEngineEvent stateEngineEvent)        {            if (ParentStateMachine != null)                ParentStateMachine.IncomingEvent(stateEngineEvent);        }                                public override bool Started        {            get { return true; }        }                                                        protected internal override State CreateState(string factoryName)        {            State newState = base.CreateState(factoryName);            if (newState != null)                newState.AssignParentState(ownerState);            return newState;        }    }}
 |