Interface JTypeParameterSymbol
-
- All Superinterfaces:
AnnotableSymbol
,JAccessibleElementSymbol
,JElementSymbol
,JTypeDeclSymbol
public interface JTypeParameterSymbol extends JTypeDeclSymbol
Represents the declaration of a type variable, ie a type parameter. Type variables are reference types, but not class or interface types. They're also not declared with the same node. For those reasons this type of references is distinct fromJClassSymbol
.- Since:
- 7.0.0
-
-
Field Summary
-
Fields inherited from interface net.sourceforge.pmd.lang.java.symbols.JAccessibleElementSymbol
PRIMITIVE_PACKAGE
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <R,P>
RacceptVisitor(SymbolVisitor<R,P> visitor, P param)
Dispatch to the appropriate visit method of the visitor and returns its result.JTypeMirror
computeUpperBound()
Returns the upper bound of this type variable.JTypeParameterOwnerSymbol
getDeclaringSymbol()
Returns theJClassSymbol
orJMethodSymbol
which declared this type parameter.default @NonNull JClassSymbol
getEnclosingClass()
Returns the class that directly encloses this declaration.default int
getModifiers()
Returns the modifiers of the element represented by this symbol, as decodable by the standardModifier
API.default @NonNull String
getPackageName()
Returns the name of the package this element is declared in.JTypeVar
getTypeMirror()
default @Nullable N
tryGetNode()
Returns the node that declares this symbol.-
Methods inherited from interface net.sourceforge.pmd.lang.java.symbols.AnnotableSymbol
getDeclaredAnnotation, getDeclaredAnnotations, isAnnotationPresent
-
Methods inherited from interface net.sourceforge.pmd.lang.java.symbols.JAccessibleElementSymbol
isStatic
-
Methods inherited from interface net.sourceforge.pmd.lang.java.symbols.JElementSymbol
equals, getTypeSystem, nameEquals
-
Methods inherited from interface net.sourceforge.pmd.lang.java.symbols.JTypeDeclSymbol
getSimpleName, isInterface, isUnresolved
-
-
-
-
Method Detail
-
getDeclaringSymbol
JTypeParameterOwnerSymbol getDeclaringSymbol()
Returns theJClassSymbol
orJMethodSymbol
which declared this type parameter.
-
getTypeMirror
JTypeVar getTypeMirror()
-
computeUpperBound
JTypeMirror computeUpperBound()
Returns the upper bound of this type variable. This may be an intersection type. If the variable is unbounded, returns Object.
-
getPackageName
default @NonNull String getPackageName()
Description copied from interface:JAccessibleElementSymbol
Returns the name of the package this element is declared in. This recurses into the enclosing elements if needed. If this is an array symbol, returns the package name of the element symbol. If this is a primitive type, returns "java.lang".This is consistent with Java 9's
getPackageName()
.- Specified by:
getPackageName
in interfaceJAccessibleElementSymbol
-
getModifiers
default int getModifiers()
Description copied from interface:JAccessibleElementSymbol
Returns the modifiers of the element represented by this symbol, as decodable by the standardModifier
API.- Specified by:
getModifiers
in interfaceJAccessibleElementSymbol
-
getEnclosingClass
default @NonNull JClassSymbol getEnclosingClass()
Description copied from interface:JAccessibleElementSymbol
Returns the class that directly encloses this declaration. This is equivalent toClass.getEnclosingClass()
. Returns null if this is a top-level type declaration.This is necessarily an already resolved symbol, because 1. if it's obtained from reflection, then the enclosing class is available 2. if it's obtained from an AST, then the enclosing class is in the same source file so we can know about it
- Specified by:
getEnclosingClass
in interfaceJAccessibleElementSymbol
-
acceptVisitor
default <R,P> R acceptVisitor(SymbolVisitor<R,P> visitor, P param)
Description copied from interface:JElementSymbol
Dispatch to the appropriate visit method of the visitor and returns its result.- Specified by:
acceptVisitor
in interfaceJElementSymbol
-
tryGetNode
default @Nullable N tryGetNode()
Description copied from interface:JElementSymbol
Returns the node that declares this symbol. Eg forJMethodSymbol
, it's anASTMethodDeclaration
. Will only return non-null if the symbol is declared in the file currently being analysed.- Specified by:
tryGetNode
in interfaceJElementSymbol
-
-