X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/jdom/IDOMNode.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/jdom/IDOMNode.java index 9c61412..10a162b 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/jdom/IDOMNode.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/jdom/IDOMNode.java @@ -14,265 +14,321 @@ import java.util.Enumeration; import net.sourceforge.phpdt.core.IJavaElement; - /** - * Nodes represent structural fragments of a Java source file, also known as document fragments. Their implementation - * is known as a DOM (Document Object Model) - in this case a JDOM (Java DOM). A root node (node - * with no parent or siblings) represents the root of a document fragment (DF). A complete Java document is - * represented by a compilation unit node (IDOMCompilationUnit). In this way, a DF is - * comprised of DFs, and a document itself (compilation unit) is also a DF. + * Nodes represent structural fragments of a Java source file, also known as + * document fragments. Their implementation is known as a DOM (Document Object + * Model) - in this case a JDOM (Java DOM). A root node (node with no parent or + * siblings) represents the root of a document fragment (DF). A complete Java + * document is represented by a compilation unit node (IDOMCompilationUnit). + * In this way, a DF is comprised of DFs, and a document itself (compilation + * unit) is also a DF. *

- * A DF may be created empty and programmatically filled, or it may be created from - * a source code string. The IDOMFactory allows the creation of all kinds - * of nodes from source code strings. Manipulations performed on a DF are immediately - * reflected in the DF's contents. + * A DF may be created empty and programmatically filled, or it may be created + * from a source code string. The IDOMFactory allows the creation + * of all kinds of nodes from source code strings. Manipulations performed on a + * DF are immediately reflected in the DF's contents. *

*

- * Children fragments are represented as a linked list of nodes. Children are inserted via their parent node, and - * are automatically linked up with previous and next nodes. + * Children fragments are represented as a linked list of nodes. Children are + * inserted via their parent node, and are automatically linked up with previous + * and next nodes. *

*

- * The contents of any node (DF) may be retrieved at any time. In this way it is possible to retrieve - * source code representing fragments of the compilation unit (for example, a type or a method), since - * the contents of any node (not just the root node) may be obtained. + * The contents of any node (DF) may be retrieved at any time. In this way it is + * possible to retrieve source code representing fragments of the compilation + * unit (for example, a type or a method), since the contents of any node (not + * just the root node) may be obtained. *

*

* The following manipulations on DFs are distinct: *

*

*

- * Wherever types are specified in DOM APIs, type names must be specified as they would appear - * in source code. The DOM does not have a notion of type signatures, only raw text. Example type - * names are "Object", "java.io.File", and "int[]". + * Wherever types are specified in DOM APIs, type names must be specified as + * they would appear in source code. The DOM does not have a notion of type + * signatures, only raw text. Example type names are "Object", + * "java.io.File", and "int[]". *

*

* This interface is not intended to be implemented by clients. *

*/ -public interface IDOMNode extends Cloneable { +public interface IDOMNode extends Cloneable { /** - * Node type constant indicating a compilation unit. - * Nodes of this type maybe by safely cast to IDOMCompilationUnit. + * Node type constant indicating a compilation unit. Nodes of this type + * maybe by safely cast to IDOMCompilationUnit. + * * @see #getNodeType */ - public static int COMPILATION_UNIT= 1; - + public static int COMPILATION_UNIT = 1; + /** - * Node type constant indicating a package declaration. - * Nodes of this type maybe by safely cast to IDOMPackage. - * @see #getNodeType + * Node type constant indicating a package declaration. Nodes of this type + * maybe by safely cast to IDOMPackage. + * + * @see #getNodeType */ - public static int PACKAGE= 2; - + public static int PACKAGE = 2; + /** - * Node type constant indicating an import declaration. - * Nodes of this type maybe by safely cast to IDOMImport. + * Node type constant indicating an import declaration. Nodes of this type + * maybe by safely cast to IDOMImport. + * * @see #getNodeType */ - public static int IMPORT= 3; - + public static int IMPORT = 3; + /** - * Node type constant indicating a type declaration. - * Nodes of this type maybe by safely cast to IDOMType. + * Node type constant indicating a type declaration. Nodes of this type + * maybe by safely cast to IDOMType. + * * @see #getNodeType */ - public static int TYPE= 4; - + public static int TYPE = 4; + /** - * Node type constant indicating a field declaration. - * Nodes of this type maybe by safely cast to IDOMField. + * Node type constant indicating a field declaration. Nodes of this type + * maybe by safely cast to IDOMField. + * * @see #getNodeType */ - public static int FIELD= 5; - + public static int FIELD = 5; + /** * Node type constant indicating a method (or constructor) declaration. * Nodes of this type maybe by safely cast to IDOMMethod. + * * @see #getNodeType */ - public static int METHOD= 6; - + public static int METHOD = 6; + /** - * Node type constant indicating an initializer declaration. - * Nodes of this type maybe by safely cast to IDOMInitializer. + * Node type constant indicating an initializer declaration. Nodes of this + * type maybe by safely cast to IDOMInitializer. + * * @see #getNodeType */ - public static int INITIALIZER= 7; - -/** - * Adds the given un-parented node (document fragment) as the last child of this node. - * - * @param child the new child node - * @exception DOMException if any of the following conditions hold: - * @exception IllegalArgumentException if the child is null - * - * @see #insertSibling - * @see #remove - */ -public void addChild(IDOMNode child) throws DOMException, IllegalArgumentException; -/** - * Returns whether this node is allowed to have children. - * - * @return true if this node can have children - */ -public boolean canHaveChildren(); -/** - * Returns a stand-alone copy of the document fragment represented by this node that - * is in no way dependent on the document this node is part of. - * - * @return a copy of type IDOMNode - * @see #addChild - * @see #insertSibling - * @see #remove - */ -public Object clone(); -/** - * Returns the current contents of this document fragment as a character array. - *

- * Note: To obtain complete source for the ".java" file, ask a compilation unit - * node for its contents. - *

- * - * @return the contents, or null if this node has no contents - */ -public char[] getCharacters(); -/** - * Returns the first named child of this node with the given name. - * - * @param name the name - * @return the child node, or null if no such child exists - */ -public IDOMNode getChild(String name); -/** - * Returns an enumeration of children of this node. Returns an empty enumeration - * if this node has no children (including nodes that cannot have children). - * Children appear in the order in which they are declared in the source code. - * - * @return an enumeration of the children - */ -public Enumeration getChildren(); -/** - * Returns the current contents of this document fragment. - *

- * Note: To obtain complete source for the ".java" file, ask a compilation unit - * node for its contents. - *

- * - * @return the contents, or null if this node has no contents - */ -public String getContents(); -/** - * Returns the first child of this node. - * Children appear in the order in which they exist in the source code. - * - * @return the first child, or null if this node has no children - * @see #getChildren - */ -public IDOMNode getFirstChild(); -/** - * Returns a handle for the Java element associated with this - * document fragment, based on the parent Java element. - * - * @param parent the parent Java element - * @exception IllegalArgumentException if the parent element is not - * of a valid parent type for this node - */ -public IJavaElement getJavaElement(IJavaElement parent) throws IllegalArgumentException; -/** - * Returns the name of this node. - * More details are provided in each of the subtypes. - * - * @return the name, or null if it has no name - */ -public String getName(); -/** - * Returns the sibling node immediately following this node. - * - * @return the next node, or null if there is no following node - */ -public IDOMNode getNextNode(); -/** - * Returns the type of this node. - * - * @return one of the node type constants defined in IDOMNode - */ -public int getNodeType(); -/** - * Returns the parent of this node. - * - * @return the parent node, or null if this node does not have a - * parent - */ -public IDOMNode getParent(); -/** - * Returns the sibling node immediately preceding this node. - * - * @return the previous node, or null if there is no preceding node - */ -public IDOMNode getPreviousNode(); -/** - * Inserts the given un-parented node as a sibling of this node, immediately before - * this node. - * - * @param sibling the new sibling node - * @exception DOMException if any of the following conditions hold: - * @exception IllegalArgumentException if the sibling is null - * - * @see #addChild - * @see #clone - * @see #remove - */ -public void insertSibling(IDOMNode sibling) throws DOMException, IllegalArgumentException; -/** - * Returns whether the given node is an allowable child for this node. - * - * @param node the potential child node - * @return true if the given node is an allowable child - */ -public boolean isAllowableChild(IDOMNode node); -/** - * Returns whether this node's signature is equivalent to the given - * node's signature. In other words, if the nodes were siblings, - * would the declarations collide because they represent the same declaration. - * - * @param node the other node - * @return true if the nodes have equivalent signatures - */ -public boolean isSignatureEqual(IDOMNode node); -/** - * Separates this node from its parent and siblings, maintaining any ties that this node - * has to the underlying document fragment. A document fragment that is removed - * from its host document may still be dependent on that host document until it is - * inserted into a different document. Removing a root node has no effect. - * - * @see #addChild - * @see #clone - * @see #insertSibling - */ -public void remove(); -/** - * Sets the name of this node. Name format depends on node type. - * More details are provided in each of the subtypes. - * - * @param name the name, or null to clear the name - */ -public void setName(String name); + public static int INITIALIZER = 7; + + /** + * Adds the given un-parented node (document fragment) as the last child of + * this node. + * + * @param child + * the new child node + * @exception DOMException + * if any of the following conditions hold: + * + * @exception IllegalArgumentException + * if the child is null + * + * @see #insertSibling + * @see #remove + */ + public void addChild(IDOMNode child) throws DOMException, + IllegalArgumentException; + + /** + * Returns whether this node is allowed to have children. + * + * @return true if this node can have children + */ + public boolean canHaveChildren(); + + /** + * Returns a stand-alone copy of the document fragment represented by this + * node that is in no way dependent on the document this node is part of. + * + * @return a copy of type IDOMNode + * @see #addChild + * @see #insertSibling + * @see #remove + */ + public Object clone(); + + /** + * Returns the current contents of this document fragment as a character + * array. + *

+ * Note: To obtain complete source for the ".java" file, ask a compilation + * unit node for its contents. + *

+ * + * @return the contents, or null if this node has no contents + */ + public char[] getCharacters(); + + /** + * Returns the first named child of this node with the given name. + * + * @param name + * the name + * @return the child node, or null if no such child exists + */ + public IDOMNode getChild(String name); + + /** + * Returns an enumeration of children of this node. Returns an empty + * enumeration if this node has no children (including nodes that cannot + * have children). Children appear in the order in which they are declared + * in the source code. + * + * @return an enumeration of the children + */ + public Enumeration getChildren(); + + /** + * Returns the current contents of this document fragment. + *

+ * Note: To obtain complete source for the ".java" file, ask a compilation + * unit node for its contents. + *

+ * + * @return the contents, or null if this node has no contents + */ + public String getContents(); + + /** + * Returns the first child of this node. Children appear in the order in + * which they exist in the source code. + * + * @return the first child, or null if this node has no + * children + * @see #getChildren + */ + public IDOMNode getFirstChild(); + + /** + * Returns a handle for the Java element associated with this document + * fragment, based on the parent Java element. + * + * @param parent + * the parent Java element + * @exception IllegalArgumentException + * if the parent element is not of a valid parent type for + * this node + */ + public IJavaElement getJavaElement(IJavaElement parent) + throws IllegalArgumentException; + + /** + * Returns the name of this node. More details are provided in each of the + * subtypes. + * + * @return the name, or null if it has no name + */ + public String getName(); + + /** + * Returns the sibling node immediately following this node. + * + * @return the next node, or null if there is no following + * node + */ + public IDOMNode getNextNode(); + + /** + * Returns the type of this node. + * + * @return one of the node type constants defined in IDOMNode + */ + public int getNodeType(); + + /** + * Returns the parent of this node. + * + * @return the parent node, or null if this node does not + * have a parent + */ + public IDOMNode getParent(); + + /** + * Returns the sibling node immediately preceding this node. + * + * @return the previous node, or null if there is no + * preceding node + */ + public IDOMNode getPreviousNode(); + + /** + * Inserts the given un-parented node as a sibling of this node, immediately + * before this node. + * + * @param sibling + * the new sibling node + * @exception DOMException + * if any of the following conditions hold: + * + * @exception IllegalArgumentException + * if the sibling is null + * + * @see #addChild + * @see #clone + * @see #remove + */ + public void insertSibling(IDOMNode sibling) throws DOMException, + IllegalArgumentException; + + /** + * Returns whether the given node is an allowable child for this node. + * + * @param node + * the potential child node + * @return true if the given node is an allowable child + */ + public boolean isAllowableChild(IDOMNode node); + + /** + * Returns whether this node's signature is equivalent to the given node's + * signature. In other words, if the nodes were siblings, would the + * declarations collide because they represent the same declaration. + * + * @param node + * the other node + * @return true if the nodes have equivalent signatures + */ + public boolean isSignatureEqual(IDOMNode node); + + /** + * Separates this node from its parent and siblings, maintaining any ties + * that this node has to the underlying document fragment. A document + * fragment that is removed from its host document may still be dependent on + * that host document until it is inserted into a different document. + * Removing a root node has no effect. + * + * @see #addChild + * @see #clone + * @see #insertSibling + */ + public void remove(); + + /** + * Sets the name of this node. Name format depends on node type. More + * details are provided in each of the subtypes. + * + * @param name + * the name, or null to clear the name + */ + public void setName(String name); }