Interface ResolvedReferenceTypeDeclaration
- All Superinterfaces:
ResolvedDeclaration
,ResolvedTypeDeclaration
,ResolvedTypeParametrizable
- All Known Subinterfaces:
ResolvedAnnotationDeclaration
,ResolvedClassDeclaration
,ResolvedEnumDeclaration
,ResolvedInterfaceDeclaration
- Author:
- Federico Tomassetti
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptiondefault ResolvedReferenceTypeDeclaration
default boolean
Can we assign instances of the type defined by this declaration to variables having the type defined by the given type?default Optional<ResolvedTypeParameterDeclaration>
findTypeParameter(String name)
Find the closest TypeParameterDeclaration with the given name.default List<ResolvedReferenceType>
The list of all the ancestors of the current declaration, direct and indirect.default List<ResolvedReferenceType>
The list of all the ancestors of the current declaration, direct and indirect.Return a list of all fields, either declared in this declaration or inherited.Return a list of all the methods declared of this type declaration, either declared or inherited.default List<ResolvedFieldDeclaration>
Return a list of all the non static fields, either declared or inherited.default List<ResolvedFieldDeclaration>
Return a list of all the static fields, either declared or inherited.default List<ResolvedReferenceType>
Resolves the types of all direct ancestors (i.e., the directly extended class and the directly implemented interfaces) and returns the list of ancestors as a list of resolved reference types.getAncestors(boolean acceptIncompleteList)
Resolves the types of all direct ancestors (i.e., the directly extended class and the directly implemented interfaces) and returns the list of ancestors as a list of resolved reference types.default List<ResolvedFieldDeclaration>
Return a list of all the fields declared in this type.Return a list of all the methods declared in this type declaration.default ResolvedFieldDeclaration
Note that the type of the field should be expressed using the type variables of this particular type.default ResolvedFieldDeclaration
getVisibleField(String name)
Consider only field or inherited field which is not private.default List<ResolvedFieldDeclaration>
Return a list of all fields declared and the inherited ones which are not private.default boolean
hasAnnotation(String qualifiedName)
Has the type at least one annotation declared or inherited having the specified qualified name?boolean
hasDirectlyAnnotation(String qualifiedName)
Has the type at least one annotation declared having the specified qualified name?default boolean
Has this type a field with the given name?default boolean
hasVisibleField(String name)
Either a declared field or inherited field which is not private.boolean
Can we assign instances of the given type to variables having the type defined by this declaration?boolean
isAssignableBy(ResolvedType type)
Can we assign instances of the given type to variables having the type defined by this declaration?boolean
This means that the type has a functional method.default boolean
default boolean
We don't make this _ex_plicit in the data representation because that would affect codegen and make everything generate like<T extends Object>
instead of<T>
Methods inherited from interface com.github.javaparser.resolution.declarations.ResolvedDeclaration
asEnumConstant, asField, asMethod, asParameter, asPattern, getName, hasName, isEnumConstant, isField, isMethod, isParameter, isPattern, isVariable
Methods inherited from interface com.github.javaparser.resolution.declarations.ResolvedTypeDeclaration
asAnnotation, asClass, asEnum, asInterface, asType, asTypeParameter, containerType, getClassName, getId, getInternalType, getPackageName, getQualifiedName, hasInternalType, internalTypes, isAnnotation, isAnonymousClass, isClass, isEnum, isInterface, isType, isTypeParameter
Methods inherited from interface com.github.javaparser.resolution.declarations.ResolvedTypeParametrizable
getTypeParameters, isGeneric
-
Field Details
-
JAVA_LANG_ENUM
-
JAVA_LANG_OBJECT
-
depthFirstFunc
-
breadthFirstFunc
static final Function<ResolvedReferenceTypeDeclaration,List<ResolvedReferenceType>> breadthFirstFunc
-
-
Method Details
-
asReferenceType
- Specified by:
asReferenceType
in interfaceResolvedTypeDeclaration
-
getAncestors
Resolves the types of all direct ancestors (i.e., the directly extended class and the directly implemented interfaces) and returns the list of ancestors as a list of resolved reference types.In case any ancestor cannot be resolved, an
UnsolvedSymbolException
is thrown. In order to obtain a list of only the resolvable direct ancestors, usegetAncestors(boolean)
and pass the valuetrue
.Note that an ancestor can be parametrized types with values specified. For example:
class A implements Comparable<String> {}
In this case the ancestor is Comparable<String>
- Returns:
- The list of resolved ancestors.
- Throws:
UnsolvedSymbolException
- if some ancestor could not be resolved.
-
getAncestors
Resolves the types of all direct ancestors (i.e., the directly extended class and the directly implemented interfaces) and returns the list of ancestors as a list of resolved reference types.If
acceptIncompleteList
isfalse
, then anUnsolvedSymbolException
is thrown if any ancestor cannot be resolved. Otherwise, a list of only the resolvable direct ancestors is returned.- Parameters:
acceptIncompleteList
- When set tofalse
, this method throws anUnsolvedSymbolException
if one or more ancestor could not be resolved. When set totrue
, this method does not throw anUnsolvedSymbolException
, but the list of returned ancestors may be incomplete in case one or more ancestor could not be resolved.- Returns:
- The list of resolved ancestors.
- Throws:
UnsolvedSymbolException
- if some ancestor could not be resolved andacceptIncompleteList
is set tofalse
.
-
getAllAncestors
The list of all the ancestors of the current declaration, direct and indirect. This list does not contains duplicates with the exact same type parameters. For example if A inherits from B, and B inherits from C and implements D, and C inherits from E By default the traversal is depth first -
getAllAncestors
default List<ResolvedReferenceType> getAllAncestors(Function<ResolvedReferenceTypeDeclaration,List<ResolvedReferenceType>> traverser)The list of all the ancestors of the current declaration, direct and indirect. This list does not contains duplicates with the exact same type parameters. For example if A inherits from B, and B inherits from C and implements D, and C inherits from E Apply the specified traversal -
getField
Note that the type of the field should be expressed using the type variables of this particular type. Consider for example:class Foo
{ E field; } class Bar extends Foo
{ } When calling getField("field") on Foo I should get a FieldDeclaration with type E, while calling it on Bar I should get a FieldDeclaration with type String.
-
getVisibleField
Consider only field or inherited field which is not private. -
hasField
Has this type a field with the given name? -
hasVisibleField
Either a declared field or inherited field which is not private. -
getAllFields
List<ResolvedFieldDeclaration> getAllFields()Return a list of all fields, either declared in this declaration or inherited. -
getVisibleFields
Return a list of all fields declared and the inherited ones which are not private. -
getAllNonStaticFields
Return a list of all the non static fields, either declared or inherited. -
getAllStaticFields
Return a list of all the static fields, either declared or inherited. -
getDeclaredFields
Return a list of all the fields declared in this type. -
getDeclaredMethods
Set<ResolvedMethodDeclaration> getDeclaredMethods()Return a list of all the methods declared in this type declaration. -
getAllMethods
Set<MethodUsage> getAllMethods()Return a list of all the methods declared of this type declaration, either declared or inherited. Note that it should not include overridden methods. -
isAssignableBy
Can we assign instances of the given type to variables having the type defined by this declaration? -
canBeAssignedTo
Can we assign instances of the type defined by this declaration to variables having the type defined by the given type? -
isAssignableBy
Can we assign instances of the given type to variables having the type defined by this declaration? -
hasDirectlyAnnotation
Has the type at least one annotation declared having the specified qualified name? -
hasAnnotation
Has the type at least one annotation declared or inherited having the specified qualified name? -
isFunctionalInterface
boolean isFunctionalInterface()This means that the type has a functional method. Conceptually, a functional interface has exactly one abstract method. Typically these classes has the FunctionInterface annotation but this is not mandatory. -
findTypeParameter
Description copied from interface:ResolvedTypeParametrizable
Find the closest TypeParameterDeclaration with the given name. It first look on this element itself and then on the containers.- Specified by:
findTypeParameter
in interfaceResolvedTypeParametrizable
-
getConstructors
List<ResolvedConstructorDeclaration> getConstructors() -
isJavaLangObject
default boolean isJavaLangObject()We don't make this _ex_plicit in the data representation because that would affect codegen and make everything generate like<T extends Object>
instead of<T>
- Returns:
- true, if this represents
java.lang.Object
- See Also:
ResolvedReferenceType.isJavaLangObject()
, https://github.com/javaparser/javaparser/issues/2044
-
isJavaLangEnum
default boolean isJavaLangEnum()- Returns:
- true, if this represents
java.lang.Enum
- See Also:
ResolvedReferenceType.isJavaLangEnum()
-