Class ASTClassDeclaration
- 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.TextAvailableNode
,Annotatable
,ASTBodyDeclaration
,ASTTopLevelDeclaration
,ASTTypeDeclaration
,JavadocCommentOwner
,JavaNode
,ModifierOwner
,SymbolDeclaratorNode
,TypeNode
,TypeParamOwnerNode
,net.sourceforge.pmd.reporting.Reportable
ClassDeclaration ::=ModifierList
( "class" | "interface" ) <IDENTIFIER>TypeParameters
?ExtendsList
?ImplementsList
?ClassBody
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.sourceforge.pmd.lang.java.ast.ModifierOwner
ModifierOwner.Visibility
-
Field Summary
FieldsFields 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
Modifier and TypeMethodDescriptionfinal <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) @NonNull String
Returns the binary name of this type declaration.@Nullable String
Returns the canonical name of this class, if it exists.Deprecated.net.sourceforge.pmd.lang.document.FileLocation
final @NonNull ASTCompilationUnit
getRoot()
@NonNull String
Returns the simple name of this type declaration.Returns the symbol this node declares.@NonNull JSymbolTable
Returns the symbol table for the program point represented by this node.@NonNull JClassType
Returns the compile-time type of this node.@NonNull JTypeMirror
getTypeMirror
(TypingContext context) Returns the type system with which this node was created.Returns the visibility corresponding to theeffective modifiers
.final String
protected void
insertChild
(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index) boolean
boolean
Returns true if this is an interface type declaration (including annotation types).boolean
Returns true if this is a regular class declaration (not an enum, not a record, not an interface or annotation, not an implicit class).boolean
Returns true if this is a regular interface declaration (not an annotation).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
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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.Annotatable
getAnnotation, isAnnotationPresent, isAnnotationPresent, isAnyAnnotationPresent
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.ASTTypeDeclaration
getBody, getDeclarations, getDeclarations, getEnumConstants, getOperations, getPackageName, getPermitsClause, getRecordComponents, getSuperClassTypeNode, getSuperInterfaceTypeNodes, getSymbol, isAbstract, isAnnotation, isAnonymous, isEnum, isFinal, isLocal, isNested, isRecord, isStatic, isTopLevel, isUnnamedToplevelClass
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.JavadocCommentOwner
getJavadocComment
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.java.ast.ModifierOwner
getDeclaredAnnotations, getEffectiveVisibility, getModifiers, hasExplicitModifiers, hasModifiers, hasVisibility
Methods inherited from interface net.sourceforge.pmd.lang.ast.Node
acceptVisitor, ancestors, children, compareLocation, descendants, firstChild, getAstInfo, getBeginColumn, getBeginLine, getEndColumn, getEndLine, getImage, getIndexInParent, getLanguageVersion, getNumChildren, getTextDocument, getUserMap, getXPathAttributesIterator, getXPathNodeName, hasImageEqualTo
Methods inherited from interface net.sourceforge.pmd.lang.ast.TextAvailableNode
getOriginalText, getText, getTextRegion
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.TypeNode
getTypeMirror
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.TypeParamOwnerNode
getTypeParameters
-
Field Details
-
symbolTable
-
-
Method Details
-
acceptVisitor
-
isInterface
public boolean isInterface()Description copied from interface:ASTTypeDeclaration
Returns true if this is an interface type declaration (including annotation types). This is consistent withClass.isInterface()
. -
isRegularClass
public boolean isRegularClass()Description copied from interface:ASTTypeDeclaration
Returns true if this is a regular class declaration (not an enum, not a record, not an interface or annotation, not an implicit class). Note that egJClassSymbol.isClass()
counts records and enums in, just likeASTTypeDeclaration.isInterface()
counts annotations in. -
isRegularInterface
public boolean isRegularInterface()Description copied from interface:ASTTypeDeclaration
Returns true if this is a regular interface declaration (not an annotation). Note thatASTTypeDeclaration.isInterface()
counts annotations in. -
getPermittedSubclasses
Deprecated. -
getReportLocation
public net.sourceforge.pmd.lang.document.FileLocation getReportLocation()- Specified by:
getReportLocation
in interfacenet.sourceforge.pmd.lang.ast.Node
- Specified by:
getReportLocation
in interfacenet.sourceforge.pmd.reporting.Reportable
-
getSimpleName
Description copied from interface:ASTTypeDeclaration
Returns the simple name of this type declaration. Returns the empty string if this is an anonymous class declaration.- Specified by:
getSimpleName
in interfaceASTTypeDeclaration
-
getBinaryName
Description copied from interface:ASTTypeDeclaration
Returns the binary name of this type declaration. This is likeClass.getName()
.- Specified by:
getBinaryName
in interfaceASTTypeDeclaration
-
getCanonicalName
Description copied from interface:ASTTypeDeclaration
Returns the canonical name of this class, if it exists. Otherwise returns null. This is likeClass.getCanonicalName()
.A canonical name exists if all enclosing types have a canonical name, and this is neither a local class nor an anonymous class. For example:
So non-local/anonymous classes declared somewhere in a local/anonymous class also have no locpackage p; public class A { // p.A class M { // p.A.M { class Local { // null, local class class M2 {} // null, member of a local class } new Local() { // null, anonymous class class M2 {} // null, member of an anonymous class }; } } }
- Specified by:
getCanonicalName
in interfaceASTTypeDeclaration
-
getVisibility
Description copied from interface:ModifierOwner
Returns the visibility corresponding to theeffective modifiers
. Eg a public method will have visibilitypublic
, a local class will have visibilitylocal
. There cannot be any conflict withModifierOwner.hasModifiers(JModifier, JModifier...)
} on well-formed code (e.g. for anyn
,(n.getVisibility() == V_PROTECTED) == n.hasModifiers(PROTECTED)
)TODO a public method of a private class can be considered to be private we could probably add another method later on that takes this into account
- Specified by:
getVisibility
in interfaceModifierOwner
-
getTypeMirror
Description copied from interface:TypeNode
Returns the compile-time type of this node. For example, for a string literal, returns the type mirror forString
, for a method call, returns the return type of the call, etc.This method ignores conversions applied to the value of the node because of its context. For example, in
1 + ""
, the numeric literal will have typeint
, but it is converted toString
by the surrounding concatenation expression. Similarly, inCollections.singletonList(1)
, theASTNumericLiteral
node has typeint
, but the type of the method formal isInteger
, and boxing is applied at runtime. Possibly, an API will be added to expose this information.- Specified by:
getTypeMirror
in interfaceASTTypeDeclaration
- Specified by:
getTypeMirror
in interfaceTypeNode
- Returns:
- The type mirror. Never returns null; if the type is unresolved, returns
TypeSystem.UNKNOWN
.
-
isFindBoundary
public boolean isFindBoundary()- Specified by:
isFindBoundary
in interfacenet.sourceforge.pmd.lang.ast.Node
-
getSymbol
Description copied from interface:SymbolDeclaratorNode
Returns the symbol this node declares.- Specified by:
getSymbol
in interfaceSymbolDeclaratorNode
-
getTypeMirror
- Specified by:
getTypeMirror
in interfaceTypeNode
-
jjtClose
public void jjtClose()- Overrides:
jjtClose
in classnet.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 interfacenet.sourceforge.pmd.lang.ast.Node
-
addChild
protected void addChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index) - Overrides:
addChild
in classnet.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 classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,
JavaNode>
-
removeChildAtIndex
protected void removeChildAtIndex(int childIndex) - Overrides:
removeChildAtIndex
in classnet.sourceforge.pmd.lang.ast.impl.AbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,
JavaNode>
-
setImage
- Overrides:
setImage
in classnet.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 classnet.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 classnet.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 classnet.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 classnet.sourceforge.pmd.lang.ast.impl.AbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,
JavaNode>
-
getSymbolTable
Description copied from interface:JavaNode
Returns the symbol table for the program point represented by this node.- Specified by:
getSymbolTable
in interfaceJavaNode
-
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
-
getXPathNodeName
- Specified by:
getXPathNodeName
in interfacenet.sourceforge.pmd.lang.ast.Node
-
ASTTypeDeclaration.getPermitsClause()
orJClassSymbol.getPermittedSubtypes()