org.aspectj.weaver
Class TypeVariableReferenceType

java.lang.Object
  extended by org.aspectj.weaver.UnresolvedType
      extended by org.aspectj.weaver.ResolvedType
          extended by org.aspectj.weaver.ReferenceType
              extended by org.aspectj.weaver.TypeVariableReferenceType
All Implemented Interfaces:
AnnotatedElement, Traceable, TypeVariableDeclaringElement, TypeVariableReference

public class TypeVariableReferenceType
extends ReferenceType
implements TypeVariableReference

ReferenceType representing 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
BOOLEAN, BYTE, CHAR, crosscuttingMembers, DOUBLE, EMPTY_RESOLVED_TYPE_ARRAY, FLOAT, INT, LONG, MISSING, NONE, PARAMETERIZED_TYPE_IDENTIFIER, SHORT, temporaryAnnotationTypes, VOID
 
Fields inherited from class org.aspectj.weaver.UnresolvedType
ANNOTATION, ARRAY_WITH_JUST_OBJECT, AT_INHERITED, AT_RETENTION, AT_TARGET, CLONEABLE, ENUM, ERROR, 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, MISSING_NAME, OBJECT, OBJECTARRAY, RUNTIME_EXCEPTION, SERIALIZABLE, SOMETHING, SUPPRESS_AJ_WARNINGS, THROWABLE
 
Constructor Summary
TypeVariableReferenceType(TypeVariable typeVariable, World world)
           
 
Method Summary
 ReferenceTypeDelegate getDelegate()
          For a TypeVariableReferenceType the delegate is the delegate for the first bound.
 java.lang.String 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
 TypeVariable getTypeVariable()
           
 java.lang.String getTypeVariableName()
           
 ReferenceType getUpperBound()
           
 boolean isAnnotation()
          Note: Only overridden by Name subtype.
 boolean isGenericWildcard()
           
 boolean isTypeVariableReference()
           
 UnresolvedType parameterize(java.util.Map<java.lang.String,UnresolvedType> typeBindings)
          Iff I am a parameterized type, and any of my parameters are type variable references, return a version with those type parameters replaced in accordance with the passed bindings.
 java.lang.String toString()
          Returns a java language string representation of this type.
 
Methods inherited from class org.aspectj.weaver.ReferenceType
addAnnotation, addParent, canAnnotationTargetType, demoteToSimpleType, doesNotExposeShadowMungers, ensureConsistent, 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, 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, checkInterTypeMungers, checkLegalOverride, clearInterTypeMungers, collectCrosscuttingMembers, collectDeclares, conflictingSignature, discoverActualOccurrenceOfTypeInHierarchy, equals, fillInAnyTypeParameters, findPointcut, getBinaryPath, getDeclaredAdvice, getDeclaredJavaFields, getDeclaredJavaMethods, getDeclaredShadowMungers, getDeclaringType, getDirectSupertypes, getExposedPointcuts, getFields, getHierarchy, getHierarchy, getHierarchyWithoutIterator, getInterTypeMungers, getInterTypeMungersIncludingSupers, getInterTypeParentMungers, getInterTypeParentMungersIncludingSupers, getMethods, getMethodsIncludingIntertypeDeclarations, getMethodsWithoutIterator, getPointcuts, getRawType, getResolvedComponentType, getResolvedTypeParameters, getTopmostImplementor, getWorld, isAbstract, isCacheable, isCheckedException, isConvertableFrom, isException, isFinal, isInheritedAnnotation, isInterface, isMissing, isMissing, isMoreVisible, isParameterizedWithTypeVariable, isSynthetic, isTopmostImplementor, isTypeHierarchyComplete, isVisible, lookupDirectlyDeclaredMemberNoSupers, lookupField, lookupMemberIncludingITDsOnInterfaces, lookupMemberNoSupers, lookupMemberWithSupersAndITDs, lookupMethod, lookupMethodInITDs, lookupResolvedMember, lookupSyntheticMember, makeArray, matches, needsNoConversionFrom, parameterizedWith, resetPrimitives, setBinaryPath, tagAsTypeHierarchyComplete
 
Methods inherited from class org.aspectj.weaver.UnresolvedType
add, forGenericType, forGenericTypeSignature, forGenericTypeVariables, forName, forNames, forRawTypeName, forSignature, forSignatures, getBaseName, getClassName, getComponentType, getErasureSignature, getName, getNames, getOutermostType, getPackageName, getPackageNameAsIdentifier, getRawName, getSimpleBaseName, getSimpleName, getSize, getTypekind, getTypeParameters, getTypeVariableNamed, hashCode, insert, isArray, isParameterizedOrGenericType, isParameterizedOrRawType, isParameterizedType, isPrimitiveType, isRawType, isSimpleType, isVoid, makeArray, needsModifiableDelegate, read, readArray, resolve, setNeedsModifiableDelegate, toDebugString, toTraceString, write, writeArray
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TypeVariableReferenceType

public TypeVariableReferenceType(TypeVariable typeVariable,
                                 World world)
Method Detail

getDelegate

public ReferenceTypeDelegate getDelegate()
For a TypeVariableReferenceType the delegate is the delegate for the first bound.

Overrides:
getDelegate in class ReferenceType

parameterize

public UnresolvedType parameterize(java.util.Map<java.lang.String,UnresolvedType> typeBindings)
Description copied from class: ResolvedType
Iff I am a parameterized type, and any of my parameters are type variable references, return a version with those type parameters replaced in accordance with the passed bindings.

Overrides:
parameterize in class ResolvedType

getTypeVariable

public TypeVariable getTypeVariable()
Specified by:
getTypeVariable in interface TypeVariableReference

isTypeVariableReference

public boolean isTypeVariableReference()
Overrides:
isTypeVariableReference in class UnresolvedType

toString

public java.lang.String toString()
Description copied from class: UnresolvedType
Returns a java language string representation of this type.

Overrides:
toString in class UnresolvedType

isGenericWildcard

public boolean isGenericWildcard()
Overrides:
isGenericWildcard in class UnresolvedType

isAnnotation

public boolean isAnnotation()
Description copied from class: ResolvedType
Note: Only overridden by Name subtype.

Overrides:
isAnnotation in class ReferenceType

getSignature

public java.lang.String 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 class UnresolvedType
Returns:
the java JVM signature string for this type.

getTypeVariableName

public java.lang.String getTypeVariableName()
Returns:
the name of the type variable

getUpperBound

public ReferenceType getUpperBound()