Package org.aspectj.weaver.reflect
Class ReflectionBasedReferenceTypeDelegate
java.lang.Object
org.aspectj.weaver.reflect.ReflectionBasedReferenceTypeDelegate
- All Implemented Interfaces:
ReferenceTypeDelegate
- Direct Known Subclasses:
Java15ReflectionBasedReferenceTypeDelegate
- Author:
- colyer A delegate for a resolved type that uses runtime type information (java.lang.reflect) to answer questions. This class uses only Java 1.4 features to answer questions. In a Java 1.5 environment use the Java5ReflectionBasedReferenceTypeDelegate subtype.
-
Field Summary
Modifier and TypeFieldDescriptionprotected WeakClassLoaderReference
protected Class
protected World
-
Constructor Summary
ConstructorDescriptionfor reflective construction onlyReflectionBasedReferenceTypeDelegate
(Class forClass, ClassLoader aClassLoader, World inWorld, ReferenceType resolvedType) -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
createResolvedMemberFor
(Member aMember) boolean
void
Implementations need to clear stateprotected Class
Class
<?> getClazz()
int
If known, return the compiler/weaver version used to build this delegate.int
protected World
getWorld()
boolean
hasAnnotation
(UnresolvedType ofType) boolean
boolean
void
initialize
(ReferenceType aType, Class<?> aClass, ClassLoader aClassLoader, World aWorld) boolean
boolean
boolean
boolean
boolean
isAspect()
boolean
TODO Caching of methods besides getDeclaredInterfaces() may also be dependent on this flag - which?boolean
isClass()
boolean
isEnum()
boolean
boolean
boolean
boolean
isNested()
boolean
-
Field Details
-
myClass
-
classLoaderReference
-
world
-
-
Constructor Details
-
ReflectionBasedReferenceTypeDelegate
public ReflectionBasedReferenceTypeDelegate(Class forClass, ClassLoader aClassLoader, World inWorld, ReferenceType resolvedType) -
ReflectionBasedReferenceTypeDelegate
public ReflectionBasedReferenceTypeDelegate()for reflective construction only
-
-
Method Details
-
initialize
public void initialize(ReferenceType aType, Class<?> aClass, ClassLoader aClassLoader, World aWorld) -
getClazz
-
getBaseClass
-
getWorld
-
buildGenericType
-
isAspect
public boolean isAspect()- Specified by:
isAspect
in interfaceReferenceTypeDelegate
-
isAnnotationStyleAspect
public boolean isAnnotationStyleAspect()- Specified by:
isAnnotationStyleAspect
in interfaceReferenceTypeDelegate
- Returns:
- true if the type is an annotation style aspect (a type marked @Aspect)
-
isInterface
public boolean isInterface()- Specified by:
isInterface
in interfaceReferenceTypeDelegate
-
isEnum
public boolean isEnum()- Specified by:
isEnum
in interfaceReferenceTypeDelegate
-
isAnnotationWithRuntimeRetention
public boolean isAnnotationWithRuntimeRetention()- Specified by:
isAnnotationWithRuntimeRetention
in interfaceReferenceTypeDelegate
- Returns:
- true if this annotation type has a retention policy of RUNTIME
-
isAnnotation
public boolean isAnnotation()- Specified by:
isAnnotation
in interfaceReferenceTypeDelegate
-
getRetentionPolicy
- Specified by:
getRetentionPolicy
in interfaceReferenceTypeDelegate
-
canAnnotationTargetType
public boolean canAnnotationTargetType()- Specified by:
canAnnotationTargetType
in interfaceReferenceTypeDelegate
- Returns:
- true if this annotation type can be on a regular type (ie. it doesn't specify anything or it specifies TYPE)
-
getAnnotationTargetKinds
- Specified by:
getAnnotationTargetKinds
in interfaceReferenceTypeDelegate
- Returns:
- all the possible targets that this annotation can be placed upon
-
isClass
public boolean isClass()- Specified by:
isClass
in interfaceReferenceTypeDelegate
-
isGeneric
public boolean isGeneric()- Specified by:
isGeneric
in interfaceReferenceTypeDelegate
-
isAnonymous
public boolean isAnonymous()- Specified by:
isAnonymous
in interfaceReferenceTypeDelegate
-
isNested
public boolean isNested()- Specified by:
isNested
in interfaceReferenceTypeDelegate
- Returns:
- true if this class is nested (this includes: member classes, local classes, anonymous classes)
-
getOuterClass
- Specified by:
getOuterClass
in interfaceReferenceTypeDelegate
-
isExposedToWeaver
public boolean isExposedToWeaver()- Specified by:
isExposedToWeaver
in interfaceReferenceTypeDelegate
-
hasAnnotation
- Specified by:
hasAnnotation
in interfaceReferenceTypeDelegate
-
getAnnotations
- Specified by:
getAnnotations
in interfaceReferenceTypeDelegate
-
hasAnnotations
public boolean hasAnnotations()- Specified by:
hasAnnotations
in interfaceReferenceTypeDelegate
-
getAnnotationTypes
- Specified by:
getAnnotationTypes
in interfaceReferenceTypeDelegate
-
getDeclaredFields
- Specified by:
getDeclaredFields
in interfaceReferenceTypeDelegate
-
getDeclaredInterfaces
- Specified by:
getDeclaredInterfaces
in interfaceReferenceTypeDelegate
-
isCacheable
public boolean isCacheable()Description copied from interface:ReferenceTypeDelegate
TODO Caching of methods besides getDeclaredInterfaces() may also be dependent on this flag - which?- Specified by:
isCacheable
in interfaceReferenceTypeDelegate
- Returns:
- true if something the result of getDeclaredInterfaces() can be cached by the caller
-
getDeclaredMethods
- Specified by:
getDeclaredMethods
in interfaceReferenceTypeDelegate
-
getDeclaredPointcuts
- Specified by:
getDeclaredPointcuts
in interfaceReferenceTypeDelegate
-
getTypeVariables
- Specified by:
getTypeVariables
in interfaceReferenceTypeDelegate
-
getPerClause
- Specified by:
getPerClause
in interfaceReferenceTypeDelegate
- Returns:
- for an aspect declaration, return the
-
getDeclares
- Specified by:
getDeclares
in interfaceReferenceTypeDelegate
-
getTypeMungers
- Specified by:
getTypeMungers
in interfaceReferenceTypeDelegate
-
getPrivilegedAccesses
- Specified by:
getPrivilegedAccesses
in interfaceReferenceTypeDelegate
-
getModifiers
public int getModifiers()- Specified by:
getModifiers
in interfaceReferenceTypeDelegate
-
getSuperclass
- Specified by:
getSuperclass
in interfaceReferenceTypeDelegate
-
getWeaverState
- Specified by:
getWeaverState
in interfaceReferenceTypeDelegate
-
getResolvedTypeX
- Specified by:
getResolvedTypeX
in interfaceReferenceTypeDelegate
-
doesNotExposeShadowMungers
public boolean doesNotExposeShadowMungers()- Specified by:
doesNotExposeShadowMungers
in interfaceReferenceTypeDelegate
-
getDeclaredGenericSignature
- Specified by:
getDeclaredGenericSignature
in interfaceReferenceTypeDelegate
-
createResolvedMemberFor
-
getSourcefilename
- Specified by:
getSourcefilename
in interfaceReferenceTypeDelegate
-
getSourceContext
- Specified by:
getSourceContext
in interfaceReferenceTypeDelegate
-
copySourceContext
public boolean copySourceContext()- Specified by:
copySourceContext
in interfaceReferenceTypeDelegate
-
getCompilerVersion
public int getCompilerVersion()Description copied from interface:ReferenceTypeDelegate
If known, return the compiler/weaver version used to build this delegate. Default is the most recent level as specified inAjAttribute.WeaverVersionInfo
.- Specified by:
getCompilerVersion
in interfaceReferenceTypeDelegate
- Returns:
- the major version
-
ensureConsistent
public void ensureConsistent()Description copied from interface:ReferenceTypeDelegate
Implementations need to clear state- Specified by:
ensureConsistent
in interfaceReferenceTypeDelegate
-
isWeavable
public boolean isWeavable()- Specified by:
isWeavable
in interfaceReferenceTypeDelegate
-
hasBeenWoven
public boolean hasBeenWoven()- Specified by:
hasBeenWoven
in interfaceReferenceTypeDelegate
-