27 September, 2000

Appendix B: Java Language Binding

This appendix contains the complete Java [Java] bindings for the Level 2 Document Object Model Traversal and Range. The definitions are divided into Traversal, and Range.

The Java files are also available as http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927/java-binding.zip

B.1: Document Object Model Traversal

org/w3c/dom/traversal/NodeIterator.java:

package org.w3c.dom.traversal;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

public interface NodeIterator {
    public Node getRoot();

    public int getWhatToShow();

    public NodeFilter getFilter();

    public boolean getExpandEntityReferences();

    public Node nextNode()
                         throws DOMException;

    public Node previousNode()
                             throws DOMException;

    public void detach();

}

org/w3c/dom/traversal/NodeFilter.java:

package org.w3c.dom.traversal;

import org.w3c.dom.Node;

public interface NodeFilter {
    // Constants returned by acceptNode
    public static final short FILTER_ACCEPT             = 1;
    public static final short FILTER_REJECT             = 2;
    public static final short FILTER_SKIP               = 3;

    // Constants for whatToShow
    public static final int SHOW_ALL                  = 0xFFFFFFFF;
    public static final int SHOW_ELEMENT              = 0x00000001;
    public static final int SHOW_ATTRIBUTE            = 0x00000002;
    public static final int SHOW_TEXT                 = 0x00000004;
    public static final int SHOW_CDATA_SECTION        = 0x00000008;
    public static final int SHOW_ENTITY_REFERENCE     = 0x00000010;
    public static final int SHOW_ENTITY               = 0x00000020;
    public static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
    public static final int SHOW_COMMENT              = 0x00000080;
    public static final int SHOW_DOCUMENT             = 0x00000100;
    public static final int SHOW_DOCUMENT_TYPE        = 0x00000200;
    public static final int SHOW_DOCUMENT_FRAGMENT    = 0x00000400;
    public static final int SHOW_NOTATION             = 0x00000800;

    public short acceptNode(Node n);

}

org/w3c/dom/traversal/TreeWalker.java:

package org.w3c.dom.traversal;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

public interface TreeWalker {
    public Node getRoot();

    public int getWhatToShow();

    public NodeFilter getFilter();

    public boolean getExpandEntityReferences();

    public Node getCurrentNode();
    public void setCurrentNode(Node currentNode)
                            throws DOMException;

    public Node parentNode();

    public Node firstChild();

    public Node lastChild();

    public Node previousSibling();

    public Node nextSibling();

    public Node previousNode();

    public Node nextNode();

}

org/w3c/dom/traversal/DocumentTraversal.java:

package org.w3c.dom.traversal;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

public interface DocumentTraversal {
    public NodeIterator createNodeIterator(Node root, 
                                           int whatToShow, 
                                           NodeFilter filter, 
                                           boolean entityReferenceExpansion)
                                           throws DOMException;

    public TreeWalker createTreeWalker(Node root, 
                                       int whatToShow, 
                                       NodeFilter filter, 
                                       boolean entityReferenceExpansion)
                                       throws DOMException;

}

B.2: Document Object Model Range

org/w3c/dom/ranges/RangeException.java:

package org.w3c.dom.ranges;

public class RangeException extends RuntimeException {
    public RangeException(short code, String message) {
       super(message);
       this.code = code;
    }
    public short   code;
    // RangeExceptionCode
    public static final short BAD_BOUNDARYPOINTS_ERR    = 1;
    public static final short INVALID_NODE_TYPE_ERR     = 2;

}

org/w3c/dom/ranges/Range.java:

package org.w3c.dom.ranges;

import org.w3c.dom.Node;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DOMException;

public interface Range {
    public Node getStartContainer()
                                       throws DOMException;

    public int getStartOffset()
                                       throws DOMException;

    public Node getEndContainer()
                                       throws DOMException;

    public int getEndOffset()
                                       throws DOMException;

    public boolean getCollapsed()
                                       throws DOMException;

    public Node getCommonAncestorContainer()
                                       throws DOMException;

    public void setStart(Node refNode, 
                         int offset)
                         throws RangeException, DOMException;

    public void setEnd(Node refNode, 
                       int offset)
                       throws RangeException, DOMException;

    public void setStartBefore(Node refNode)
                               throws RangeException, DOMException;

    public void setStartAfter(Node refNode)
                              throws RangeException, DOMException;

    public void setEndBefore(Node refNode)
                             throws RangeException, DOMException;

    public void setEndAfter(Node refNode)
                            throws RangeException, DOMException;

    public void collapse(boolean toStart)
                         throws DOMException;

    public void selectNode(Node refNode)
                           throws RangeException, DOMException;

    public void selectNodeContents(Node refNode)
                                   throws RangeException, DOMException;

    // CompareHow
    public static final short START_TO_START            = 0;
    public static final short START_TO_END              = 1;
    public static final short END_TO_END                = 2;
    public static final short END_TO_START              = 3;

    public short compareBoundaryPoints(short how, 
                                       Range sourceRange)
                                       throws DOMException;

    public void deleteContents()
                               throws DOMException;

    public DocumentFragment extractContents()
                                            throws DOMException;

    public DocumentFragment cloneContents()
                                          throws DOMException;

    public void insertNode(Node newNode)
                           throws DOMException, RangeException;

    public void surroundContents(Node newParent)
                                 throws DOMException, RangeException;

    public Range cloneRange()
                            throws DOMException;

    public String toString()
                           throws DOMException;

    public void detach()
                       throws DOMException;

}

org/w3c/dom/ranges/DocumentRange.java:

package org.w3c.dom.ranges;

public interface DocumentRange {
    public Range createRange();

}