code: protected void callSubtreeVisitors(XPathVisitor visitor)
    {
      if (null != m_predicates)
      {
        int n = m_predicates.length;
        for (int i = 0; i < n; i++)
        {
          ExpressionOwner predOwner = new PredOwner(i);
          if (visitor.visitPredicate(predOwner, m_predicates[i]))
          {
            m_predicates[i].callVisitors(predOwner, visitor);
          }
        }
      }
      if (null != m_relativePathPattern)
      {
        m_relativePathPattern.callVisitors(this, visitor);
      }
    }
docs: Call the visitors on the subtree.  Factored out from callVisitors
  so it may be called by derived classes.