/// <summary> /// Prepare instance for GC collection /// </summary> public virtual void Clear() { hasBeenExecuted = false; inProgress = false; chainedCommand?.Clear(); _previousCommand = null; _onExecuteDone.Clear(); }
public void UnChain() { if (chainedCommand != null) { (chainedCommand as BaseChainCommand)._previousCommand = null; chainedCommand = null; } }
/// <summary> /// Recursive chaining /// </summary> /// <param name="cmd"></param> /// <returns></returns> public IChainCommand Chain(IChainCommand cmd) { if (chainedCommand == null) { chainedCommand = cmd; cmd.PreviousCommand = this; } else { chainedCommand.Chain(cmd); } return(cmd); }
public IChainCommand SetNext(IChainCommand command) { m_next = command; return(m_next); }
public void SetSuccessor(IChainCommand successor) { m_successor = successor; }
public IChainCommand Chain(IChainCommand cmd) { chainedCommand = cmd; return cmd; }