sboag       01/06/15 10:54:31

  Modified:    java/src/org/apache/xalan/extensions MethodResolver.java
                        XSLProcessorContext.java
               java/src/org/apache/xalan/templates ElemCopyOf.java
                        FuncDocument.java FuncKey.java
               java/src/org/apache/xalan/trace PrintTraceListener.java
               java/src/org/apache/xalan/transformer KeyWalker.java
                        ResultTreeHandler.java
               java/src/org/apache/xml/dtm/ref DTMNodeIterator.java
               java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
               java/src/org/apache/xml/utils TreeWalker.java
               java/src/org/apache/xpath Expression.java XPathAPI.java
               java/src/org/apache/xpath/axes FilterExprWalker.java
               java/src/org/apache/xpath/functions FuncId.java
               java/src/org/apache/xpath/objects XNodeSet.java XNull.java
                        XObject.java XRTreeFrag.java
                        XRTreeFragSelectWrapper.java XString.java
  Log:
  Changed name of XObject#nodeset() to #iter(), and changed rtree()
  to rtf, then added back nodeset() method to return a NodeIterator.
  
  Revision  Changes    Path
  1.24      +4 -4      
xml-xalan/java/src/org/apache/xalan/extensions/MethodResolver.java
  
  Index: MethodResolver.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/extensions/MethodResolver.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- MethodResolver.java       2001/06/15 05:13:47     1.23
  +++ MethodResolver.java       2001/06/15 17:53:59     1.24
  @@ -805,7 +805,7 @@
             if ( (javaClass == NodeIterator.class) ||
                  (javaClass == java.lang.Object.class) )
             {
  -            return xobj.nodeset();
  +            return xobj.iter();
             }
             // Same comment as above
             // else if(NodeList.class.isAssignableFrom(javaClass))
  @@ -817,9 +817,9 @@
             // else if(Node.class.isAssignableFrom(javaClass))
             else if(javaClass == Node.class)
             {
  -            // Xalan ensures that nodeset() always returns an
  +            // Xalan ensures that iter() always returns an
               // iterator positioned at the beginning.
  -            DTMIterator ni = xobj.nodeset();
  +            DTMIterator ni = xobj.iter();
               int handle = ni.nextNode();           
               return ni.getDTM(handle).getNode(handle); // may be null.
             }
  @@ -837,7 +837,7 @@
             }
             else
             {
  -            DTMIterator iter = xobj.nodeset();
  +            DTMIterator iter = xobj.iter();
               int childHandle = iter.nextNode();
               DTM dtm = iter.getDTM(childHandle);
               Node child = dtm.getNode(childHandle);
  
  
  
  1.10      +1 -1      
xml-xalan/java/src/org/apache/xalan/extensions/XSLProcessorContext.java
  
  Index: XSLProcessorContext.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/extensions/XSLProcessorContext.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XSLProcessorContext.java  2001/06/12 19:14:34     1.9
  +++ XSLProcessorContext.java  2001/06/15 17:53:59     1.10
  @@ -255,7 +255,7 @@
           break;
   
         case XObject.CLASS_NODESET :  // System.out.println(value);
  -        DTMIterator nl = value.nodeset();
  +        DTMIterator nl = value.iter();
           
           int pos;
   
  
  
  
  1.12      +1 -1      
xml-xalan/java/src/org/apache/xalan/templates/ElemCopyOf.java
  
  Index: ElemCopyOf.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemCopyOf.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ElemCopyOf.java   2001/06/12 19:15:09     1.11
  +++ ElemCopyOf.java   2001/06/15 17:54:03     1.12
  @@ -199,7 +199,7 @@
           case XObject.CLASS_NODESET :
   
             // System.out.println(value);
  -          DTMIterator nl = value.nodeset();
  +          DTMIterator nl = value.iter();
   
             // Copy the tree.
             DTMTreeWalker tw = new TreeWalker2Result(transformer, handler);
  
  
  
  1.22      +2 -2      
xml-xalan/java/src/org/apache/xalan/templates/FuncDocument.java
  
  Index: FuncDocument.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/FuncDocument.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- FuncDocument.java 2001/06/15 05:13:57     1.21
  +++ FuncDocument.java 2001/06/15 17:54:03     1.22
  @@ -141,7 +141,7 @@
   
         if (XObject.CLASS_NODESET == arg2.getType())
         {
  -        int baseNode = arg2.nodeset().nextNode();
  +        int baseNode = arg2.iter().nextNode();
   
           if (baseNode == DTM.NULL)
             warn(xctxt, XSLTErrorResources.WG_EMPTY_SECOND_ARG, null);
  @@ -185,7 +185,7 @@
       XNodeSet nodes = new XNodeSet(xctxt.getDTMManager());
       NodeSetDTM mnl = nodes.mutableNodeset();
       DTMIterator iterator = (XObject.CLASS_NODESET == arg.getType())
  -                            ? arg.nodeset() : null;
  +                            ? arg.iter() : null;
       int pos = DTM.NULL;
   
       while ((null == iterator) || (DTM.NULL != (pos = iterator.nextNode())))
  
  
  
  1.11      +1 -1      
xml-xalan/java/src/org/apache/xalan/templates/FuncKey.java
  
  Index: FuncKey.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/FuncKey.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FuncKey.java      2001/06/15 05:13:59     1.10
  +++ FuncKey.java      2001/06/15 17:54:03     1.11
  @@ -121,7 +121,7 @@
       if (argIsNodeSetDTM)
       {
         Hashtable usedrefs = null;
  -      DTMIterator ni = arg.nodeset();
  +      DTMIterator ni = arg.iter();
         int pos;
         UnionPathIterator upi = new UnionPathIterator();
   
  
  
  
  1.8       +1 -1      
xml-xalan/java/src/org/apache/xalan/trace/PrintTraceListener.java
  
  Index: PrintTraceListener.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/trace/PrintTraceListener.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PrintTraceListener.java   2001/06/12 19:15:23     1.7
  +++ PrintTraceListener.java   2001/06/15 17:54:06     1.8
  @@ -218,7 +218,7 @@
                        {
                                m_pw.println();
                                
  -                             org.apache.xml.dtm.DTMIterator nl = 
ev.m_selection.nodeset();
  +                             org.apache.xml.dtm.DTMIterator nl = 
ev.m_selection.iter();
   
                                try
                                {
  
  
  
  1.14      +1 -1      
xml-xalan/java/src/org/apache/xalan/transformer/KeyWalker.java
  
  Index: KeyWalker.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/KeyWalker.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- KeyWalker.java    2001/06/12 19:15:25     1.13
  +++ KeyWalker.java    2001/06/15 17:54:08     1.14
  @@ -211,7 +211,7 @@
           }
           else
           {
  -          DTMIterator nl = xuse.nodeset();
  +          DTMIterator nl = xuse.iter();
             int useNode;
             short result = -1;
             /*
  
  
  
  1.41      +38 -7     
xml-xalan/java/src/org/apache/xalan/transformer/ResultTreeHandler.java
  
  Index: ResultTreeHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/ResultTreeHandler.java,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- ResultTreeHandler.java    2001/06/13 03:39:13     1.40
  +++ ResultTreeHandler.java    2001/06/15 17:54:09     1.41
  @@ -95,7 +95,8 @@
    * can call startElement.
    */
   public class ResultTreeHandler extends QueuedEvents
  -        implements ContentHandler, LexicalHandler, TransformState
  +        implements ContentHandler, LexicalHandler, TransformState,
  +        org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.CharacterNodeHandler
   {
   
     /** Indicate whether running in Debug mode */
  @@ -260,7 +261,9 @@
         m_snapshot.m_currentElement = m_transformer.getCurrentElement();
         m_snapshot.m_currentTemplate = m_transformer.getCurrentTemplate();
         m_snapshot.m_matchedTemplate = m_transformer.getMatchedTemplate();
  -      m_snapshot.m_currentNode = m_transformer.getCurrentNode();
  +      int currentNodeHandle = m_transformer.getCurrentNode();
  +      DTM dtm = m_transformer.getXPathContext().getDTM(currentNodeHandle);
  +      m_snapshot.m_currentNode = dtm.getNode(currentNodeHandle);
         m_snapshot.m_matchedNode = m_transformer.getMatchedNode();
         m_snapshot.m_contextNodeList = m_transformer.getContextNodeList(); // 
TODO: Need to clone
       }
  @@ -476,7 +479,33 @@
         m_tracer.fireGenerateEvent(ge);
       }
     }
  +  
  +  public void characters(org.w3c.dom.Node node)
  +          throws org.xml.sax.SAXException
  +  {
  +
  +    flushPending(true);
  +    
  +    if(m_isTransformClient)
  +      m_snapshot.m_currentNode = node;
  +
  +    String data = node.getNodeValue();
  +    char [] ch = data.toCharArray();
  +    int length = data.length();
  +    m_contentHandler.characters(ch, 0, length);
  +    
  +    if (null != m_tracer)
  +    {
  +      GenerateEvent ge = new GenerateEvent(m_transformer,
  +                                           
GenerateEvent.EVENTTYPE_CHARACTERS,
  +                                           ch, 0, length);
   
  +      m_tracer.fireGenerateEvent(ge);
  +    }  
  +    if(m_isTransformClient)
  +      m_snapshot.m_currentNode = null;
  +  }
  +
     /**
      * Bottleneck the ignorableWhitespace event.
      *
  @@ -813,6 +842,7 @@
         {
           m_contentHandler.startElement(m_url, m_localName, m_name,
                                         m_attributes);
  +        
           if(null != m_tracer)
           {
             GenerateEvent ge =
  @@ -821,6 +851,8 @@
     
             m_tracer.fireGenerateEvent(ge);
           }
  +        if(m_isTransformClient)
  +          m_snapshot.m_currentNode = null;
         }
   
         m_elemIsPending = false;
  @@ -904,7 +936,7 @@
             throws org.xml.sax.SAXException
     {
   
  -    int doc = obj.rtree();
  +    int doc = obj.rtf();
       DTM dtm = support.getDTM(doc);
   
       for (int n = dtm.getFirstChild(doc); DTM.NULL != n;
  @@ -1487,10 +1519,9 @@
     public org.w3c.dom.Node getCurrentNode()
     {
       
  -    if (m_elemIsPending)
  +    if (m_snapshot.m_currentNode != null)
       {
  -      DTM dtm = 
m_transformer.getXPathContext().getDTM(m_snapshot.m_currentNode);
  -      return dtm.getNode(m_snapshot.m_currentNode);
  +      return m_snapshot.m_currentNode;
       }
       else
       {
  @@ -1649,7 +1680,7 @@
       /**
        * The current context node in the source tree.
        */
  -    int m_currentNode;
  +    org.w3c.dom.Node m_currentNode;
       
       /**
        * The xsl:template that is in effect, which may be a matched template
  
  
  
  1.4       +8 -1      
xml-xalan/java/src/org/apache/xml/dtm/ref/DTMNodeIterator.java
  
  Index: DTMNodeIterator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/DTMNodeIterator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DTMNodeIterator.java      2001/06/15 05:15:07     1.3
  +++ DTMNodeIterator.java      2001/06/15 17:54:12     1.4
  @@ -101,7 +101,14 @@
      * */
     public DTMNodeIterator(DTMIterator dtmIterator)
       {
  -      dtm_iter=dtmIterator;
  +      try
  +      {
  +        dtm_iter=(DTMIterator)dtmIterator.clone();
  +      }
  +      catch(CloneNotSupportedException cnse)
  +      {
  +        throw new org.apache.xml.utils.WrappedRuntimeException(cnse);
  +      }
       }
   
     /** Access the wrapped DTMIterator. I'm not sure whether anyone will
  
  
  
  1.4       +14 -1     
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java
  
  Index: DOM2DTM.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm/DOM2DTM.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DOM2DTM.java      2001/06/13 05:54:38     1.3
  +++ DOM2DTM.java      2001/06/15 17:54:14     1.4
  @@ -1535,7 +1535,14 @@
       case Node.CDATA_SECTION_NODE :
       case Node.ATTRIBUTE_NODE :
         String str = node.getNodeValue();
  -      ch.characters(str.toCharArray(), 0, str.length());
  +      if(ch instanceof CharacterNodeHandler)
  +      {
  +        ((CharacterNodeHandler)ch).characters(node);
  +      }
  +      else
  +      {
  +        ch.characters(str.toCharArray(), 0, str.length());
  +      }
         break;
   //    /* case Node.PROCESSING_INSTRUCTION_NODE :
   //      // warning(XPATHErrorResources.WG_PARSING_AND_PREPARING);        
  @@ -1577,6 +1584,12 @@
       {
         treeWalker.setContentHandler(null);
       }
  +  }
  +  
  +  public interface CharacterNodeHandler
  +  {
  +    public void characters(Node node)
  +            throws org.xml.sax.SAXException;
     }
   
   }
  
  
  
  1.13      +37 -30    xml-xalan/java/src/org/apache/xml/utils/TreeWalker.java
  
  Index: TreeWalker.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/utils/TreeWalker.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TreeWalker.java   2001/06/12 19:16:00     1.12
  +++ TreeWalker.java   2001/06/15 17:54:16     1.13
  @@ -82,9 +82,9 @@
   
     /** DomHelper for this TreeWalker          */
     protected DOMHelper m_dh;
  -     
  -     /** Locator object for this TreeWalker          */
  -     private LocatorImpl m_locator = new LocatorImpl();
  +        
  +        /** Locator object for this TreeWalker          */
  +        private LocatorImpl m_locator = new LocatorImpl();
   
     /**
      * Get the ContentHandler used for the tree walk.
  @@ -105,8 +105,8 @@
     {
       m_contentHandler = ch;
     }
  -     
  -     /**
  +        
  +        /**
      * Constructor.
      * @param   contentHandler The implemention of the
      * @param   systemId System identifier for the document.
  @@ -115,11 +115,11 @@
     public TreeWalker(ContentHandler contentHandler, DOMHelper dh, String 
systemId)
     {
       this.m_contentHandler = contentHandler;
  -             m_contentHandler.setDocumentLocator(m_locator);
  -             if (systemId != null)
  -                     m_locator.setSystemId(systemId);
  -             else
  -                     m_locator.setSystemId(System.getProperty("user.dir"));
  +                m_contentHandler.setDocumentLocator(m_locator);
  +                if (systemId != null)
  +                        m_locator.setSystemId(systemId);
  +                else
  +                        
m_locator.setSystemId(System.getProperty("user.dir"));
       m_dh = dh;
     }
   
  @@ -131,8 +131,8 @@
     public TreeWalker(ContentHandler contentHandler, DOMHelper dh)
     {
       this.m_contentHandler = contentHandler;
  -             m_contentHandler.setDocumentLocator(m_locator);
  -             m_locator.setSystemId(System.getProperty("user.dir"));
  +                m_contentHandler.setDocumentLocator(m_locator);
  +                m_locator.setSystemId(System.getProperty("user.dir"));
       m_dh = dh;
     }
     
  @@ -144,9 +144,9 @@
     public TreeWalker(ContentHandler contentHandler)
     {
       this.m_contentHandler = contentHandler;
  -             if (m_contentHandler != null)
  -                     m_contentHandler.setDocumentLocator(m_locator);
  -             m_locator.setSystemId(System.getProperty("user.dir"));
  +                if (m_contentHandler != null)
  +                        m_contentHandler.setDocumentLocator(m_locator);
  +                m_locator.setSystemId(System.getProperty("user.dir"));
       m_dh = new org.apache.xpath.DOM2Helper();
     }
   
  @@ -249,8 +249,15 @@
     private final void dispatachChars(Node node)
        throws org.xml.sax.SAXException
     {
  -    String data = ((Text) node).getData();
  -    this.m_contentHandler.characters(data.toCharArray(), 0, data.length());
  +    if(m_contentHandler instanceof 
org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.CharacterNodeHandler)
  +    {
  +      
((org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.CharacterNodeHandler)m_contentHandler).characters(node);
  +    }
  +    else
  +    {
  +      String data = ((Text) node).getData();
  +      this.m_contentHandler.characters(data.toCharArray(), 0, data.length());
  +    }
     }
   
     /**
  @@ -268,20 +275,20 @@
       {
         ((NodeConsumer) m_contentHandler).setOriginatingNode(node);
       }
  -             
  -             if (node instanceof Locator)
  -             {
  -                     Locator loc = (Locator)node;
  -                     m_locator.setColumnNumber(loc.getColumnNumber());
  -                     m_locator.setLineNumber(loc.getLineNumber());
  -                     m_locator.setPublicId(loc.getPublicId());
  -                     m_locator.setSystemId(loc.getSystemId());
  -             }
  -             else
  -             {
  -                     m_locator.setColumnNumber(0);
  +                
  +                if (node instanceof Locator)
  +                {
  +                        Locator loc = (Locator)node;
  +                        m_locator.setColumnNumber(loc.getColumnNumber());
  +                        m_locator.setLineNumber(loc.getLineNumber());
  +                        m_locator.setPublicId(loc.getPublicId());
  +                        m_locator.setSystemId(loc.getSystemId());
  +                }
  +                else
  +                {
  +                        m_locator.setColumnNumber(0);
         m_locator.setLineNumber(0);
  -             }
  +                }
   
       switch (node.getNodeType())
       {
  
  
  
  1.16      +2 -2      xml-xalan/java/src/org/apache/xpath/Expression.java
  
  Index: Expression.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/Expression.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- Expression.java   2001/06/12 19:16:06     1.15
  +++ Expression.java   2001/06/15 17:54:17     1.16
  @@ -235,7 +235,7 @@
     public int asNode(XPathContext xctxt)
       throws javax.xml.transform.TransformerException
     {
  -    return execute(xctxt).nodeset().nextNode();
  +    return execute(xctxt).iter().nextNode();
     }
     
     /**
  @@ -258,7 +258,7 @@
       try
       {
         xctxt.pushCurrentNodeAndExpression(contextNode, contextNode);
  -      return execute(xctxt).nodeset();
  +      return execute(xctxt).iter();
       }
       finally
       {
  
  
  
  1.12      +2 -2      xml-xalan/java/src/org/apache/xpath/XPathAPI.java
  
  Index: XPathAPI.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/XPathAPI.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XPathAPI.java     2001/06/15 05:15:19     1.11
  +++ XPathAPI.java     2001/06/15 17:54:18     1.12
  @@ -167,7 +167,7 @@
       // Have the XObject return its result as a NodeSetDTM.
       // %TBD% Convert to DOM nodeset
                
  -    return new DTMNodeIterator(list.nodeset());
  +    return new DTMNodeIterator(list.iter());
       
     }
   
  @@ -207,7 +207,7 @@
       XObject list = eval(contextNode, str, namespaceNode);
   
       // Return a NodeList.
  -    return new DTMNodeList(list.nodeset());
  +    return new DTMNodeList(list.iter());
     }
   
     /**
  
  
  
  1.16      +1 -1      
xml-xalan/java/src/org/apache/xpath/axes/FilterExprWalker.java
  
  Index: FilterExprWalker.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/axes/FilterExprWalker.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- FilterExprWalker.java     2001/06/12 19:16:17     1.15
  +++ FilterExprWalker.java     2001/06/15 17:54:22     1.16
  @@ -163,7 +163,7 @@
           obj = m_expr.execute(m_lpi.getXPathContext());
         
         // System.out.println("Back from 
m_expr.execute(m_lpi.getXPathContext()): "+obj);
  -      m_nodeSet = (null != obj) ? obj.nodeset() : null;
  +      m_nodeSet = (null != obj) ? obj.iter() : null;
         
         m_peek = DTM.NULL;
       }
  
  
  
  1.9       +1 -1      xml-xalan/java/src/org/apache/xpath/functions/FuncId.java
  
  Index: FuncId.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/functions/FuncId.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FuncId.java       2001/06/15 05:15:42     1.8
  +++ FuncId.java       2001/06/15 17:54:24     1.9
  @@ -164,7 +164,7 @@
   
       if (XObject.CLASS_NODESET == argType)
       {
  -      DTMIterator ni = arg.nodeset();
  +      DTMIterator ni = arg.iter();
         StringVector usedrefs = null;
         int pos = ni.nextNode();
   
  
  
  
  1.13      +45 -17    xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java
  
  Index: XNodeSet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- XNodeSet.java     2001/06/15 05:15:49     1.12
  +++ XNodeSet.java     2001/06/15 17:54:25     1.13
  @@ -59,7 +59,7 @@
   //import org.w3c.dom.Node;
   //import org.w3c.dom.Text;
   //import org.w3c.dom.DocumentFragment;
  -//import org.w3c.dom.traversal.NodeIterator;
  +import org.w3c.dom.traversal.NodeIterator;
   
   import org.apache.xml.dtm.DTM;
   import org.apache.xml.dtm.DTMIterator;
  @@ -167,7 +167,7 @@
     public double num()
     {
   
  -    DTMIterator nl = nodeset();
  +    DTMIterator nl = iter();
       int node = nl.nextNode();
   
       return (node != DTM.NULL) ? getNumberFromNode(node) : Double.NaN;
  @@ -180,7 +180,7 @@
      */
     public boolean bool()
     {
  -    return (nodeset().nextNode() != DTM.NULL);
  +    return (iter().nextNode() != DTM.NULL);
     }
     
     /**
  @@ -211,7 +211,7 @@
      */
     public XMLString xstr()
     {
  -    DTMIterator nl = nodeset();
  +    DTMIterator nl = iter();
       int node = nl.nextNode();
   
       return (node != DTM.NULL) ? getStringFromNode(node) : 
XString.EMPTYSTRING;
  @@ -267,13 +267,14 @@
     public String str()
     {
   
  -    DTMIterator nl = nodeset();
  +    DTMIterator nl = iter();
       int node = nl.nextNode();
   
       return (node != DTM.NULL) ? getStringFromNode(node).toString() : "";
     }
   
     // %REVIEW%
  +  // hmmm...
   //  /**
   //   * Cast result object to a result tree fragment.
   //   *
  @@ -281,11 +282,15 @@
   //   *
   //   * @return the nodeset as a result tree fragment.
   //   */
  -//  public DTMIterator rtree(XPathContext support)
  +//  public DocumentFragment rtree(XPathContext support)
   //  {
  -//    DTM frag = support.createDocumentFragment();
  +//    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  +//    DocumentBuilder db = dbf.newDocumentBuilder();
  +//    Document myDoc = db.newDocument();
  +//    
  +//    DocumentFragment docFrag = myDoc.createDocumentFragment();
   //
  -//    DTMIterator nl = nodeset();
  +//    DTMIterator nl = iter();
   //    int node;
   //
   //    while (DTM.NULL != (node = nl.nextNode()))
  @@ -293,18 +298,41 @@
   //      frag.appendChild(node, true, true);
   //    }
   //
  -//    return support.createDTMIterator(frag.getDocument());
  +//    return frag.getDocument();
   //  }
  +
  +  /**
  +   * Cast result object to a nodelist. Always issues an error.
  +   *
  +   * @return null
  +   *
  +   * @throws javax.xml.transform.TransformerException
  +   */
  +  public NodeIterator nodeset() throws 
javax.xml.transform.TransformerException
  +  {
  +    return new org.apache.xml.dtm.ref.DTMNodeIterator(iter());
  +  }
  +  
  +//  /**
  +//   * Return a java object that's closest to the representation
  +//   * that should be handed to an extension.
  +//   *
  +//   * @return The object that this class wraps
  +//   */
  +//  public Object object()
  +//  {
  +//    return new org.apache.xml.dtm.ref.DTMNodeList(iter());
  +//  }
     
     /**
      * Cast result object to a nodelist.
      *
      * @return The nodeset as a nodelist
      */
  -  public DTMIterator nodeset()
  +  public DTMIterator iter()
     {
   
  -    // System.out.println("In XNodeSet.nodeset()");
  +    // System.out.println("In XNodeSet.iter()");
       DTMIterator ns = (DTMIterator) m_obj;
   
       // System.out.println("Is a ContextNodeList: "+ns);
  @@ -341,7 +369,7 @@
       }
       else
       {
  -      mnl = new NodeSetDTM(nodeset());
  +      mnl = new NodeSetDTM(iter());
         m_obj = mnl;
       }
   
  @@ -399,8 +427,8 @@
         // is true if and only if some node in $x has the string-value 
         // foo; the latter is true if and only if all nodes in $x have 
         // the string-value foo.
  -      DTMIterator list1 = nodeset();
  -      DTMIterator list2 = ((XNodeSet) obj2).nodeset();
  +      DTMIterator list1 = iter();
  +      DTMIterator list2 = ((XNodeSet) obj2).iter();
         int node1;
         java.util.Vector node2Strings = null;
   
  @@ -469,7 +497,7 @@
         // comparison on the number to be compared and on the result of 
         // converting the string-value of that node to a number using 
         // the number function is true. 
  -      DTMIterator list1 = nodeset();
  +      DTMIterator list1 = iter();
         double num2 = obj2.num();
         int node;
   
  @@ -488,7 +516,7 @@
       else if (XObject.CLASS_RTREEFRAG == type)
       {
         XMLString s2 = obj2.xstr();
  -      DTMIterator list1 = nodeset();
  +      DTMIterator list1 = iter();
         int node;
   
         while (DTM.NULL != (node = list1.nextNode()))
  @@ -513,7 +541,7 @@
         // the comparison on the string-value of the node and the other 
         // string is true. 
         XMLString s2 = obj2.xstr();
  -      DTMIterator list1 = nodeset();
  +      DTMIterator list1 = iter();
         int node;
   
         while (DTM.NULL != (node = list1.nextNode()))
  
  
  
  1.8       +2 -2      xml-xalan/java/src/org/apache/xpath/objects/XNull.java
  
  Index: XNull.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XNull.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XNull.java        2001/06/15 05:15:52     1.7
  +++ XNull.java        2001/06/15 17:54:26     1.8
  @@ -140,7 +140,7 @@
      *
      * @return The object as a result tree fragment.
      */
  -  public int rtree(XPathContext support)
  +  public int rtf(XPathContext support)
     {
       // DTM frag = support.createDocumentFragment();
       // %REVIEW%
  @@ -152,7 +152,7 @@
      *
      * @return null
      */
  -  public DTMIterator nodeset()
  +  public DTMIterator iter()
     {
       return null;
     }
  
  
  
  1.12      +65 -7     xml-xalan/java/src/org/apache/xpath/objects/XObject.java
  
  Index: XObject.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XObject.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XObject.java      2001/06/15 05:15:53     1.11
  +++ XObject.java      2001/06/15 17:54:26     1.12
  @@ -56,10 +56,10 @@
    */
   package org.apache.xpath.objects;
   
  -//import org.w3c.dom.DocumentFragment;
  +import org.w3c.dom.DocumentFragment;
   //import org.w3c.dom.Text;
   //import org.w3c.dom.Node;
  -//import org.w3c.dom.traversal.NodeIterator;
  +import org.w3c.dom.traversal.NodeIterator;
   import org.apache.xml.dtm.DTM;
   import org.apache.xml.dtm.DTMIterator;
   
  @@ -344,10 +344,10 @@
      *
      * @return the objec as a result tree fragment.
      */
  -  public int rtree(XPathContext support)
  +  public int rtf(XPathContext support)
     {
   
  -    int result = rtree();
  +    int result = rtf();
   
       if (DTM.NULL == result)
       {
  @@ -361,13 +361,55 @@
   
       return result;
     }
  +  
  +  /**
  +   * Cast result object to a result tree fragment.
  +   *
  +   * @param support XPath context to use for the conversion
  +   *
  +   * @return the objec as a result tree fragment.
  +   */
  +  public DocumentFragment rtree(XPathContext support)
  +  {
  +    DocumentFragment docFrag = null;
  +    int result = rtf();
  +
  +    if (DTM.NULL == result)
  +    {
  +      DTM frag = support.createDocumentFragment();
  +
  +      // %OPT%
  +      frag.appendTextChild(str());
  +
  +      docFrag = (DocumentFragment)frag.getNode(frag.getDocument());
  +    }
  +    else
  +    {
  +      DTM frag = support.getDTM(result);
  +      docFrag = (DocumentFragment)frag.getNode(frag.getDocument());
  +    }
  +
  +    return docFrag;
  +  }
  +  
  +  
  +  
  +  /**
  +   * For functions to override.
  +   *
  +   * @return null
  +   */
  +  public DocumentFragment rtree()
  +  {
  +    return null;
  +  }
   
     /**
      * For functions to override.
      *
      * @return null
      */
  -  public int rtree()
  +  public int rtf()
     {
       return DTM.NULL;
     }
  @@ -389,8 +431,24 @@
      * @return null
      *
      * @throws javax.xml.transform.TransformerException
  +   */
  +  public DTMIterator iter() throws javax.xml.transform.TransformerException
  +  {
  +
  +    error(XPATHErrorResources.ER_CANT_CONVERT_TO_NODELIST,
  +          new Object[]{ getTypeString() });  //"Can not convert 
"+getTypeString()+" to a NodeList!");
  +
  +    return null;
  +  }
  +  
  +  /**
  +   * Cast result object to a nodelist. Always issues an error.
  +   *
  +   * @return null
  +   *
  +   * @throws javax.xml.transform.TransformerException
      */
  -  public DTMIterator nodeset() throws 
javax.xml.transform.TransformerException
  +  public NodeIterator nodeset() throws 
javax.xml.transform.TransformerException
     {
   
       error(XPATHErrorResources.ER_CANT_CONVERT_TO_NODELIST,
  @@ -441,7 +499,7 @@
         result = new Double(num());
         break;
       case CLASS_NODESET :
  -      result = nodeset();
  +      result = iter();
         break;
       case CLASS_BOOLEAN :
         result = new Boolean(bool());
  
  
  
  1.16      +1 -1      
xml-xalan/java/src/org/apache/xpath/objects/XRTreeFrag.java
  
  Index: XRTreeFrag.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XRTreeFrag.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XRTreeFrag.java   2001/06/15 05:15:54     1.15
  +++ XRTreeFrag.java   2001/06/15 17:54:27     1.16
  @@ -286,7 +286,7 @@
      *
      * @return The document fragment this wraps
      */
  -  public int rtree()
  +  public int rtf()
     {
       return m_dtmRoot;
     }
  
  
  
  1.3       +2 -2      
xml-xalan/java/src/org/apache/xpath/objects/XRTreeFragSelectWrapper.java
  
  Index: XRTreeFragSelectWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XRTreeFragSelectWrapper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XRTreeFragSelectWrapper.java      2001/06/12 19:16:53     1.2
  +++ XRTreeFragSelectWrapper.java      2001/06/15 17:54:27     1.3
  @@ -110,9 +110,9 @@
      *
      * @return The document fragment this wraps
      */
  -  public int rtree()
  +  public int rtf()
     {
  -    throw new RuntimeException("rtree() not supported by 
XRTreeFragSelectWrapper!");
  +    throw new RuntimeException("rtf() not supported by 
XRTreeFragSelectWrapper!");
     }
   
     /**
  
  
  
  1.8       +1 -1      xml-xalan/java/src/org/apache/xpath/objects/XString.java
  
  Index: XString.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XString.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XString.java      2001/06/12 19:16:53     1.7
  +++ XString.java      2001/06/15 17:54:28     1.8
  @@ -279,7 +279,7 @@
      *
      * @return A document fragment with this string as a child node
      */
  -  public int rtree(XPathContext support)
  +  public int rtf(XPathContext support)
     {
   
       DTM frag = support.createDocumentFragment();
  
  
  

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

Reply via email to