Class ResolvedReferenceType
java.lang.Object
com.github.javaparser.resolution.types.ResolvedReferenceType
- All Implemented Interfaces:
ResolvedTypeParameterValueProvider, ResolvedTypeParametrized, ResolvedType
- Direct Known Subclasses:
ReferenceTypeImpl
public abstract class ResolvedReferenceType
extends Object
implements ResolvedType, ResolvedTypeParametrized, ResolvedTypeParameterValueProvider
A ReferenceType like a class, an interface or an enum. Note that this type can contain also the values
specified for the type parameters.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static Stringprotected static Stringprotected static Stringprotected ResolvedReferenceTypeDeclarationprotected ResolvedTypeParametersMap -
Constructor Summary
ConstructorsConstructorDescriptionResolvedReferenceType(ResolvedReferenceTypeDeclaration typeDeclaration) ResolvedReferenceType(ResolvedReferenceTypeDeclaration typeDeclaration, List<ResolvedType> typeArguments) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanprivate booleancompareConsideringVariableTypeParameters(ResolvedType referenceType, ResolvedTypeVariable typeVariable) protected abstract ResolvedReferenceTypecreate(ResolvedReferenceTypeDeclaration typeDeclaration) protected ResolvedReferenceTypecreate(ResolvedReferenceTypeDeclaration typeDeclaration, ResolvedTypeParametersMap typeParametersMap) protected abstract ResolvedReferenceTypecreate(ResolvedReferenceTypeDeclaration typeDeclaration, List<ResolvedType> typeParameters) private static List<ResolvedType> deriveParams(ResolvedReferenceTypeDeclaration typeDeclaration) abstract ResolvedReferenceTypederiveTypeParameters(ResolvedTypeParametersMap typeParametersMap) describe()booleanerasure()private List<ResolvedType> erasureOfParamaters(ResolvedTypeParametersMap typeParametersMap) abstract List<ResolvedReferenceType> Return all ancestors, that means all superclasses and interfaces.abstract List<ResolvedReferenceType> Return all ancestors, that means all superclasses and interfaces.final List<ResolvedReferenceType> Fields which are visible to inheritors.final List<ResolvedReferenceType> Get a list of all the methods available on this type.abstract Set<ResolvedFieldDeclaration> Fields declared on this type.abstract Set<MethodUsage> Methods declared on this type.abstract List<ResolvedReferenceType> Return direct ancestors, that means the superclasses and interfaces implemented directly.getFieldType(String name) The type of the field could be different from the one in the corresponding FieldDeclaration because type variables would be solved.Get the type associated with the type parameter with the given name.getId()Id of the declaration.Qualified name of the declaration.Corresponding TypeDeclarationGet the values for all type parameters declared on this type.inthashCode()booleanhasName()Has the TypeDeclaration a name? Anonymous classes do not have one.abstract booleanisAssignableBy(ResolvedType other) This method checks if ThisType t = new OtherType() would compile.protected booleanisCorrespondingBoxingType(String typeName) booleanbooleanWe 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>booleanprivate booleanbooleanfinal booleanCan this be seen as a ReferenceTypeUsage? In other words: is this a reference to a class, an interface or an enum?booleanbooleanisUnboxableTo(ResolvedPrimitiveType primitiveType) replaceTypeVariables(ResolvedTypeParameterDeclaration tpToReplace, ResolvedType replaced, Map<ResolvedTypeParameterDeclaration, ResolvedType> inferredTypes) Replace all variables referring to the given TypeParameter with the given value.abstract ResolvedTypetoString()abstract ResolvedTypetransformTypeParameters(ResolvedTypeTransformer transformer) Execute a transformation on all the type parameters of this element.Get the values for all type parameters declared on this type.typeParamValue(ResolvedTypeParameterDeclaration typeParameterDeclaration) Calculate the value for the given type parameter.Methods inherited from interface ResolvedType
arrayLevel, asArrayType, asConstraintType, asPrimitive, asTypeParameter, asTypeVariable, asUnionType, asWildcard, isArray, isConstraint, isInferenceVariable, isNull, isNumericType, isPrimitive, isReference, isTypeVariable, isUnionType, isVoid, isWildcard, mention, replaceTypeVariables, solveGenericTypesMethods inherited from interface ResolvedTypeParameterValueProvider
useThisTypeParametersOnTheGivenType
-
Field Details
-
JAVA_LANG_ENUM
-
JAVA_LANG_OBJECT
-
JAVA_LANG_RECORD
-
typeDeclaration
-
typeParametersMap
-
-
Constructor Details
-
ResolvedReferenceType
-
ResolvedReferenceType
public ResolvedReferenceType(ResolvedReferenceTypeDeclaration typeDeclaration, List<ResolvedType> typeArguments)
-
-
Method Details
-
equals
-
hashCode
-
toString
-
isReferenceType
public final boolean isReferenceType()Description copied from interface:ResolvedTypeCan this be seen as a ReferenceTypeUsage? In other words: is this a reference to a class, an interface or an enum?- Specified by:
isReferenceTypein interfaceResolvedType
-
asReferenceType
- Specified by:
asReferenceTypein interfaceResolvedType
-
describe
- Specified by:
describein interfaceResolvedType
-
transformTypeParameters
Execute a transformation on all the type parameters of this element. -
replaceTypeVariables
public ResolvedType replaceTypeVariables(ResolvedTypeParameterDeclaration tpToReplace, ResolvedType replaced, Map<ResolvedTypeParameterDeclaration, ResolvedType> inferredTypes) Description copied from interface:ResolvedTypeReplace all variables referring to the given TypeParameter with the given value. By replacing these values I could also infer some type equivalence. Those would be collected in the given map.- Specified by:
replaceTypeVariablesin interfaceResolvedType
-
isAssignableBy
This method checks if ThisType t = new OtherType() would compile.- Specified by:
isAssignableByin interfaceResolvedType
-
getAllAncestors
Return all ancestors, that means all superclasses and interfaces. This list should always include Object (unless this is a reference to Object). The type typeParametersValues should be expressed in terms of this type typeParametersValues. The default order of presenting ancestors corresponds to a search in depth.For example, given:
class Foo<A, B> {} class Bar<C> extends Foo<C, String> {}
a call to getAllAncestors on a reference to Bar having type parameter Boolean should include Foo<Boolean, String>.
-
getAllAncestors
public abstract List<ResolvedReferenceType> getAllAncestors(Function<ResolvedReferenceTypeDeclaration, List<ResolvedReferenceType>> traverser) Return all ancestors, that means all superclasses and interfaces. This list should always include Object (unless this is a reference to Object). The type typeParametersValues should be expressed in terms of this type typeParametersValues. -
getDirectAncestors
Return direct ancestors, that means the superclasses and interfaces implemented directly. This list should include Object if the class has no other superclass or the interface is not extending another interface. There is an exception for Object itself. -
getAllInterfacesAncestors
-
getAllClassesAncestors
-
getGenericParameterByName
Get the type associated with the type parameter with the given name. It returns Optional.empty unless the type declaration declares a type parameter with the given name.- Specified by:
getGenericParameterByNamein interfaceResolvedTypeParameterValueProvider
-
typeParametersValues
Get the values for all type parameters declared on this type. The list can be empty for raw types. -
getTypeParametersMap
Get the values for all type parameters declared on this type. In case of raw types the values correspond to TypeVariables. -
typeParametersMap
- Specified by:
typeParametersMapin interfaceResolvedTypeParametrized
-
getTypeDeclaration
Corresponding TypeDeclaration -
getFieldType
The type of the field could be different from the one in the corresponding FieldDeclaration because type variables would be solved. -
hasName
public boolean hasName()Has the TypeDeclaration a name? Anonymous classes do not have one. -
getQualifiedName
Qualified name of the declaration. -
getId
Id of the declaration. It corresponds to the qualified name, unless for local classes. -
getDeclaredMethods
Methods declared on this type. -
getDeclaredFields
Fields declared on this type. -
isRawType
public boolean isRawType() -
typeParamValue
public Optional<ResolvedType> typeParamValue(ResolvedTypeParameterDeclaration typeParameterDeclaration) Description copied from interface:ResolvedTypeParameterValueProviderCalculate the value for the given type parameter. It could be inherited.- Specified by:
typeParamValuein interfaceResolvedTypeParameterValueProvider
-
toRawType
- Returns:
- A copy of the current reference type, without type parameters.
-
getAllMethods
Get a list of all the methods available on this type. This list includes methods declared in this type and methods inherited. This list includes methods of all sort of visibility. However it does not include methods that have been overwritten. -
getAllFieldsVisibleToInheritors
Fields which are visible to inheritors. They include all inherited fields which are visible to this type plus all declared fields which are not private. -
getAllMethodsVisibleToInheritors
-
create
protected abstract ResolvedReferenceType create(ResolvedReferenceTypeDeclaration typeDeclaration, List<ResolvedType> typeParameters) -
create
protected ResolvedReferenceType create(ResolvedReferenceTypeDeclaration typeDeclaration, ResolvedTypeParametersMap typeParametersMap) -
create
-
isCorrespondingBoxingType
-
compareConsideringTypeParameters
-
compareConsideringVariableTypeParameters
private boolean compareConsideringVariableTypeParameters(ResolvedType referenceType, ResolvedTypeVariable typeVariable) -
deriveParams
-
deriveTypeParameters
public abstract ResolvedReferenceType deriveTypeParameters(ResolvedTypeParametersMap typeParametersMap) -
isJavaLangObject
public 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:
-
isJavaLangEnum
public boolean isJavaLangEnum()- Returns:
- true, if this represents
java.lang.Enum - See Also:
-
isJavaLangRecord
public boolean isJavaLangRecord()- Returns:
- true, if this represents
java.lang.Record - See Also:
-
isUnboxable
public boolean isUnboxable() -
isUnboxableTo
-
toUnboxedType
-
erasure
- Specified by:
erasurein interfaceResolvedType
-
erasureOfParamaters
-
isJavaObject
-
toDescriptor
- Specified by:
toDescriptorin interfaceResolvedType
-