# Package 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.

See: Description

Interface Summary
IAnnotationBinding: Represents a resolved annotation.
IBinding: A binding represents a named entity in the Java language.
IDocElement: Common marker interface for AST nodes that represent fragments in doc elements.
IExtendedModifier: Common interface for AST nodes that represent modifiers or annotations.
IMemberValuePairBinding: Represents a resolved instance of an annotation's member value pair.
IMethodBinding: A method binding represents a method or constructor of a class or interface.
IModuleBinding: A module binding represents a module (added in JLS9 API).
IPackageBinding: A package binding represents a named or unnamed package.
ITypeBinding: A type binding represents a fully-resolved type.
IVariableBinding: A variable binding represents either a field of a class or interface, or a local variable declaration (including formal parameters, local variables, and exception variables).

Class Summary
AbstractTypeDeclaration: Abstract subclass for type declaration, enum declaration, and annotation type declaration AST node types.
AnnotatableType: Abstract base class of AST nodes that represent an annotatable type (added in JLS8 API).
Annotation: Abstract base class of AST nodes that represent annotations.
AnnotationTypeDeclaration: Annotation type declaration AST node type (added in JLS3 API).
AnnotationTypeMemberDeclaration: Annotation type member declaration AST node type (added in JLS3 API).
AnonymousClassDeclaration: Anonymous class declaration AST node type.
ArrayAccess: Array access expression AST node type.
ArrayCreation: Array creation expression AST node type.
ArrayInitializer: Array initializer AST node type.
ArrayType: Type node for an array type.
AssertStatement: Assert statement AST node type.
Assignment: Assignment expression AST node type.
Assignment.Operator: Assignment operators (typesafe enumeration).
AST: Umbrella owner and abstract syntax tree node factory.
ASTMatcher: Concrete superclass and default implementation of an AST subtree matcher.
ASTNode: Abstract superclass of all Abstract Syntax Tree (AST) node types.
ASTParser: A Java language parser for creating abstract syntax trees (ASTs).
ASTRequestor: An AST requestor handles ASTs for compilation units passed to `ASTParser.createASTs`.
ASTVisitor: A visitor for abstract syntax trees.
Block: Block statement AST node type.
BlockComment: Block comment AST node type.
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.
BooleanLiteral: Boolean literal node.
BreakStatement: Break statement AST node type.
CastExpression: Cast expression AST node type.
CatchClause: Catch clause AST node type.
CharacterLiteral: Character literal nodes.
ChildListPropertyDescriptor: Descriptor for a child list property of an AST node.
ChildPropertyDescriptor: Descriptor for a child property of an AST node.
ClassInstanceCreation: Class instance creation expression AST node type.
Comment: Abstract base class for all AST nodes that represent comments.
CompilationUnit: Java compilation unit AST node type.
ConditionalExpression: Conditional expression AST node type.
ConstructorInvocation: Alternate constructor invocation statement AST node type.
ContinueStatement: Continue statement AST node type.
CreationReference: Creation reference expression AST node type (added in JLS8 API).
Dimension: AST node for an array dimension (added in JLS8 API).
DoStatement: Do statement AST node type.
EmptyStatement: Null statement AST node type.
EnhancedForStatement: Enhanced For statement AST node type (added in JLS3 API).
EnumConstantDeclaration: Enumeration constant declaration AST node type (added in JLS3 API).
EnumDeclaration: Enum declaration AST node type (added in JLS3 API).
ExportsDirective: Exports directive AST node type (added in JLS9 API).
Expression: Abstract base class of AST nodes that represent expressions.
ExpressionMethodReference: Expression method reference AST node type (added in JLS8 API).
ExpressionStatement: Expression statement AST node type.
FieldAccess: Field access expression AST node type.
FieldDeclaration: Field declaration node type.
FileASTRequestor: An AST requestor handles ASTs for compilation units passed to `ASTParser.createASTs`.
ForStatement: For statement AST node type.
IfStatement: If statement AST node type.
ImportDeclaration: Import declaration AST node type.
InfixExpression: Infix expression AST node type.
InfixExpression.Operator: Infix operators (typesafe enumeration).
Initializer: Static or instance initializer AST node type.
InstanceofExpression: Instanceof expression AST node type.
IntersectionType: Type node for an intersection type in a cast expression (added in JLS8 API).
Javadoc: AST node for a Javadoc-style doc comment.
LabeledStatement: Labeled statement AST node type.
LambdaExpression: Lambda expression AST node type (added in JLS8 API).
LineComment: End-of-line comment AST node type.
MarkerAnnotation: Marker annotation node (added in JLS3 API).
MemberRef: AST node for a member reference within a doc comment (`Javadoc`).
MemberValuePair: Member value pair node (added in JLS3 API).
Message: Error message used to report potential errors found during the AST parsing or name resolution.
MethodDeclaration: Method declaration AST node type.
MethodInvocation: Method invocation expression AST node type.
MethodRef: AST node for a method or constructor reference within a doc comment (`Javadoc`).
MethodReference: Abstract base class of all AST node types that represent a method reference expression (added in JLS8 API).
MethodRefParameter: AST node for a parameter within a method reference (`MethodRef`).
Modifier: Modifier node.
Modifier.ModifierKeyword: Modifier keywords (typesafe enumeration).
ModuleDeclaration: Module declaration AST node type representing the module descriptor file (added in JLS9 API).
ModuleDirective: Abstract base class of AST nodes that represent module directives (added in JLS9 API).
ModuleModifier: Module Modifier node - represents the modifiers for the requires directive in module declaration (added in JLS9 API).
ModuleModifier.ModuleModifierKeyword: Module Modifier keywords (typesafe enumeration).
ModulePackageAccess: Abstract base class of AST nodes that represent exports and opens directives (added in JLS9 API).
Name: Abstract base class for all AST nodes that represent names.
NameQualifiedType: Node for a name-qualified type (added in JLS8 API).
NodeFinder: For a given selection range, finds the covered node and the covering node.
NormalAnnotation: Normal annotation node (added in JLS3 API).
NullLiteral: Null literal node.
NumberLiteral: Number literal nodes.
OpensDirective: Opens directive AST node type (added in JLS9 API).
PackageDeclaration: Package declaration AST node type.
ParameterizedType: Type node for a parameterized type (added in JLS3 API).
ParenthesizedExpression: Parenthesized expression AST node type.
PostfixExpression: Postfix expression AST node type.
PostfixExpression.Operator: Postfix operators (typesafe enumeration).
PrefixExpression: Prefix expression AST node type.
PrefixExpression.Operator: Prefix operators (typesafe enumeration).
PrimitiveType: Primitive type nodes.
PrimitiveType.Code: Primitive type codes (typesafe enumeration).
ProvidesDirective: Provides directive AST node type (added in JLS9 API).
QualifiedName: AST node for a qualified name.
QualifiedType: Type node for a qualified type (added in JLS3 API).
RequiresDirective: Requires directive AST node type (added in JLS9 API).
ReturnStatement: Return statement AST node type.
SimpleName: AST node for a simple name.
SimplePropertyDescriptor: Descriptor for a simple property of an AST node.
SimpleType: Type node for a named class type, a named interface type, or a type variable.
SingleMemberAnnotation: Single member annotation node (added in JLS3 API).
SingleVariableDeclaration: Single variable declaration AST node type.
Statement: Abstract base class of AST nodes that represent statements.
StringLiteral: String literal nodes.
StructuralPropertyDescriptor: Abstract base class for property descriptors of AST nodes.
SuperConstructorInvocation: Super constructor invocation statement AST node type.
SuperFieldAccess: Simple or qualified "super" field access expression AST node type.
SuperMethodInvocation: Simple or qualified "super" method invocation expression AST node type.
SuperMethodReference: Super method reference AST node type (added in JLS8 API).
SwitchCase: Switch case AST node type.
SwitchStatement: Switch statement AST node type.
SynchronizedStatement: Synchronized statement AST node type.
TagElement: AST node for a tag within a doc comment.
TextElement: AST node for a text element within a doc comment.
ThisExpression: Simple or qualified "this" AST node type.
ThrowStatement: Throw statement AST node type.
TryStatement: Try statement AST node type.
Type: Abstract base class of all type reference AST node types.
TypeDeclaration: Type declaration AST node type.
TypeDeclarationStatement: Local type declaration statement AST node type.
TypeLiteral: Type literal AST node type.
TypeMethodReference: Type method reference expression AST node type (added in JLS8 API).
TypeParameter: Type parameter declaration node (added in JLS3 API).
UnionType: Type node for an union type (added in JLS4 API).
UsesDirective: Uses directive AST node type (added in JLS9 API).
VariableDeclaration: Abstract base class of all AST node types that declare a single variable.
VariableDeclarationExpression: Local variable declaration expression AST node type.
VariableDeclarationFragment: Variable declaration fragment AST node type, used in field declarations, local variable declarations, `ForStatement` initializers, and `LambdaExpression` parameters.
VariableDeclarationStatement: Local variable declaration statement AST node type.
WhileStatement: While statement AST node type.
WildcardType: Type node for a wildcard type (added in JLS3 API).

## Package org.eclipse.jdt.core.dom Description

The Java DOM/AST is the set of classes that model the source code of a Java program as a structured document.

## Package Specification

This package contains the Java DOM/AST classes. An API for manipulating the source code of a Java program as a structured document. In particular, it provides a full abstract syntax tree for a Java compilation unit, which can be queried for resolved type information, and modified. The principal classes are `AST` `ASTNode`, and `ASTParser`.