/// <summary> /// A class that traverses the contract, code and metadata models in depth first, left to right order. /// </summary> public CciContractTraverser(IContractProvider contractProvider, ICodeAndContractVisitor preorderVisitor) { Contract.Requires(contractProvider != null); Contract.Requires(preorderVisitor != null); this.contractProvider = contractProvider; this.preorderVisitor = preorderVisitor; PreorderVisitor = preorderVisitor; dispatchingVisitor = new CciContractElementDispatcher(this); }
public void Dispatch(ICodeAndContractVisitor visitor) { }
/// <summary> /// Calls visitor.Visit(IMethodContract). /// </summary> public virtual void Dispatch(ICodeAndContractVisitor visitor) { visitor.Visit(this); }
/// <summary> /// Calls the visitor.Visit(T) method where T is the most derived object model node interface type implemented by the concrete type /// of the object implementing IContractElement. /// </summary> /// <param name="visitor"></param> public abstract void Dispatch(ICodeAndContractVisitor visitor);
/// <summary> /// Calls visitor.Visit(ITypeInvariant). /// </summary> /// <param name="visitor"></param> public override void Dispatch(ICodeAndContractVisitor visitor) { visitor.Visit(this); }