com.google.gwt.xml.client.Node.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.xml.client.Node.java

Source

/*
 * Copyright 2008 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.xml.client;

/**
 * This is the base interface for DOM nodes, as obtained from using
 * <code>XMLParser</code> methods. Methods for iterating over and accessing
 * values from nodes are supplied here.
 */
public interface Node {
    /**
     * The constant 1 denotes DOM nodes of type Element.
     */
    short ELEMENT_NODE = 1;

    /**
     * The constant 2 denotes DOM nodes of type Attribute.
     */
    short ATTRIBUTE_NODE = 2;

    /**
     * The constant 3 denotes DOM nodes of type Text.
     */
    short TEXT_NODE = 3;

    /**
     * The constant 4 denotes DOM nodes of type CdataSection.
     */
    short CDATA_SECTION_NODE = 4;

    /**
     * The constant 5 denotes DOM nodes of type EntityReference.
     */
    short ENTITY_REFERENCE_NODE = 5;

    /**
     * The constant 6 denotes DOM nodes of type Entity.
     */
    short ENTITY_NODE = 6;

    /**
     * The constant 7 denotes DOM nodes of type ProcessingInstruction.
     */
    short PROCESSING_INSTRUCTION_NODE = 7;

    /**
     * The constant 8 denotes DOM nodes of type Comment.
     */
    short COMMENT_NODE = 8;

    /**
     * The constant 9 denotes DOM nodes of type Document.
     */
    short DOCUMENT_NODE = 9;

    /**
     * The constant 10 denotes DOM nodes of type DocumentType.
     */
    short DOCUMENT_TYPE_NODE = 10;

    /**
     * The constant 11 denotes DOM nodes of type DocumentFragment.
     */
    short DOCUMENT_FRAGMENT_NODE = 11;

    /**
     * The constant 12 denotes DOM nodes of type Notation.
     */
    short NOTATION_NODE = 12;

    /**
     * This method appends child <code>newChild</code>.
     * 
     * @param newChild the <code>Node</code> to be added
     * @return the child <code>Node</code> appended
     */
    Node appendChild(Node newChild);

    /**
     * This method copies this <code>Node</code>.
     * 
     * @param deep whether to recurse to children
     * @return <code>Node</code> cloned
     */
    Node cloneNode(boolean deep);

    /**
     * This method retrieves the attributes.
     * 
     * @return the attributes of this <code>Node</code>
     */
    NamedNodeMap getAttributes();

    /**
     * This method retrieves the child nodes.
     * 
     * @return the child nodes of this <code>Node</code>
     */
    NodeList getChildNodes();

    /**
     * This method retrieves the first child.
     * 
     * @return the first child of this <code>Node</code>
     */
    Node getFirstChild();

    /**
     * This method retrieves the last child.
     * 
     * @return the last child of this <code>Node</code>
     */
    Node getLastChild();

    /**
     * This method retrieves the namespace URI.
     * 
     * @return the namespace URI of this <code>Node</code>
     */
    String getNamespaceURI();

    /**
     * This method retrieves the next sibling.
     * 
     * @return the next sibling of this <code>Node</code>
     */
    Node getNextSibling();

    /**
     * This method retrieves the name.
     * 
     * @return the name of this <code>Node</code>
     */
    String getNodeName();

    /**
     * This method retrieves the type.
     * 
     * @return the type of this <code>Node</code>
     */
    short getNodeType();

    /**
     * This method retrieves the value.
     * 
     * @return the value of this <code>Node</code>
     */
    String getNodeValue();

    /**
     * This method retrieves the owner document.
     * 
     * @return the owner document of this <code>Node</code>
     */
    Document getOwnerDocument();

    /**
     * This method retrieves the parent.
     * 
     * @return the parent of this <code>Node</code>
     */
    Node getParentNode();

    /**
     * This method retrieves the prefix.
     * 
     * @return the prefix of this <code>Node</code>
     */
    String getPrefix();

    /**
     * This method retrieves the previous sibling.
     * 
     * @return the previous sibling of this <code>Node</code>
     */
    Node getPreviousSibling();

    /**
     * This method determines whether this <code>Node</code> has any attributes.
     * 
     * @return <code>true</code> if this <code>Node</code> has any attributes
     */
    boolean hasAttributes();

    /**
     * This method determines whether this <code>Node</code> has any child
     * nodes.
     * 
     * @return <code>true</code> if this <code>Node</code> has any child nodes
     */
    boolean hasChildNodes();

    /**
     * This method inserts before <code>newChild</code>.
     * 
     * @param newChild the <code>Node</code> to be added
     * @param refChild the <code>Node</code> which determines the position to
     *          insert
     * @return the before <code>Node</code> inserted
     */
    Node insertBefore(Node newChild, Node refChild);

    /**
     * This method may collapse adjacent text nodes into one text node, depending
     * on the implementation. Safari 4.0 and Chrome will also merge CDATA nodes
     * into text nodes, even though they support CDATA nodes as distinct nodes.
     */
    void normalize();

    /**
     * This method removes child <code>oldChild</code>.
     * 
     * @param oldChild the <code>Node</code> to be removed
     * @return the child <code>Node</code> removed
     */
    Node removeChild(Node oldChild);

    /**
     * This method replaces the child <code>oldChild</code> with
     * <code>newChild</code>.
     * 
     * @param newChild the <code>Node</code> to be added
     * @param oldChild the <code>Node</code> to be removed
     * @return the child <code>Node</code> replaced
     */
    Node replaceChild(Node newChild, Node oldChild);

    /**
     * This method sets the value to <code>nodeValue</code>.
     * 
     * @param nodeValue the new value
     */
    void setNodeValue(String nodeValue);

}