Package org.aspectj.weaver
Class TypeVariableReferenceType
java.lang.Object
org.aspectj.weaver.UnresolvedType
org.aspectj.weaver.ResolvedType
org.aspectj.weaver.ReferenceType
org.aspectj.weaver.TypeVariableReferenceType
- All Implemented Interfaces:
AnnotatedElement
,Traceable
,TypeVariableDeclaringElement
,TypeVariableReference
ReferenceType pointing to a type variable. The delegate for this reference type is the upperbound on the type variable (so
Object if not otherwise specified).
- Author:
- Adrian Colyer, Andy Clement
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.weaver.UnresolvedType
UnresolvedType.TypeKind
-
Field Summary
Fields inherited from class org.aspectj.weaver.ReferenceType
EMPTY_ARRAY
Fields inherited from class org.aspectj.weaver.ResolvedType
bits, crosscuttingMembers, EMPTY_RESOLVED_TYPE_ARRAY, interTypeMungers, MISSING, NONE, PARAMETERIZED_TYPE_IDENTIFIER, temporaryAnnotationTypes, validBoxing, world
Fields inherited from class org.aspectj.weaver.UnresolvedType
AJC_PRIVILEGED, ANNOTATION, ARRAY_WITH_JUST_OBJECT, AT_INHERITED, AT_RETENTION, AT_TARGET, BOOLEAN, BYTE, CHAR, CLONEABLE, DOUBLE, ENUM, ERROR, FLOAT, INT, JAVA_LANG_ANNOTATION, JAVA_LANG_CLASS_ARRAY, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JL_CLASS, JL_EXCEPTION, JL_STRING, JOINPOINT_ENCLOSINGSTATICPART, JOINPOINT_STATICPART, LONG, MISSING_NAME, OBJECT, OBJECTARRAY, PROCEEDING_JOINPOINT, RUNTIME_EXCEPTION, SERIALIZABLE, SHORT, signature, signatureErasure, SOMETHING, SUPPRESS_AJ_WARNINGS, THROWABLE, typeKind, typeParameters, typeVariables, VOID
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Equality is checked based on the underlying signature.For a TypeVariableReferenceType the delegate is the delegate for the first bound.return the signature for a *REFERENCE* to a type variable, which is simply: Tname; there is no bounds info included, that is in the signature of the type variable itselfint
hashCode()
Equality is checked based on the underlying signature, so the hash code of a particular type is the hash code of its signature string.boolean
Note: Only overridden by Name subtype.boolean
boolean
boolean
parameterize(Map<String,UnresolvedType> typeBindings)
Iff I am a parameterized type, and any of my parameters are type variable references (or nested parameterized types), return a version with those type parameters replaced in accordance with the passed bindings.resolve the type variable we are managing and then return this object.toString()
Returns a java language string representation of this type.Methods inherited from class org.aspectj.weaver.ReferenceType
addAnnotation, addParent, canAnnotationTargetType, checkDuplicates, demoteToSimpleType, doesNotExposeShadowMungers, ensureConsistent, findDerivativeType, fromTypeX, getAnnotationOfType, getAnnotations, getAnnotationTargetKinds, getAnnotationTypes, getCompilerVersion, getDeclaredFields, getDeclaredGenericSignature, getDeclaredInterfaces, getDeclaredMethods, getDeclaredPointcuts, getDeclares, getEndPos, getGenericSignature, getGenericType, getModifiers, getNameAsIdentifier, getOuterClass, getPerClause, getPrivilegedAccesses, getRetentionPolicy, getSignatureForAttribute, getSourceContext, getSourceLocation, getStartPos, getSuperclass, getTypeMungers, getTypeVariables, getWeaverState, hasAnnotation, hasAnnotations, hasNewInterfaces, isAnnotationStyleAspect, isAnnotationWithRuntimeRetention, isAnonymous, isAspect, isAssignableFrom, isAssignableFrom, isClass, isCoerceableFrom, isEnum, isExposedToWeaver, isGenericType, isNested, setDelegate, setEndPos, setGenericType, setStartPos
Methods inherited from class org.aspectj.weaver.ResolvedType
addInterTypeMunger, ajMembersNeedParameterization, canBeSeenBy, checkInterTypeMungers, checkLegalOverride, clearInterTypeMungers, collectCrosscuttingMembers, collectDeclares, collectInterTypeMungers, conflictingSignature, conflictingSignature, discoverActualOccurrenceOfTypeInHierarchy, fillInAnyTypeParameters, findPointcut, getAjMemberParameterizationMap, getBinaryPath, getDeclaredAdvice, getDeclaredJavaFields, getDeclaredJavaMethods, getDeclaredShadowMungers, getDeclaringType, getDirectSupertypes, getExposedPointcuts, getFields, getHierarchy, getHierarchy, getHierarchyWithoutIterator, getInterTypeMungers, getInterTypeMungersIncludingSupers, getInterTypeParentMungers, getInterTypeParentMungersIncludingSupers, getMemberParameterizationMap, getMethods, getMethodsIncludingIntertypeDeclarations, getMethodsWithoutIterator, getPointcuts, getRawType, getResolvedComponentType, getResolvedTypeParameters, getSize, getTopmostImplementor, getWorld, isAbstract, isCacheable, isCheckedException, isConvertableFrom, isException, isFinal, isGroovyObject, isInheritedAnnotation, isInterface, isMissing, isMissing, isMoreVisible, isParameterizedWithTypeVariable, isPrimitiveArray, isPrivilegedAspect, isSynthetic, isTopmostImplementor, isTypeHierarchyComplete, isVisible, lookupDirectlyDeclaredMemberNoSupers, lookupField, lookupMemberIncludingITDsOnInterfaces, lookupMemberNoSupers, lookupMemberWithSupersAndITDs, lookupMethod, lookupMethodInITDs, lookupResolvedMember, lookupSyntheticMember, makeArray, matches, needsNoConversionFrom, parameterizedWith, setBinaryPath, tagAsTypeHierarchyComplete
Methods inherited from class org.aspectj.weaver.UnresolvedType
add, forGenericType, forGenericTypeSignature, forGenericTypeVariables, forName, forNames, forPrimitiveType, forRawTypeName, forSignature, forSignatures, getBaseName, getClassName, getComponentType, getErasureSignature, getName, getNames, getOutermostType, getPackageName, getPackageNameAsIdentifier, getRawName, getSimpleBaseName, getSimpleName, getTypekind, getTypeParameters, getTypeVariableNamed, insert, isArray, isParameterizedOrGenericType, isParameterizedOrRawType, isParameterizedType, isPrimitiveType, isRawType, isSimpleType, isVoid, makeArray, needsModifiableDelegate, read, readArray, setNeedsModifiableDelegate, toDebugString, toTraceString, write, writeArray
-
Constructor Details
-
TypeVariableReferenceType
-
-
Method Details
-
equals
Description copied from class:UnresolvedType
Equality is checked based on the underlying signature.- Overrides:
equals
in classResolvedType
-
hashCode
public int hashCode()Description copied from class:UnresolvedType
Equality is checked based on the underlying signature, so the hash code of a particular type is the hash code of its signature string.- Overrides:
hashCode
in classUnresolvedType
-
getDelegate
For a TypeVariableReferenceType the delegate is the delegate for the first bound.- Overrides:
getDelegate
in classReferenceType
-
parameterize
Description copied from class:ResolvedType
Iff I am a parameterized type, and any of my parameters are type variable references (or nested parameterized types), return a version with those type parameters replaced in accordance with the passed bindings.- Overrides:
parameterize
in classResolvedType
-
getTypeVariable
- Specified by:
getTypeVariable
in interfaceTypeVariableReference
-
isTypeVariableReference
public boolean isTypeVariableReference()- Overrides:
isTypeVariableReference
in classUnresolvedType
-
toString
Description copied from class:UnresolvedType
Returns a java language string representation of this type.- Overrides:
toString
in classUnresolvedType
-
isGenericWildcard
public boolean isGenericWildcard()- Overrides:
isGenericWildcard
in classUnresolvedType
-
isAnnotation
public boolean isAnnotation()Description copied from class:ResolvedType
Note: Only overridden by Name subtype.- Overrides:
isAnnotation
in classReferenceType
-
getSignature
return the signature for a *REFERENCE* to a type variable, which is simply: Tname; there is no bounds info included, that is in the signature of the type variable itself- Overrides:
getSignature
in classUnresolvedType
- Returns:
- the java JVM signature string for this type.
-
getTypeVariableName
- Returns:
- the name of the type variable
-
getUpperBound
-
resolve
resolve the type variable we are managing and then return this object. 'this' is already a ResolvedType but the type variable may transition from a not-resolved to a resolved state.- Overrides:
resolve
in classUnresolvedType
- Parameters:
world
- theWorld
within which to resolve.- Returns:
- a resolved type representing this type in the appropriate world.
-
isTypeVariableResolved
public boolean isTypeVariableResolved()- Returns:
- true if the type variable this reference is managing is resolved
-