morten      01/10/08 00:47:19

  Modified:    java/src/org/apache/xalan/xsltc/dom DOMImpl.java
  Log:
  Changed the way in which we eliminated duplicate nodes returned by some
  iterators. We had two iterators we used to lay on top of other iterators
  that we suspected could produce duplicate or out-of-order nodes. These
  iterators were DOMImpl$OrderedIterator and DupFilterIterator. I chose to
  keep the latter as it both filters out duplcate nodes and puts nodes in
  correct document order.
  PR:           n/a
  Obtained from:        n/a
  Submitted by: [EMAIL PROTECTED]
  Reviewed by:  [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.38      +2 -65     
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java
  
  Index: DOMImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- DOMImpl.java      2001/10/05 09:47:55     1.37
  +++ DOMImpl.java      2001/10/08 07:47:18     1.38
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DOMImpl.java,v 1.37 2001/10/05 09:47:55 morten Exp $
  + * @(#)$Id: DOMImpl.java,v 1.38 2001/10/08 07:47:18 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -1654,74 +1654,11 @@
        return(new NodeValueIterator(iterator, type, value, op));
       }
   
  -    /**************************************************************
  -     * Iterator that assured that a single node is only returned once
  -     * and that the nodes are returned in document order.
  -     */             
  -    private final class OrderedIterator extends NodeIteratorBase {
  -
  -     private BitArray  _nodes = null;
  -     private int       _save = 0;
  -     private int       _mark = 0;
  -     private int       _start = 0;
  -     private int       _node = -1;
  -     private int       _last = 0;
  -
  -     public OrderedIterator(NodeIterator source, int node) {
  -         _nodes = new BitArray(_treeNodeLimit);
  -         source.setStartNode(node);
  -         while ((_node = source.next()) != END) {
  -             if (_start == -1) _start = _node;
  -             _last = _node;
  -             _nodes.setBit(_node);
  -         }
  -         _node = -1;
  -     }
  - 
  -     public int next() {
  -         while ((_node < _treeNodeLimit) && (!_nodes.getBit(++_node))) ;
  -         if (_node >= _treeNodeLimit) return(END);
  -         return returnNode(_node);
  -     }
  -
  -     public NodeIterator reset() {
  -         _node = _start - 1;
  -         return(this);
  -     }
  -
  -     public int getLast() {
  -         return(_last);
  -     }
  -         
  -     public void setMark() {
  -         _save = _node;
  -     }
  -
  -     public void gotoMark() {
  -         _node = _save;
  -     }
  -
  -     public NodeIterator setStartNode(int start) {
  -         _start = start;
  -         return((NodeIterator)this);
  -     }
  -
  -     public boolean isReverse() {
  -         return(false);
  -     }
  -
  -     public NodeIterator cloneIterator() {
  -         return((NodeIterator)this);
  -     }
  -
  -    } // end of OrderedIterator
  -
  -
       /**
        * Encapsulates an iterator in an OrderedIterator to ensure node order
        */
       public NodeIterator orderNodes(NodeIterator source, int node) {
  -     return new OrderedIterator(source, node);
  +     return new DupFilterIterator(source);
       }
   
       /**
  
  
  

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

Reply via email to