Class ASTCompilationUnit
- java.lang.Object
-
- net.sourceforge.pmd.lang.ast.impl.AbstractNode<B,N>
-
- net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
- net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit
-
- All Implemented Interfaces:
GenericNode<JavaNode>
,JjtreeNode<JavaNode>
,Node
,RootNode
,TextAvailableNode
,JavaNode
,Reportable
public final class ASTCompilationUnit extends AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode> implements RootNode
The root node of all Java ASTs.CompilationUnit ::= OrdinaryCompilationUnit | SimpleCompilationUnit | ModularCompilationUnit OrdinaryCompilationUnit ::= PackageDeclaration? ImportDeclaration* TypeDeclaration* SimpleCompilationUnit ::= ImportDeclaration* ImplicitClassDeclaration ModularCompilationUnit ::= ImportDeclaration* ModuleDeclaration
-
-
Field Summary
Fields Modifier and Type Field Description protected JSymbolTable
symbolTable
-
Fields inherited from class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode
id
-
Fields inherited from interface net.sourceforge.pmd.lang.ast.Node
COORDS_COMPARATOR
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <P,R>
RacceptVisitor(AstVisitor<? super P,? extends R> visitor, P data)
protected <P,R>
RacceptVisitor(JavaVisitor<? super P,? extends R> visitor, P data)
protected void
addChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)
AstInfo<ASTCompilationUnit>
getAstInfo()
List<JavaComment>
getComments()
@Nullable ASTModuleDeclaration
getModuleDeclaration()
Returns the module declaration, if this is a modular compilation unit.@Nullable ASTPackageDeclaration
getPackageDeclaration()
Returns the package declaration, if there is one.@NonNull String
getPackageName()
Returns the package name of this compilation unit.@NonNull ASTCompilationUnit
getRoot()
@NonNull JSymbolTable
getSymbolTable()
Returns the symbol table for the program point represented by this node.NodeStream<ASTTypeDeclaration>
getTypeDeclarations()
Returns the top-level type declarations declared in this compilation unit.TypeSystem
getTypeSystem()
Returns the type system with which this node was created.String
getXPathNodeName()
protected void
insertChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)
boolean
isSimpleCompilationUnit()
void
jjtClose()
protected void
removeChildAtIndex(int childIndex)
protected void
setChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)
protected void
setFirstToken(JavaccToken token)
protected void
setImage(String image)
protected void
setLastToken(JavaccToken token)
-
Methods inherited from class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode
compareLocation, fitTokensToChildren, getFirstToken, getImage, getLastToken, getTextRegion, jjtOpen, toString
-
Methods inherited from class net.sourceforge.pmd.lang.ast.impl.AbstractNode
children, firstChild, getChild, getIndexInParent, getNumChildren, getParent, getUserMap, remove, setParent
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.impl.GenericNode
ancestors, ancestorsOrSelf, asStream, children, descendants, descendantsOrSelf, getChild, getFirstChild, getLastChild, getNextSibling, getParent, getPreviousSibling
-
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.JavaNode
getEnclosingType
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode
getFirstToken, getLastToken, tokens
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.Node
acceptVisitor, ancestors, children, compareLocation, descendants, firstChild, getBeginColumn, getBeginLine, getEndColumn, getEndLine, getImage, getIndexInParent, getLanguageVersion, getNumChildren, getReportLocation, getTextDocument, getUserMap, getXPathAttributesIterator, getXPathNodeName, hasImageEqualTo, isFindBoundary
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.TextAvailableNode
getOriginalText, getText, getTextRegion
-
-
-
-
Field Detail
-
symbolTable
protected JSymbolTable symbolTable
-
-
Method Detail
-
getComments
public List<JavaComment> getComments()
-
getAstInfo
public AstInfo<ASTCompilationUnit> getAstInfo()
- Specified by:
getAstInfo
in interfaceNode
- Specified by:
getAstInfo
in interfaceRootNode
-
acceptVisitor
protected <P,R> R acceptVisitor(JavaVisitor<? super P,? extends R> visitor, P data)
-
getPackageDeclaration
public @Nullable ASTPackageDeclaration getPackageDeclaration()
Returns the package declaration, if there is one.
-
getPackageName
public @NonNull String getPackageName()
Returns the package name of this compilation unit. If there is no package declaration, then returns the empty string.
-
getTypeDeclarations
public NodeStream<ASTTypeDeclaration> getTypeDeclarations()
Returns the top-level type declarations declared in this compilation unit. This may be empty, eg if this a package-info.java, or a modular compilation unit (but ordinary compilation units may also be empty).
-
getModuleDeclaration
public @Nullable ASTModuleDeclaration getModuleDeclaration()
Returns the module declaration, if this is a modular compilation unit.
-
getSymbolTable
public @NonNull JSymbolTable getSymbolTable()
Description copied from interface:JavaNode
Returns the symbol table for the program point represented by this node.- Specified by:
getSymbolTable
in interfaceJavaNode
-
getTypeSystem
public TypeSystem getTypeSystem()
Description copied from interface:JavaNode
Returns the type system with which this node was created. This is the object responsible for representing types in the compilation unit.- Specified by:
getTypeSystem
in interfaceJavaNode
-
isSimpleCompilationUnit
@Experimental("Implicitly Declared Classes and Instance Main Methods is a Java 22 / Java 23 Preview feature") @NoAttribute public boolean isSimpleCompilationUnit()
-
jjtClose
public void jjtClose()
- Overrides:
jjtClose
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
acceptVisitor
public final <P,R> R acceptVisitor(AstVisitor<? super P,? extends R> visitor, P data)
- Specified by:
acceptVisitor
in interfaceNode
-
addChild
protected void addChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)
- Overrides:
addChild
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
insertChild
protected void insertChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)
- Overrides:
insertChild
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
removeChildAtIndex
protected void removeChildAtIndex(int childIndex)
- Overrides:
removeChildAtIndex
in classAbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setImage
protected void setImage(String image)
- Overrides:
setImage
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setFirstToken
protected void setFirstToken(JavaccToken token)
- Overrides:
setFirstToken
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setLastToken
protected void setLastToken(JavaccToken token)
- Overrides:
setLastToken
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setChild
protected void setChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)
- Overrides:
setChild
in classAbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
getRoot
public final @NonNull ASTCompilationUnit getRoot()
-
getXPathNodeName
public final String getXPathNodeName()
- Specified by:
getXPathNodeName
in interfaceNode
-
-