## Uses of Class
org.eclipse.jdt.core.dom.ASTNode

Packages that use ASTNode
org.eclipse.jdt.apt.core.util: This package contains miscellaneous APIs related to Java annotation processing.
org.eclipse.jdt.core.dom: The Java DOM/AST is the set of classes that model the source code of a Java program as a structured document.
org.eclipse.jdt.core.dom.rewrite: The Java DOM/AST rewrite is the set of classes that are used to make changes to an existing DOM/AST tree.
org.eclipse.jdt.core.manipulation: Application programming interface for the JDT core manipulation plug-in class.
org.eclipse.jdt.ui.text.java: Application programming interfaces for interaction with the Eclipse Java User Interface.

### Uses of ASTNode in org.eclipse.jdt.apt.core.util

Methods in org.eclipse.jdt.apt.core.util with parameters of type ASTNode
`void` EclipseMessager.`printError(ASTNode node, String msg)` Print an error message on the given AST node.
`void` EclipseMessager.`printNotice(ASTNode node, String msg)` Print a notice on the given AST node.
`void` EclipseMessager.`printWarning(ASTNode node, String msg)` Print a warning on the given AST node.

### Uses of ASTNode in org.eclipse.jdt.core.dom

Subclasses of ASTNode in org.eclipse.jdt.core.dom
`class` `AbstractTypeDeclaration` Abstract subclass for type declaration, enum declaration, and annotation type declaration AST node types.
`class` `AnnotatableType` Abstract base class of AST nodes that represent an annotatable type (added in JLS8 API).
`class` `Annotation` Abstract base class of AST nodes that represent annotations.
`class` `AnnotationTypeDeclaration` Annotation type declaration AST node type (added in JLS3 API).
`class` `AnnotationTypeMemberDeclaration` Annotation type member declaration AST node type (added in JLS3 API).
`class` `AnonymousClassDeclaration` Anonymous class declaration AST node type.
`class` `ArrayAccess` Array access expression AST node type.
`class` `ArrayCreation` Array creation expression AST node type.
`class` `ArrayInitializer` Array initializer AST node type.
`class` `ArrayType` Type node for an array type.
`class` `AssertStatement` Assert statement AST node type.
`class` `Assignment` Assignment expression AST node type.
`class` `Block` Block statement AST node type.
`class` `BlockComment` Block comment AST node type.
`class` `BodyDeclaration` Abstract base class of all AST nodes that represent body declarations that may appear in the body of some kind of class or interface declaration, including anonymous class declarations, enumeration declarations, and enumeration constant declarations.
`class` `BooleanLiteral` Boolean literal node.
`class` `BreakStatement` Break statement AST node type.
`class` `CastExpression` Cast expression AST node type.
`class` `CatchClause` Catch clause AST node type.
`class` `CharacterLiteral` Character literal nodes.
`class` `ClassInstanceCreation` Class instance creation expression AST node type.
`class` `Comment` Abstract base class for all AST nodes that represent comments.
`class` `CompilationUnit` Java compilation unit AST node type.
`class` `ConditionalExpression` Conditional expression AST node type.
`class` `ConstructorInvocation` Alternate constructor invocation statement AST node type.
`class` `ContinueStatement` Continue statement AST node type.
`class` `CreationReference` Creation reference expression AST node type (added in JLS8 API).
`class` `Dimension` AST node for an array dimension (added in JLS8 API).
`class` `DoStatement` Do statement AST node type.
`class` `EmptyStatement` Null statement AST node type.
`class` `EnhancedForStatement` Enhanced For statement AST node type (added in JLS3 API).
`class` `EnumConstantDeclaration` Enumeration constant declaration AST node type (added in JLS3 API).
`class` `EnumDeclaration` Enum declaration AST node type (added in JLS3 API).
`class` `ExportsDirective` Exports directive AST node type (added in JLS9 API).
`class` `Expression` Abstract base class of AST nodes that represent expressions.
`class` `ExpressionMethodReference` Expression method reference AST node type (added in JLS8 API).
`class` `ExpressionStatement` Expression statement AST node type.
`class` `FieldAccess` Field access expression AST node type.
`class` `FieldDeclaration` Field declaration node type.
`class` `ForStatement` For statement AST node type.
`class` `IfStatement` If statement AST node type.
`class` `ImportDeclaration` Import declaration AST node type.
`class` `InfixExpression` Infix expression AST node type.
`class` `Initializer` Static or instance initializer AST node type.
`class` `InstanceofExpression` Instanceof expression AST node type.
`class` `IntersectionType` Type node for an intersection type in a cast expression (added in JLS8 API).
`class` `Javadoc` AST node for a Javadoc-style doc comment.
`class` `LabeledStatement` Labeled statement AST node type.
`class` `LambdaExpression` Lambda expression AST node type (added in JLS8 API).
`class` `LineComment` End-of-line comment AST node type.
`class` `MarkerAnnotation` Marker annotation node (added in JLS3 API).
`class` `MemberRef` AST node for a member reference within a doc comment (`Javadoc`).
`class` `MemberValuePair` Member value pair node (added in JLS3 API).
`class` `MethodDeclaration` Method declaration AST node type.
`class` `MethodInvocation` Method invocation expression AST node type.
`class` `MethodRef` AST node for a method or constructor reference within a doc comment (`Javadoc`).
`class` `MethodReference` Abstract base class of all AST node types that represent a method reference expression (added in JLS8 API).
`class` `MethodRefParameter` AST node for a parameter within a method reference (`MethodRef`).
`class` `Modifier` Modifier node.
`class` `ModuleDeclaration` Module declaration AST node type representing the module descriptor file (added in JLS9 API).
`class` `ModuleDirective` Abstract base class of AST nodes that represent module directives (added in JLS9 API).
`class` `ModuleModifier` Module Modifier node - represents the modifiers for the requires directive in module declaration (added in JLS9 API).
`class` `ModulePackageAccess` Abstract base class of AST nodes that represent exports and opens directives (added in JLS9 API).
`class` `Name` Abstract base class for all AST nodes that represent names.
`class` `NameQualifiedType` Node for a name-qualified type (added in JLS8 API).
`class` `NormalAnnotation` Normal annotation node (added in JLS3 API).
`class` `NullLiteral` Null literal node.
`class` `NumberLiteral` Number literal nodes.
`class` `OpensDirective` Opens directive AST node type (added in JLS9 API).
`class` `PackageDeclaration` Package declaration AST node type.
`class` `ParameterizedType` Type node for a parameterized type (added in JLS3 API).
`class` `ParenthesizedExpression` Parenthesized expression AST node type.
`class` `PostfixExpression` Postfix expression AST node type.
`class` `PrefixExpression` Prefix expression AST node type.
`class` `PrimitiveType` Primitive type nodes.
`class` `ProvidesDirective` Provides directive AST node type (added in JLS9 API).
`class` `QualifiedName` AST node for a qualified name.
`class` `QualifiedType` Type node for a qualified type (added in JLS3 API).
`class` `RequiresDirective` Requires directive AST node type (added in JLS9 API).
`class` `ReturnStatement` Return statement AST node type.
`class` `SimpleName` AST node for a simple name.
`class` `SimpleType` Type node for a named class type, a named interface type, or a type variable.
`class` `SingleMemberAnnotation` Single member annotation node (added in JLS3 API).
`class` `SingleVariableDeclaration` Single variable declaration AST node type.
`class` `Statement` Abstract base class of AST nodes that represent statements.
`class` `StringLiteral` String literal nodes.
`class` `SuperConstructorInvocation` Super constructor invocation statement AST node type.
`class` `SuperFieldAccess` Simple or qualified "super" field access expression AST node type.
`class` `SuperMethodInvocation` Simple or qualified "super" method invocation expression AST node type.
`class` `SuperMethodReference` Super method reference AST node type (added in JLS8 API).
`class` `SwitchCase` Switch case AST node type.
`class` `SwitchStatement` Switch statement AST node type.
`class` `SynchronizedStatement` Synchronized statement AST node type.
`class` `TagElement` AST node for a tag within a doc comment.
`class` `TextElement` AST node for a text element within a doc comment.
`class` `ThisExpression` Simple or qualified "this" AST node type.
`class` `ThrowStatement` Throw statement AST node type.
`class` `TryStatement` Try statement AST node type.
`class` `Type` Abstract base class of all type reference AST node types.
`class` `TypeDeclaration` Type declaration AST node type.
`class` `TypeDeclarationStatement` Local type declaration statement AST node type.
`class` `TypeLiteral` Type literal AST node type.
`class` `TypeMethodReference` Type method reference expression AST node type (added in JLS8 API).
`class` `TypeParameter` Type parameter declaration node (added in JLS3 API).
`class` `UnionType` Type node for an union type (added in JLS4 API).
`class` `UsesDirective` Uses directive AST node type (added in JLS9 API).
`class` `VariableDeclaration` Abstract base class of all AST node types that declare a single variable.
`class` `VariableDeclarationExpression` Local variable declaration expression AST node type.
`class` `VariableDeclarationFragment` Variable declaration fragment AST node type, used in field declarations, local variable declarations, `ForStatement` initializers, and `LambdaExpression` parameters.
`class` `VariableDeclarationStatement` Local variable declaration statement AST node type.
`class` `WhileStatement` While statement AST node type.
`class` `WildcardType` Type node for a wildcard type (added in JLS3 API).

Methods in org.eclipse.jdt.core.dom that return ASTNode
`protected ASTNode` ModulePackageAccess.`cloneHelper(AST target, ModulePackageAccess result)`
`static ASTNode` ASTNode.`copySubtree(AST target, ASTNode node)` Returns a deep copy of the subtree of AST nodes rooted at the given node.
`ASTNode` ASTParser.`createAST(IProgressMonitor monitor)` Creates an abstract syntax tree.
`ASTNode` AST.`createInstance(Class nodeClass)` Creates an unparented node of the given node class (non-abstract subclass of `ASTNode`).
`ASTNode` AST.`createInstance(int nodeType)` Creates an unparented node of the given node type.
`ASTNode` CompilationUnit.`findDeclaringNode(IBinding binding)` Finds the corresponding AST node in the given compilation unit from which the given binding originated.
`ASTNode` CompilationUnit.`findDeclaringNode(String key)` Finds the corresponding AST node in the given compilation unit from which the binding with the given key originated.
`ASTNode` Comment.`getAlternateRoot()` Returns the root AST node that this comment occurs within, or `null` if none (or not recorded).
`ASTNode` LambdaExpression.`getBody()` Returns the body of this lambda expression.
`ASTNode` NodeFinder.`getCoveredNode()` If the AST contains nodes whose range is equal to the selection, returns the innermost of those nodes.
`ASTNode` NodeFinder.`getCoveringNode()` Returns the innermost node that fully contains the selection.
`ASTNode` ASTNode.`getParent()` Returns this node's parent node, or `null` if this is the root node.
`ASTNode` ASTNode.`getRoot()` Returns the root node at or above this node; returns this node if it is a root.
`static ASTNode` NodeFinder.`perform(ASTNode root, int start, int length)` Maps a selection to an ASTNode, where the selection is defined using a start and a length.
`static ASTNode` NodeFinder.`perform(ASTNode root, int start, int length, ITypeRoot source)` Maps a selection to an ASTNode, where the selection is given by a start and a length.
`static ASTNode` NodeFinder.`perform(ASTNode root, ISourceRange range)` Maps a selection to an ASTNode, where the selection is defined using a source range.

Methods in org.eclipse.jdt.core.dom with parameters of type ASTNode
`static ASTNode` ASTNode.`copySubtree(AST target, ASTNode node)` Returns a deep copy of the subtree of AST nodes rooted at the given node.
`int` CompilationUnit.`firstLeadingCommentIndex(ASTNode node)` Return the index in the whole comments list `CompilationUnit.getCommentList()` of the first leading comments associated with the given node.
`int` CompilationUnit.`getExtendedLength(ASTNode node)` Returns the extended source length of the given node.
`int` CompilationUnit.`getExtendedStartPosition(ASTNode node)` Returns the extended start position of the given node.
`int` CompilationUnit.`lastTrailingCommentIndex(ASTNode node)` Return the index in the whole comments list `CompilationUnit.getCommentList()` of the last trailing comments associated with the given node.
`static ASTNode` NodeFinder.`perform(ASTNode root, int start, int length)` Maps a selection to an ASTNode, where the selection is defined using a start and a length.
`static ASTNode` NodeFinder.`perform(ASTNode root, int start, int length, ITypeRoot source)` Maps a selection to an ASTNode, where the selection is given by a start and a length.
`static ASTNode` NodeFinder.`perform(ASTNode root, ISourceRange range)` Maps a selection to an ASTNode, where the selection is defined using a source range.
`void` ASTVisitor.`postVisit(ASTNode node)` Visits the given AST node following the type-specific visit (after `endVisit`).
`void` ASTVisitor.`preVisit(ASTNode node)` Visits the given AST node prior to the type-specific visit (before `visit`).
`boolean` ASTVisitor.`preVisit2(ASTNode node)` Visits the given AST node prior to the type-specific visit (before `visit`).
`void` Comment.`setAlternateRoot(ASTNode root)` Returns the root AST node that this comment occurs within, or `null` if none (or not recorded).
`void` LambdaExpression.`setBody(ASTNode body)` Sets the body of this lambda expression.

Constructors in org.eclipse.jdt.core.dom with parameters of type ASTNode
Constructor and Description
`NodeFinder(ASTNode root, int start, int length)` Instantiate a new node finder using the given root node, the given start and the given length.

### Uses of ASTNode in org.eclipse.jdt.core.dom.rewrite

Methods in org.eclipse.jdt.core.dom.rewrite that return ASTNode
`ASTNode` ASTRewrite.`createCopyTarget(ASTNode node)` Creates and returns a placeholder node for a true copy of the given node.
`ASTNode` ListRewrite.`createCopyTarget(ASTNode first, ASTNode last)` Creates and returns a placeholder node for a true copy of a range of nodes of the current list.
`ASTNode` ASTRewrite.`createGroupNode(ASTNode[] targetNodes)` Creates and returns a node that represents a sequence of nodes.
`ASTNode` ASTRewrite.`createMoveTarget(ASTNode node)` Creates and returns a placeholder node for the new locations of the given node.
`ASTNode` ListRewrite.`createMoveTarget(ASTNode first, ASTNode last)` Creates and returns a placeholder node for a move of a range of nodes of the current list.
`ASTNode` ListRewrite.`createMoveTarget(ASTNode first, ASTNode last, ASTNode replacingNode, TextEditGroup editGroup)` Creates and returns a placeholder node for a move of a range of nodes of the current list.
`ASTNode` ASTRewrite.`createStringPlaceholder(String code, int nodeType)` Creates and returns a placeholder node for a source string that is to be inserted into the output document at the position corresponding to the placeholder.
`ASTNode` ListRewrite.`getParent()` Returns the parent of the list for which this list rewriter was created.

Methods in org.eclipse.jdt.core.dom.rewrite with parameters of type ASTNode
`TargetSourceRangeComputer.SourceRange` TargetSourceRangeComputer.`computeSourceRange(ASTNode node)` Returns the target source range of the given node.
`ASTNode` ASTRewrite.`createCopyTarget(ASTNode node)` Creates and returns a placeholder node for a true copy of the given node.
`ASTNode` ListRewrite.`createCopyTarget(ASTNode first, ASTNode last)` Creates and returns a placeholder node for a true copy of a range of nodes of the current list.
`ASTNode` ASTRewrite.`createGroupNode(ASTNode[] targetNodes)` Creates and returns a node that represents a sequence of nodes.
`ASTNode` ASTRewrite.`createMoveTarget(ASTNode node)` Creates and returns a placeholder node for the new locations of the given node.
`ASTNode` ListRewrite.`createMoveTarget(ASTNode first, ASTNode last)` Creates and returns a placeholder node for a move of a range of nodes of the current list.
`ASTNode` ListRewrite.`createMoveTarget(ASTNode first, ASTNode last, ASTNode replacingNode, TextEditGroup editGroup)` Creates and returns a placeholder node for a move of a range of nodes of the current list.
`Object` ASTRewrite.`get(ASTNode node, StructuralPropertyDescriptor property)` Returns the value of the given property as managed by this rewriter.
`ListRewrite` ASTRewrite.`getListRewrite(ASTNode node, ChildListPropertyDescriptor property)` Creates and returns a new rewriter for describing modifications to the given list property of the given node.
`void` ListRewrite.`insertAfter(ASTNode node, ASTNode previousElement, TextEditGroup editGroup)` Inserts the given node into the list after the given element.
`void` ListRewrite.`insertAt(ASTNode node, int index, TextEditGroup editGroup)` Inserts the given node into the list at the given index.
`void` ListRewrite.`insertBefore(ASTNode node, ASTNode nextElement, TextEditGroup editGroup)` Inserts the given node into the list before the given element.
`void` ListRewrite.`insertFirst(ASTNode node, TextEditGroup editGroup)` Inserts the given node into the list at the start of the list.
`void` ListRewrite.`insertLast(ASTNode node, TextEditGroup editGroup)` Inserts the given node into the list at the end of the list.
`void` ASTRewrite.`remove(ASTNode node, TextEditGroup editGroup)` Removes the given node from its parent in this rewriter.
`void` ListRewrite.`remove(ASTNode node, TextEditGroup editGroup)` Removes the given node from its parent's list property in the rewriter.
`void` ASTRewrite.`replace(ASTNode node, ASTNode replacement, TextEditGroup editGroup)` Replaces the given node in this rewriter.
`void` ListRewrite.`replace(ASTNode node, ASTNode replacement, TextEditGroup editGroup)` Replaces the given node from its parent's list property in the rewriter.
`void` ASTRewrite.`set(ASTNode node, StructuralPropertyDescriptor property, Object value, TextEditGroup editGroup)` Sets the given property of the given node.
`ITrackedNodePosition` ASTRewrite.`track(ASTNode node)` Returns an object that tracks the source range of the given node across the rewrite to its AST.

### Uses of ASTNode in org.eclipse.jdt.core.manipulation

Methods in org.eclipse.jdt.core.manipulation with parameters of type ASTNode
`static void` ImportReferencesCollector.`collect(ASTNode node, IJavaProject project, Region rangeLimit, boolean skipMethodBodies, Collection<SimpleName> resultingTypeImports, Collection<SimpleName> resultingStaticImports)` Collect import statements from an AST node.
`static void` ImportReferencesCollector.`collect(ASTNode node, IJavaProject project, Region rangeLimit, Collection<SimpleName> resultingTypeImports, Collection<SimpleName> resultingStaticImports)` Collect import statements from an AST node.
`protected boolean` ImportReferencesCollector.`visitNode(ASTNode node)`

### Uses of ASTNode in org.eclipse.jdt.ui.text.java

Methods in org.eclipse.jdt.ui.text.java that return ASTNode
`ASTNode` IInvocationContext.`getCoveredNode()` If the AST contains nodes whose range is equal to the selection, returns the innermost of those nodes.
`ASTNode` IProblemLocation.`getCoveredNode(CompilationUnit astRoot)` Convenience method to evaluate the AST node covered by this problem.
`ASTNode` IInvocationContext.`getCoveringNode()` Returns the innermost node that fully contains the selection.
`ASTNode` IProblemLocation.`getCoveringNode(CompilationUnit astRoot)` Convenience method to evaluate the AST node covering this problem.