gnu.xml.dom

Class DomIterator

Implemented Interfaces:
EventListener, NodeIterator

public final class DomIterator
extends Object
implements NodeIterator, EventListener

"NodeIterator" implementation, usable with any L2 DOM which supports MutationEvents.

Constructor Summary

DomIterator(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion)
Constructs and initializes an iterator.

Method Summary

void
detach()
DOM L2 Flags the iterator as done, unregistering its event listener so that the iterator can be garbage collected without relying on weak references (a "Java 2" feature) in the event subsystem.
boolean
getExpandEntityReferences()
DOM L2 Returns the flag controlling whether iteration descends through entity references.
NodeFilter
getFilter()
DOM L2 Returns the filter provided during construction.
Node
getRoot()
DOM L2 Returns the root of the tree this is iterating through.
int
getWhatToShow()
DOM L2 Returns the mask of flags provided during construction.
void
handleEvent(Event e)
Not for public use.
Node
nextNode()
DOM L2 Returns the next node in a forward iteration, masked and filtered.
Node
previousNode()
DOM L2 Returns the next node in a backward iteration, masked and filtered.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

DomIterator

protected DomIterator(Node root,
                      int whatToShow,
                      NodeFilter filter,
                      boolean entityReferenceExpansion)
Constructs and initializes an iterator.

Method Details

detach

public void detach()
DOM L2 Flags the iterator as done, unregistering its event listener so that the iterator can be garbage collected without relying on weak references (a "Java 2" feature) in the event subsystem.
Specified by:
detach in interface NodeIterator

getExpandEntityReferences

public boolean getExpandEntityReferences()
DOM L2 Returns the flag controlling whether iteration descends through entity references.
Specified by:
getExpandEntityReferences in interface NodeIterator

getFilter

public NodeFilter getFilter()
DOM L2 Returns the filter provided during construction.
Specified by:
getFilter in interface NodeIterator

getRoot

public Node getRoot()
DOM L2 Returns the root of the tree this is iterating through.
Specified by:
getRoot in interface NodeIterator

getWhatToShow

public int getWhatToShow()
DOM L2 Returns the mask of flags provided during construction.
Specified by:
getWhatToShow in interface NodeIterator

handleEvent

public void handleEvent(Event e)
Not for public use. This lets the iterator know when its reference node will be removed from the tree, so that a new one may be selected.

This version works by watching removal events as they bubble up. So, don't prevent them from bubbling.

Specified by:
handleEvent in interface EventListener

nextNode

public Node nextNode()
DOM L2 Returns the next node in a forward iteration, masked and filtered. Note that the node may be read-only due to entity expansions. A null return indicates the iteration is complete, but may still be processed backwards.
Specified by:
nextNode in interface NodeIterator

previousNode

public Node previousNode()
DOM L2 Returns the next node in a backward iteration, masked and filtered. Note that the node may be read-only due to entity expansions. A null return indicates the iteration is complete, but may still be processed forwards.
Specified by:
previousNode in interface NodeIterator

DomIterator.java -- Copyright (C) 1999, 2000, 2001, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.