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_ARRAYFields inherited from class org.aspectj.weaver.ResolvedType
bits, crosscuttingMembers, EMPTY_RESOLVED_TYPE_ARRAY, interTypeMungers, MISSING, NONE, PARAMETERIZED_TYPE_IDENTIFIER, temporaryAnnotationTypes, validBoxing, worldFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanEquality 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 itselfinthashCode()Equality is checked based on the underlying signature, so the hash code of a particular type is the hash code of its signature string.booleanNote: Only overridden by Name subtype.booleanbooleanbooleanparameterize(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, setStartPosMethods 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, tagAsTypeHierarchyCompleteMethods 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:UnresolvedTypeEquality is checked based on the underlying signature.- Overrides:
equalsin classResolvedType
-
hashCode
public int hashCode()Description copied from class:UnresolvedTypeEquality is checked based on the underlying signature, so the hash code of a particular type is the hash code of its signature string.- Overrides:
hashCodein classUnresolvedType
-
getDelegate
For a TypeVariableReferenceType the delegate is the delegate for the first bound.- Overrides:
getDelegatein classReferenceType
-
parameterize
Description copied from class:ResolvedTypeIff 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:
parameterizein classResolvedType
-
getTypeVariable
- Specified by:
getTypeVariablein interfaceTypeVariableReference
-
isTypeVariableReference
public boolean isTypeVariableReference()- Overrides:
isTypeVariableReferencein classUnresolvedType
-
toString
Description copied from class:UnresolvedTypeReturns a java language string representation of this type.- Overrides:
toStringin classUnresolvedType
-
isGenericWildcard
public boolean isGenericWildcard()- Overrides:
isGenericWildcardin classUnresolvedType
-
isAnnotation
public boolean isAnnotation()Description copied from class:ResolvedTypeNote: Only overridden by Name subtype.- Overrides:
isAnnotationin 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:
getSignaturein 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:
resolvein classUnresolvedType- Parameters:
world- theWorldwithin 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
-