Class ASTCompilationUnit

  • All Implemented Interfaces:
    net.sourceforge.pmd.lang.ast.impl.GenericNode<JavaNode>, net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode<JavaNode>, net.sourceforge.pmd.lang.ast.Node, net.sourceforge.pmd.lang.ast.RootNode, net.sourceforge.pmd.lang.ast.TextAvailableNode, JavaNode, net.sourceforge.pmd.reporting.Reportable

    public final class ASTCompilationUnit
    extends net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
    implements net.sourceforge.pmd.lang.ast.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>
      R
      acceptVisitor​(net.sourceforge.pmd.lang.ast.AstVisitor<? super P,​? extends R> visitor, P data)  
      protected <P,​R>
      R
      acceptVisitor​(JavaVisitor<? super P,​? extends R> visitor, P data)  
      protected void addChild​(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)  
      protected void enlargeLeft​(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken child)  
      net.sourceforge.pmd.lang.ast.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.
      net.sourceforge.pmd.lang.ast.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​(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)  
      protected void setImage​(String image)  
      protected void setLastToken​(net.sourceforge.pmd.lang.ast.impl.javacc.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 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.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
    • Method Detail

      • getAstInfo

        public net.sourceforge.pmd.lang.ast.AstInfo<ASTCompilationUnit> getAstInfo()
        Specified by:
        getAstInfo in interface net.sourceforge.pmd.lang.ast.Node
        Specified by:
        getAstInfo in interface net.sourceforge.pmd.lang.ast.RootNode
      • 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 net.sourceforge.pmd.lang.ast.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 interface JavaNode
      • 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 interface JavaNode
      • 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 class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • acceptVisitor

        public final <P,​R> R acceptVisitor​(net.sourceforge.pmd.lang.ast.AstVisitor<? super P,​? extends R> visitor,
                                                 P data)
        Specified by:
        acceptVisitor in interface net.sourceforge.pmd.lang.ast.Node
      • addChild

        protected void addChild​(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child,
                                int index)
        Overrides:
        addChild in class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<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 class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • removeChildAtIndex

        protected void removeChildAtIndex​(int childIndex)
        Overrides:
        removeChildAtIndex in class net.sourceforge.pmd.lang.ast.impl.AbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • setImage

        protected void setImage​(String image)
        Overrides:
        setImage in class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • setFirstToken

        protected void setFirstToken​(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)
        Overrides:
        setFirstToken in class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • setLastToken

        protected void setLastToken​(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)
        Overrides:
        setLastToken in class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • enlargeLeft

        protected void enlargeLeft​(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken child)
        Overrides:
        enlargeLeft in class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<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 class net.sourceforge.pmd.lang.ast.impl.AbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,​JavaNode>
      • getRoot

        public final @NonNull ASTCompilationUnit getRoot()
        Specified by:
        getRoot in interface JavaNode
        Specified by:
        getRoot in interface net.sourceforge.pmd.lang.ast.Node
      • getXPathNodeName

        public final String getXPathNodeName()
        Specified by:
        getXPathNodeName in interface net.sourceforge.pmd.lang.ast.Node