/// <summary> /// Visits the specified namespace member. /// </summary> /// <param name="namespaceMember">The namespace member.</param> public virtual void Visit(INamespaceMember namespaceMember) { if (this.stopTraversal) return; INamespaceDefinition/*?*/ nestedNamespace = namespaceMember as INamespaceDefinition; if (nestedNamespace != null) this.Visit(nestedNamespace); else { ITypeDefinition/*?*/ namespaceType = namespaceMember as ITypeDefinition; if (namespaceType != null) this.Visit(namespaceType); else { ITypeDefinitionMember/*?*/ globalFieldOrMethod = namespaceMember as ITypeDefinitionMember; if (globalFieldOrMethod != null) this.Visit(globalFieldOrMethod); else { INamespaceAliasForType/*?*/ namespaceAlias = namespaceMember as INamespaceAliasForType; if (namespaceAlias != null) this.Visit(namespaceAlias); else { //TODO: error namespaceMember.Dispatch(this); } } } } }
/// <summary> /// Visits the specified namespace member. /// </summary> public virtual void Visit(INamespaceMember namespaceMember) { //INamespaceMember is a base interface that should never be implemented directly. //Get namespaceMember to call the most type specific visitor. namespaceMember.Dispatch(this); }
/// <summary> /// Traverses the namespace member. /// </summary> public void Traverse(INamespaceMember namespaceMember) { Contract.Requires(namespaceMember != null); namespaceMember.Dispatch(this.dispatchingVisitor); }
/// <summary> /// Traverses the namespace member. /// </summary> public void Traverse(INamespaceMember namespaceMember) { namespaceMember.Dispatch(this.dispatchingVisitor); }