Ejemplo n.º 1
0
        public void Traverse(IVisitor visitor)
        {
            if (visitor == null)
            {
                throw new ArgumentNullException("visitor");
            }

            visitor.PerformBefore(this);
            m_identifier.Traverse(visitor);
            visitor.PerformAfter(this);

            if (m_next != null)
            {
                m_next.Traverse(visitor);
            }
        }
Ejemplo n.º 2
0
        public void Traverse(IVisitor visitor)
        {
            if (visitor == null)
            {
                throw new ArgumentNullException("visitor");
            }

            visitor.PerformBefore(this);

            if (m_join != null)
            {
                m_join.Traverse(visitor);
            }

            visitor.PerformOnSource(this);

            Debug.Assert(m_source != null);
            m_source.Traverse(visitor);

            visitor.PerformOnAlias(this);
            if (m_alias != null)
            {
                m_alias.Traverse(visitor);
            }

            visitor.PerformBeforeCondition(this);

            if (m_joinCondition != null)
            {
                m_joinCondition.Traverse(visitor);
            }

            visitor.PerformAfterCondition(this);
            if (m_next != null)
            {
                m_next.Traverse(visitor);
            }

            visitor.PerformAfter(this);
        }