| java.lang.Object org.eclipse.jdt.core.dom.ASTNode org.eclipse.jdt.core.dom.CompilationUnit
CompilationUnit | public class CompilationUnit extends ASTNode (Code) | | Java compilation unit AST node type. This is the type of the root of an AST.
The source range for this type of node is ordinarily the entire source file,
including leading and trailing whitespace and comments.
For JLS2:
CompilationUnit:
[ PackageDeclaration ]
{ ImportDeclaration }
{ TypeDeclaration | ; }
For JLS3, the kinds of type declarations
grew to include enum and annotation type declarations:
CompilationUnit:
[ PackageDeclaration ]
{ ImportDeclaration }
{ TypeDeclaration | EnumDeclaration | AnnotationTypeDeclaration | ; }
since: 2.0 |
Constructor Summary | |
| CompilationUnit(AST ast) Creates a new AST node for a compilation owned by the given AST.
The compilation unit initially has no package declaration, no
import declarations, and no type declarations.
N.B. |
Method Summary | |
void | accept0(ASTVisitor visitor) | ASTNode | clone0(AST target) | public ASTNode | findDeclaringNode(IBinding binding) Finds the corresponding AST node in the given compilation unit from
which the given binding originated. | public ASTNode | findDeclaringNode(String key) Finds the corresponding AST node in the given compilation unit from
which the binding with the given key originated. | public int | firstLeadingCommentIndex(ASTNode node) Return the index in the whole comments list
CompilationUnit.getCommentList() of the first leading comments associated with the given node. | public int | getColumnNumber(int position) Returns the column number corresponding to the given source character
position in the original source string. | public List | getCommentList() Returns a list of the comments encountered while parsing
this compilation unit.
Since the Java language allows comments to appear most anywhere
in the source text, it is problematic to locate comments in relation
to the structure of an AST. | DefaultCommentMapper | getCommentMapper() Returns the internal comment mapper. | public int | getExtendedLength(ASTNode node) Returns the extended source length of the given node. | public int | getExtendedStartPosition(ASTNode node) Returns the extended start position of the given node. | public IJavaElement | getJavaElement() The Java element (an org.eclipse.jdt.core.ICompilationUnit or an org.eclipse.jdt.core.IClassFile )
this compilation unit was created from, or null if it was not created from a Java element. | public int | getLineNumber(int position) Returns the line number corresponding to the given source character
position in the original source string. | public Message[] | getMessages() Returns the list of messages reported by the compiler during the parsing
or the type checking of this compilation unit. | final int | getNodeType0() | public PackageDeclaration | getPackage() Returns the node for the package declaration of this compilation
unit, or null if this compilation unit is in the
default package. | public int | getPosition(int line, int column) Given a line number and column number, returns the corresponding
position in the original source string.
Returns -2 if no line number information is available for this
compilation unit. | public IProblem[] | getProblems() Returns the list of detailed problem reports noted by the compiler
during the parsing or the type checking of this compilation unit. | public ITypeRoot | getTypeRoot() The Java type root (a
org.eclipse.jdt.core.ICompilationUnit compilation unit or a
org.eclipse.jdt.core.IClassFile class file )
this compilation unit was created from, or null if it was not created from a Java type root. | public List | imports() Returns the live list of nodes for the import declarations of this
compilation unit, in order of appearance. | void | initCommentMapper(Scanner scanner) Initializes the internal comment mapper with the given
scanner. | final List | internalGetChildListProperty(ChildListPropertyDescriptor property) | final ASTNode | internalGetSetChildProperty(ChildPropertyDescriptor property, boolean get, ASTNode child) | final List | internalStructuralPropertiesForType(int apiLevel) | public int | lastTrailingCommentIndex(ASTNode node) Return the index in the whole comments list
CompilationUnit.getCommentList() of the last trailing comments associated with the given node. | public int | lineNumber(int position) Returns the line number corresponding to the given source character
position in the original source string. | int | memSize() | public static List | propertyDescriptors(int apiLevel) Returns a list of structural property descriptors for this node type. | public void | recordModifications() Enables the recording of changes to this compilation
unit and its descendents. | public TextEdit | rewrite(IDocument document, Map options) Converts all modifications recorded for this compilation
unit into an object representing the corresponding text
edits to the given document containing the original source
code for this compilation unit.
The compilation unit must have been created by
ASTParser from the source code string in the
given document, and recording must have been turned
on with a prior call to recordModifications
while the AST was still in its original state.
Calling this methods does not discard the modifications
on record. | void | setCommentTable(Comment[] commentTable) Sets the list of the comments encountered while parsing
this compilation unit. | void | setLineEndTable(int[] lineEndTable) Sets the line end table for this compilation unit.
If lineEndTable[i] == p then line number i+1
ends at character position p . | public void | setPackage(PackageDeclaration pkgDecl) Sets or clears the package declaration of this compilation unit
node to the given package declaration node. | void | setProblems(IProblem[] problems) Sets the array of problems reported by the compiler during the parsing or
name resolution of this compilation unit. | void | setTypeRoot(ITypeRoot typeRoot) Sets the Java type root (a
org.eclipse.jdt.core.ICompilationUnit compilation unit or a
org.eclipse.jdt.core.IClassFile class file )
this compilation unit was created from, or null if it was not created from a Java type root. | final boolean | subtreeMatch0(ASTMatcher matcher, Object other) | int | treeSize() | public List | types() Returns the live list of nodes for the top-level type declarations of this
compilation unit, in order of appearance. |
PACKAGE_PROPERTY | final public static ChildPropertyDescriptor PACKAGE_PROPERTY(Code) | | The "package" structural property of this node type.
since: 3.0 |
optionalCommentTable | Comment[] optionalCommentTable(Code) | | The comment table, or null if none; initially
null . This array is the storage underlying
the optionalCommentList ArrayList.
since: 3.0 |
CompilationUnit | CompilationUnit(AST ast)(Code) | | Creates a new AST node for a compilation owned by the given AST.
The compilation unit initially has no package declaration, no
import declarations, and no type declarations.
N.B. This constructor is package-private; all subclasses must be
declared in the same package; clients are unable to declare
additional subclasses.
Parameters: ast - the AST that is to own this node |
findDeclaringNode | public ASTNode findDeclaringNode(IBinding binding)(Code) | | Finds the corresponding AST node in the given compilation unit from
which the given binding originated. Returns null if the
binding does not correspond to any node in this compilation unit.
This method always returns null if bindings were not requested
when this AST was built.
The following table indicates the expected node type for the various
different kinds of bindings:
- package - a
PackageDeclaration
- class or interface - a
TypeDeclaration or a
AnonymousClassDeclaration (for anonymous classes)
- primitive type - none
- array type - none
- field - a
VariableDeclarationFragment in a
FieldDeclaration
- local variable - a
SingleVariableDeclaration , or
a VariableDeclarationFragment in a
VariableDeclarationStatement or
VariableDeclarationExpression
- method - a
MethodDeclaration
- constructor - a
MethodDeclaration
- annotation type - an
AnnotationTypeDeclaration
- annotation type member - an
AnnotationTypeMemberDeclaration
- enum type - an
EnumDeclaration
- enum constant - an
EnumConstantDeclaration
- type variable - a
TypeParameter
- capture binding - none
- annotation binding - an
Annotation
- member value pair binding - an
MemberValuePair ,
or null if it represents a default value or a single member value
For parameterized or raw type bindings, the declaring node is
that of the corresponding generic type. And for parameterized or raw
method bindings, the declaring node is that of the corresponding
generic method.
Each call to
ASTParser.createAST(org.eclipse.core.runtime.IProgressMonitor) with a request for bindings
gives rise to separate universe of binding objects. This method always returns
null when the binding object comes from a different AST.
Use findDeclaringNode(binding.getKey()) when the binding comes
from a different AST.
Parameters: binding - the binding the corresponding node where the given binding is declared,or null if the binding does not correspond to a node in thiscompilation unit or if bindings were not requested when this AST was built See Also: CompilationUnit.findDeclaringNode(String) |
findDeclaringNode | public ASTNode findDeclaringNode(String key)(Code) | | Finds the corresponding AST node in the given compilation unit from
which the binding with the given key originated. Returns
null if the corresponding node cannot be determined.
This method always returns null if bindings were not requested
when this AST was built.
The following table indicates the expected node type for the various
different kinds of binding keys:
- package - a
PackageDeclaration
- class or interface - a
TypeDeclaration or a
AnonymousClassDeclaration (for anonymous classes)
- primitive type - none
- array type - none
- field - a
VariableDeclarationFragment in a
FieldDeclaration
- local variable - a
SingleVariableDeclaration , or
a VariableDeclarationFragment in a
VariableDeclarationStatement or
VariableDeclarationExpression
- method - a
MethodDeclaration
- constructor - a
MethodDeclaration
- annotation type - an
AnnotationTypeDeclaration
- annotation type member - an
AnnotationTypeMemberDeclaration
- enum type - an
EnumDeclaration
- enum constant - an
EnumConstantDeclaration
- type variable - a
TypeParameter
- capture binding - none
For parameterized or raw type bindings, the declaring node is
that of the corresponding generic type. And for parameterized or raw
method bindings, the declaring node is that of the corresponding
generic method.
Parameters: key - the binding key, or null the corresponding node where a binding with the givenkey is declared, or null if the key is null or if the key does not correspond to a node in this compilation unitor if bindings were not requested when this AST was built See Also: IBinding.getKey since: 2.1 |
firstLeadingCommentIndex | public int firstLeadingCommentIndex(ASTNode node)(Code) | | Return the index in the whole comments list
CompilationUnit.getCommentList() of the first leading comments associated with the given node.
Parameters: node - the node 0-based index of first leading comment or -1 if node has no associatedcomment before its start position. since: 3.2 |
getColumnNumber | public int getColumnNumber(int position)(Code) | | Returns the column number corresponding to the given source character
position in the original source string. Column number are zero-based.
Return -1 if it is beyond the valid range or -2
if the column number information is unknown.
Parameters: position - a 0-based character position, possiblynegative or out of range the 0-based column number, or -1 if the characterposition does not correspond to a source line in the originalsource file or -2 if column number information is unknown for thiscompilation unit See Also: ASTParser since: 3.2 |
getCommentList | public List getCommentList()(Code) | | Returns a list of the comments encountered while parsing
this compilation unit.
Since the Java language allows comments to appear most anywhere
in the source text, it is problematic to locate comments in relation
to the structure of an AST. The one exception is doc comments
which, by convention, immediately precede type, field, and
method declarations; these comments are located in the AST
by
BodyDeclaration.getJavadoc BodyDeclaration.getJavadoc .
Other comments do not show up in the AST. The table of comments
is provided for clients that need to find the source ranges of
all comments in the original source string. It includes entries
for comments of all kinds (line, block, and doc), arranged in order
of increasing source position.
Note on comment parenting: The
ASTNode.getParent getParent() of a doc comment associated with a body declaration is the body
declaration node; for these comment nodes
ASTNode.getRoot getRoot() will return the compilation unit
(assuming an unmodified AST) reflecting the fact that these nodes
are property located in the AST for the compilation unit.
However, for other comment nodes,
ASTNode.getParent getParent() will return null , and
ASTNode.getRoot getRoot() will return the comment node itself, indicating that these comment nodes
are not directly connected to the AST for the compilation unit. The
Comment.getAlternateRoot Comment.getAlternateRoot method provides a way to navigate from a comment to its compilation
unit.
A note on visitors: The only comment nodes that will be visited when
visiting a compilation unit are the doc comments parented by body
declarations. To visit all comments in normal reading order, iterate
over the comment table and call
ASTNode.accept(ASTVisitor) accept on each element.
Clients cannot modify the resulting list.
an unmodifiable list of comments in increasing order of sourcestart position, or null if comment informationfor this compilation unit is not available See Also: ASTParser since: 3.0 |
getCommentMapper | DefaultCommentMapper getCommentMapper()(Code) | | Returns the internal comment mapper.
the comment mapper, or null if none. since: 3.0 |
getExtendedStartPosition | public int getExtendedStartPosition(ASTNode node)(Code) | | Returns the extended start position of the given node. Unlike
ASTNode.getStartPosition and
ASTNode.getLength ,
the extended source range may include comments and whitespace
immediately before or after the normal source range for the node.
Parameters: node - the node the 0-based character index, or -1 if no source position information is recorded for this node See Also: CompilationUnit.getExtendedLength(ASTNode) since: 3.0 |
getJavaElement | public IJavaElement getJavaElement()(Code) | | The Java element (an org.eclipse.jdt.core.ICompilationUnit or an org.eclipse.jdt.core.IClassFile )
this compilation unit was created from, or null if it was not created from a Java element.
the Java element this compilation unit was created from, or null if none since: 3.1 See Also: CompilationUnit.getTypeRoot() |
getLineNumber | public int getLineNumber(int position)(Code) | | Returns the line number corresponding to the given source character
position in the original source string. The initial line of the
compilation unit is numbered 1, and each line extends through the
last character of the end-of-line delimiter. The very last line extends
through the end of the source string and has no line delimiter.
For example, the source string class A\n{\n} has 3 lines
corresponding to inclusive character ranges [0,7], [8,9], and [10,10].
Returns -1 for a character position that does not correspond to any
source line, or -2 if no line number information is available for this
compilation unit.
Parameters: position - a 0-based character position, possiblynegative or out of range the 1-based line number, or -1 if the characterposition does not correspond to a source line in the originalsource file or -2 if line number information is not known for thiscompilation unit See Also: ASTParser since: 3.2 |
getMessages | public Message[] getMessages()(Code) | | Returns the list of messages reported by the compiler during the parsing
or the type checking of this compilation unit. This list might be a subset of
errors detected and reported by a Java compiler.
This list of messages is suitable for simple clients that do little
more than log the messages or display them to the user. Clients that
need further details should call getProblems to get
compiler problem objects.
the list of messages, possibly empty See Also: CompilationUnit.getProblems() See Also: ASTParser |
getNodeType0 | final int getNodeType0()(Code) | | |
getPackage | public PackageDeclaration getPackage()(Code) | | Returns the node for the package declaration of this compilation
unit, or null if this compilation unit is in the
default package.
the package declaration node, or null if none |
getPosition | public int getPosition(int line, int column)(Code) | | Given a line number and column number, returns the corresponding
position in the original source string.
Returns -2 if no line number information is available for this
compilation unit.
Returns the total size of the source string if line
is greater than the actual number lines in the unit.
Returns -1 if column is less than 0,
or the position of the last character of the line if column
is beyond the legal range, or the given line number is less than one.
Parameters: line - the one-based line number Parameters: column - the zero-based column number the 0-based character position in the source string; -2 if line/column number information is not known for this compilation unit or -1 the inputs are not valid since: 3.2 |
getProblems | public IProblem[] getProblems()(Code) | | Returns the list of detailed problem reports noted by the compiler
during the parsing or the type checking of this compilation unit. This
list might be a subset of errors detected and reported by a Java
compiler.
Simple clients that do little more than log the messages or display
them to the user should probably call getMessages instead.
the list of detailed problem objects, possibly empty See Also: CompilationUnit.getMessages() See Also: ASTParser since: 2.1 |
imports | public List imports()(Code) | | Returns the live list of nodes for the import declarations of this
compilation unit, in order of appearance.
the live list of import declaration nodes(elementType: ImportDeclaration ) |
initCommentMapper | void initCommentMapper(Scanner scanner)(Code) | | Initializes the internal comment mapper with the given
scanner.
Parameters: scanner - the scanner since: 3.0 |
internalStructuralPropertiesForType | final List internalStructuralPropertiesForType(int apiLevel)(Code) | | |
lastTrailingCommentIndex | public int lastTrailingCommentIndex(ASTNode node)(Code) | | Return the index in the whole comments list
CompilationUnit.getCommentList() of the last trailing comments associated with the given node.
Parameters: node - the node 0-based index of last trailing comment or -1 if node has noassociated comment after its end position. since: 3.2 |
lineNumber | public int lineNumber(int position)(Code) | | Returns the line number corresponding to the given source character
position in the original source string. The initial line of the
compilation unit is numbered 1, and each line extends through the
last character of the end-of-line delimiter. The very last line extends
through the end of the source string and has no line delimiter.
For example, the source string class A\n{\n} has 3 lines
corresponding to inclusive character ranges [0,7], [8,9], and [10,10].
Returns 1 for a character position that does not correspond to any
source line, or if no line number information is available for this
compilation unit.
Parameters: position - a 0-based character position, possiblynegative or out of range the 1-based line number, or 1 if the characterposition does not correspond to a source line in the originalsource file or if line number information is not known for thiscompilation unit See Also: ASTParser See Also: CompilationUnit.getLineNumber(int) See Also: |
propertyDescriptors | public static List propertyDescriptors(int apiLevel)(Code) | | Returns a list of structural property descriptors for this node type.
Clients must not modify the result.
Parameters: apiLevel - the API level; one of theAST.JLS* constants a list of property descriptors (element type: StructuralPropertyDescriptor) since: 3.0 |
recordModifications | public void recordModifications()(Code) | | Enables the recording of changes to this compilation
unit and its descendents. The compilation unit must have
been created by ASTParser and still be in
its original state. Once recording is on,
arbitrary changes to the subtree rooted at this compilation
unit are recorded internally. Once the modification has
been completed, call rewrite to get an object
representing the corresponding edits to the original
source code string.
exception: IllegalArgumentException - if this compilation unit ismarked as unmodifiable, or if this compilation unit has already been tampered with, or recording has already been enabled since: 3.0 |
rewrite | public TextEdit rewrite(IDocument document, Map options)(Code) | | Converts all modifications recorded for this compilation
unit into an object representing the corresponding text
edits to the given document containing the original source
code for this compilation unit.
The compilation unit must have been created by
ASTParser from the source code string in the
given document, and recording must have been turned
on with a prior call to recordModifications
while the AST was still in its original state.
Calling this methods does not discard the modifications
on record. Subsequence modifications made to the AST
are added to the ones already on record. If this method
is called again later, the resulting text edit object will
accurately reflect the net cumulative affect of all those
changes.
Parameters: document - original document containing source codefor this compilation unit Parameters: options - the table of formatter options(key type: String ; value type: String );or null to use the standard global optionsorg.eclipse.jdt.core.JavaCore.getOptions JavaCore.getOptions(). text edit object describing the changes to thedocument corresponding to the recorded AST modifications exception: IllegalArgumentException - if the document passed isnull or does not correspond to this AST exception: IllegalStateException - if recordModifications was not called to enable recording See Also: CompilationUnit.recordModifications() since: 3.0 |
setCommentTable | void setCommentTable(Comment[] commentTable)(Code) | | Sets the list of the comments encountered while parsing
this compilation unit.
Parameters: commentTable - a list of comments in increasing orderof source start position, or null if commentinformation for this compilation unit is not available exception: IllegalArgumentException - if the comment table isnot in increasing order of source position See Also: CompilationUnit.getCommentList() See Also: ASTParser since: 3.0 |
setLineEndTable | void setLineEndTable(int[] lineEndTable)(Code) | | Sets the line end table for this compilation unit.
If lineEndTable[i] == p then line number i+1
ends at character position p . Except for the last line, the
positions are that of (the last character of) the line delimiter.
For example, the source string A\nB\nC has
line end table {1, 3, 4}.
Parameters: lineEndTable - the line end table |
setPackage | public void setPackage(PackageDeclaration pkgDecl)(Code) | | Sets or clears the package declaration of this compilation unit
node to the given package declaration node.
Parameters: pkgDecl - the new package declaration node, or null if this compilation unit does not have a packagedeclaration (that is in the default package) exception: IllegalArgumentException - if:- the node belongs to a different AST
- the node already has a parent
|
setProblems | void setProblems(IProblem[] problems)(Code) | | Sets the array of problems reported by the compiler during the parsing or
name resolution of this compilation unit.
Parameters: problems - the list of problems |
types | public List types()(Code) | | Returns the live list of nodes for the top-level type declarations of this
compilation unit, in order of appearance.
Note that in JLS3, the types may include both enum declarations
and annotation type declarations introduced in J2SE 5.
For JLS2, the elements are always TypeDeclaration .
the live list of top-level type declarationnodes (elementType: AbstractTypeDeclaration ) |
Methods inherited from org.eclipse.jdt.core.dom.ASTNode | final public void accept(ASTVisitor visitor)(Code)(Java Doc) abstract void accept0(ASTVisitor visitor)(Code)(Java Doc) final void acceptChild(ASTVisitor visitor, ASTNode child)(Code)(Java Doc) final void acceptChildren(ASTVisitor visitor, ASTNode.NodeList children)(Code)(Java Doc) static void addProperty(StructuralPropertyDescriptor property, List propertyList)(Code)(Java Doc) void appendDebugString(StringBuffer buffer)(Code)(Java Doc) final void appendPrintString(StringBuffer buffer)(Code)(Java Doc) final void checkModifiable()(Code)(Java Doc) static void checkNewChild(ASTNode node, ASTNode newChild, boolean cycleCheck, Class nodeType)(Code)(Java Doc) final ASTNode clone(AST target)(Code)(Java Doc) abstract ASTNode clone0(AST target)(Code)(Java Doc) public static ASTNode copySubtree(AST target, ASTNode node)(Code)(Java Doc) public static List copySubtrees(AST target, List nodes)(Code)(Java Doc) static void createPropertyList(Class nodeClass, List propertyList)(Code)(Java Doc) final public void delete()(Code)(Java Doc) final public boolean equals(Object obj)(Code)(Java Doc) final public AST getAST()(Code)(Java Doc) final public int getFlags()(Code)(Java Doc) final public int getLength()(Code)(Java Doc) final public StructuralPropertyDescriptor getLocationInParent()(Code)(Java Doc) final public int getNodeType()(Code)(Java Doc) abstract int getNodeType0()(Code)(Java Doc) final public ASTNode getParent()(Code)(Java Doc) final public Object getProperty(String propertyName)(Code)(Java Doc) final public ASTNode getRoot()(Code)(Java Doc) final public int getStartPosition()(Code)(Java Doc) final public Object getStructuralProperty(StructuralPropertyDescriptor property)(Code)(Java Doc) final public int hashCode()(Code)(Java Doc) List internalGetChildListProperty(ChildListPropertyDescriptor property)(Code)(Java Doc) boolean internalGetSetBooleanProperty(SimplePropertyDescriptor property, boolean get, boolean value)(Code)(Java Doc) ASTNode internalGetSetChildProperty(ChildPropertyDescriptor property, boolean get, ASTNode child)(Code)(Java Doc) int internalGetSetIntProperty(SimplePropertyDescriptor property, boolean get, int value)(Code)(Java Doc) Object internalGetSetObjectProperty(SimplePropertyDescriptor property, boolean get, Object value)(Code)(Java Doc) abstract List internalStructuralPropertiesForType(int apiLevel)(Code)(Java Doc) abstract int memSize()(Code)(Java Doc) public static Class nodeClassForType(int nodeType)(Code)(Java Doc) final void postLazyInit(ASTNode newChild, ChildPropertyDescriptor property)(Code)(Java Doc) final void postReplaceChild(ASTNode oldChild, ASTNode newChild, ChildPropertyDescriptor property)(Code)(Java Doc) final void postValueChange(SimplePropertyDescriptor property)(Code)(Java Doc) final void preLazyInit()(Code)(Java Doc) final void preReplaceChild(ASTNode oldChild, ASTNode newChild, ChildPropertyDescriptor property)(Code)(Java Doc) final void preValueChange(SimplePropertyDescriptor property)(Code)(Java Doc) final public Map properties()(Code)(Java Doc) static List reapPropertyList(List propertyList)(Code)(Java Doc) final public void setFlags(int flags)(Code)(Java Doc) final void setParent(ASTNode parent, StructuralPropertyDescriptor property)(Code)(Java Doc) final public void setProperty(String propertyName, Object data)(Code)(Java Doc) final public void setSourceRange(int startPosition, int length)(Code)(Java Doc) final public void setStructuralProperty(StructuralPropertyDescriptor property, Object value)(Code)(Java Doc) final String standardToString()(Code)(Java Doc) static int stringSize(String string)(Code)(Java Doc) final public List structuralPropertiesForType()(Code)(Java Doc) final public int subtreeBytes()(Code)(Java Doc) final public boolean subtreeMatch(ASTMatcher matcher, Object other)(Code)(Java Doc) abstract boolean subtreeMatch0(ASTMatcher matcher, Object other)(Code)(Java Doc) final void supportedOnlyIn2()(Code)(Java Doc) final public String toString()(Code)(Java Doc) abstract int treeSize()(Code)(Java Doc) final void unsupportedIn2()(Code)(Java Doc)
|
|
|