sboag       01/08/20 16:47:11

  Modified:    java/src/org/apache/xpath XPathContext.java
  Log:
  Added getCurrentNodeList() for getting the current node list as defined
  by http://www.w3.org/TR/xslt#dt-current-node-list.
  This looks up the stack of the SubContextLists to find the top-level
  LocPathIterator.  I'm fairly unhappy with this fix, and hope to restructure
  the context list stuff a bit to avoid the casts in the getCurrentNodeList(),
  and to fix getCurrentNode() so that it properly defines the current
  node as defined by the XSLT spec.  As a matter of fact, I would
  like to break up XPathContext into an XSLTContext.
  Part of the http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031
  fix.
  
  Revision  Changes    Path
  1.30      +21 -0     xml-xalan/java/src/org/apache/xpath/XPathContext.java
  
  Index: XPathContext.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/XPathContext.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- XPathContext.java 2001/07/31 22:23:38     1.29
  +++ XPathContext.java 2001/08/20 23:47:11     1.30
  @@ -990,6 +990,27 @@
       return m_axesIteratorStack.isEmpty()
              ? null : (SubContextList) m_axesIteratorStack.peek();
     }
  +  
  +  /**
  +   * <meta name="usage" content="internal"/>
  +   * Get the <a href="http://www.w3.org/TR/xslt#dt-current-node-list";>current node 
list</a> 
  +   * as defined by the XSLT spec.
  +   *
  +   * @return the <a href="http://www.w3.org/TR/xslt#dt-current-node-list";>current 
node list</a>.
  +   */
  +  public org.apache.xpath.axes.LocPathIterator getCurrentNodeList()
  +  {
  +    for (int i = m_axesIteratorStack.size()-1; i >= 0; i--) 
  +    {
  +      org.apache.xpath.axes.PredicatedNodeTest iter 
  +       = (org.apache.xpath.axes.PredicatedNodeTest)m_axesIteratorStack.elementAt(i);
  +      org.apache.xpath.axes.LocPathIterator lpi = iter.getLocPathIterator();
  +      if(lpi.getIsTopLevel())
  +        return lpi;
  +    }
  +    return null;
  +  }
  +
   
     //==========================================================
     // SECTION: Implementation of ExpressionContext interface
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to