Interface IDOMNode

All Superinterfaces:
Cloneable
All Known Subinterfaces:
IDOMCompilationUnit, IDOMField, IDOMImport, IDOMInitializer, IDOMMember, IDOMMethod, IDOMPackage, IDOMType
All Known Implementing Classes:
DOMNode

public interface IDOMNode extends Cloneable
Deprecated.
The JDOM was made obsolete by the addition in 2.0 of the more powerful, fine-grained DOM/AST API found in the org.eclipse.jdt.core.dom package.
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.

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 following manipulations on DFs are distinct:

  • clone - this creates a stand-alone copy of the DF that is in no way dependent on the DF that it was cloned from
  • remove - this orphans a DF from its host DF. The removed DF may still be dependent on its previous host (perhaps to generate its contents), and hanging onto the fragment means that its previous host is also retained in memory.
  • add/insert - this splices an un-parented DF (one that has been cloned, removed, or created stand-alone), into an existing DF such that the newly inserted DF is only dependent on its new host.

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[]".