Class ASTImportDeclaration
- 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.ASTImportDeclaration
-
- All Implemented Interfaces:
GenericNode<JavaNode>
,JjtreeNode<JavaNode>
,Node
,TextAvailableNode
,ASTTopLevelDeclaration
,JavaNode
,Reportable
public final class ASTImportDeclaration extends AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode> implements ASTTopLevelDeclaration
Represents an import declaration in a Java file.ImportDeclaration ::= "import" ("static" | "module")? Name ( "." "*" )? ";"
- See Also:
- JLS 7.5
-
-
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)
String
getImage()
@NonNull String
getImportedName()
Returns the full name of the import.String
getImportedSimpleName()
Returns the simple name of the type or method imported by this declaration.String
getPackageName()
Returns the "package" prefix of the imported name.@NonNull ASTCompilationUnit
getRoot()
@NonNull JSymbolTable
getSymbolTable()
Returns the symbol table for the program point represented by this node.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
isImportOnDemand()
Returns true if this is an import-on-demand declaration, aka "wildcard import".boolean
isModuleImport()
If this import declaration imports all the public top-level classes and interfaces of a module.boolean
isStatic()
Returns true if this is a static import.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, 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, getRoot, getSymbolTable, getTypeSystem
-
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, getAstInfo, getBeginColumn, getBeginLine, getEndColumn, getEndLine, 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
-
isImportOnDemand
public boolean isImportOnDemand()
Returns true if this is an import-on-demand declaration, aka "wildcard import".- If this is a static import, then the imported names are those of the accessible static members of the named type;
- Otherwise, the imported names are the names of the accessible types of the named type or named package.
-
isStatic
public boolean isStatic()
Returns true if this is a static import. If this import is not on-demand,getImportedSimpleName()
returns the name of the imported member.
-
getImportedName
public @NonNull String getImportedName()
Returns the full name of the import. For on-demand imports, this is the name without the final dot and asterisk. Formodule declaration imports
, this is the name of the module.
-
getImage
public String getImage()
- Specified by:
getImage
in interfaceNode
- Overrides:
getImage
in classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
getImportedSimpleName
public String getImportedSimpleName()
Returns the simple name of the type or method imported by this declaration. For on-demand imports, returnsnull
.For
module import declarations
, this returnsnull
. UsegetImportedName()
for the module name of a module import declaration.
-
getPackageName
public String getPackageName()
Returns the "package" prefix of the imported name. For type imports, including on-demand imports, this is really the package name of the imported type(s). For static imports, this is actually the qualified name of the enclosing type, including the type name.For
module import declarations
, this returnsnull
. UsegetImportedName()
for the module name of a module import declaration.
-
acceptVisitor
protected <P,R> R acceptVisitor(JavaVisitor<? super P,? extends R> visitor, P data)
-
isModuleImport
@Experimental public boolean isModuleImport()
If this import declaration imports all the public top-level classes and interfaces of a module.- Returns:
true
if this is a module declaration import- Since:
- 7.5.0
- See Also:
- JEP 476: Module Import Declarations (Preview) (Java 23)
-
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>
-
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
-
getRoot
public final @NonNull ASTCompilationUnit getRoot()
-
getXPathNodeName
public final String getXPathNodeName()
- Specified by:
getXPathNodeName
in interfaceNode
-
-