blob: 9ab2cde01131343c6bdebdd0dc585e5fa4526fbd [file] [log] [blame]
/*
* 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);
}