Package org.aspectj.weaver
Class Shadow
java.lang.Object
org.aspectj.weaver.Shadow
- Direct Known Subclasses:
BcelShadow
,EclipseShadow
,ReflectionShadow
,StandardShadow
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
A type-safe enum representing the kind of shadows -
Field Summary
Modifier and TypeFieldDescriptionstatic String
static final Shadow.Kind
static final int
static final int
static String
static String
static final Shadow.Kind
static final int
static final Shadow.Kind
static final int
protected final Shadow
static String
static final Shadow.Kind
static final int
static String
static String
static final Shadow.Kind
static final int
static final Shadow.Kind
static final int
static final Shadow.Kind
static String
static final int
static final int
static String
static String
static final Shadow.Kind
These names are the ones that will be returned by thisJoinPoint.getKind() Those need to be documented somewherestatic final int
static final Shadow.Kind
static final int
protected List
<ShadowMunger> protected boolean
static final int
static final Shadow.Kind
static String
static final int
static final Shadow.Kind[]
int
static final Shadow.Kind
static String
static final int
static String
static String
static final Shadow.Kind
static final int
static final Shadow.Kind
static final int
-
Constructor Summary
ModifierConstructorDescriptionprotected
Shadow
(Shadow.Kind kind, Member signature, Shadow enclosingShadow) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMunger
(ShadowMunger munger) protected boolean
checkCanThrow
(ShadowMunger munger, ResolvedType resolvedTypeX) protected boolean
checkMunger
(ShadowMunger munger) Only does the check if the munger requires it (@AJ aspects don't)abstract Var
getArgAnnotationVar
(int i, UnresolvedType forAnnotationType) int
getArgType
(int arg) abstract Var
getArgVar
(int i) abstract Member
abstract UnresolvedType
abstract World
getKind()
returns the kind of shadow this is, representing what happens under this shadowabstract Var
getKindedAnnotationVar
(UnresolvedType forAnnotationType) returns the signature of the thing under this shadow, with any synthetic arguments removedreturns the resolved signature of the thing under this shadowreturns the signature of the thing under this shadowabstract ISourceLocation
abstract Var
getTargetAnnotationVar
(UnresolvedType forAnnotationType) final UnresolvedType
the type of the target object hereabstract Var
a var referencing the targetabstract Var
getThisAnnotationVar
(UnresolvedType forAnnotationType) abstract Var
getThisAspectInstanceVar
(ResolvedType aspectType) abstract Var
abstract Var
abstract Var
final UnresolvedType
the type of the this object hereabstract Var
a var referencing thisabstract Var
getWithinAnnotationVar
(UnresolvedType forAnnotationType) abstract Var
getWithinCodeAnnotationVar
(UnresolvedType forAnnotationType) final boolean
could target(*) pcd ever matchfinal boolean
hasThis()
could this(*) pcd ever matchstatic int
howMany
(int i) Return count of how many bits set in the supplied parameter.final void
boolean
boolean
protected void
Prepare the shadow for implementation.void
setMatchingSignature
(Member member) toResolvedString
(World world) static Set
<Shadow.Kind> toSet
(int i) Convert a bit array for the shadow kinds into a set of them...toString()
-
Field Details
-
enclosingShadow
-
mungers
-
needAroundClosureStacking
protected boolean needAroundClosureStacking -
shadowId
public int shadowId -
METHOD_EXECUTION
-
METHOD_CALL
-
CONSTRUCTOR_EXECUTION
-
CONSTRUCTOR_CALL
-
FIELD_GET
-
FIELD_SET
-
STATICINITIALIZATION
-
PREINITIALIZATION
-
INITIALIZATION
-
EXCEPTION_HANDLER
-
SYNCHRONIZATION_LOCK
-
SYNCHRONIZATION_UNLOCK
-
ADVICE_EXECUTION
-
MethodCall
These names are the ones that will be returned by thisJoinPoint.getKind() Those need to be documented somewhere -
ConstructorCall
-
MethodExecution
-
ConstructorExecution
-
FieldGet
-
FieldSet
-
StaticInitialization
-
PreInitialization
-
AdviceExecution
-
Initialization
-
ExceptionHandler
-
SynchronizationLock
-
SynchronizationUnlock
-
MethodCallBit
public static final int MethodCallBit- See Also:
-
ConstructorCallBit
public static final int ConstructorCallBit- See Also:
-
MethodExecutionBit
public static final int MethodExecutionBit- See Also:
-
ConstructorExecutionBit
public static final int ConstructorExecutionBit- See Also:
-
FieldGetBit
public static final int FieldGetBit- See Also:
-
FieldSetBit
public static final int FieldSetBit- See Also:
-
StaticInitializationBit
public static final int StaticInitializationBit- See Also:
-
PreInitializationBit
public static final int PreInitializationBit- See Also:
-
AdviceExecutionBit
public static final int AdviceExecutionBit- See Also:
-
InitializationBit
public static final int InitializationBit- See Also:
-
ExceptionHandlerBit
public static final int ExceptionHandlerBit- See Also:
-
SynchronizationLockBit
public static final int SynchronizationLockBit- See Also:
-
SynchronizationUnlockBit
public static final int SynchronizationUnlockBit- See Also:
-
MAX_SHADOW_KIND
public static final int MAX_SHADOW_KIND- See Also:
-
SHADOW_KINDS
-
ALL_SHADOW_KINDS_BITS
public static final int ALL_SHADOW_KINDS_BITS -
NO_SHADOW_KINDS_BITS
public static final int NO_SHADOW_KINDS_BITS
-
-
Constructor Details
-
Shadow
-
-
Method Details
-
getIWorld
-
getMungers
-
hasThis
public final boolean hasThis()could this(*) pcd ever match -
getThisType
the type of the this object here- Throws:
IllegalStateException
- if there is no this here
-
getThisVar
a var referencing this- Throws:
IllegalStateException
- if there is no target here
-
hasTarget
public final boolean hasTarget()could target(*) pcd ever match -
getTargetType
the type of the target object here- Throws:
IllegalStateException
- if there is no target here
-
getTargetVar
a var referencing the target- Throws:
IllegalStateException
- if there is no target here
-
getArgTypes
-
isShadowForArrayConstructionJoinpoint
public boolean isShadowForArrayConstructionJoinpoint() -
isShadowForMonitor
public boolean isShadowForMonitor() -
getArgumentTypesForArrayConstructionShadow
-
getGenericArgTypes
-
getArgType
-
getArgCount
public int getArgCount() -
getEnclosingType
-
getArgVar
-
getThisJoinPointVar
-
getThisJoinPointStaticPartVar
-
getThisEnclosingJoinPointStaticPartVar
-
getThisAspectInstanceVar
-
getKindedAnnotationVar
-
getWithinAnnotationVar
-
getWithinCodeAnnotationVar
-
getThisAnnotationVar
-
getTargetAnnotationVar
-
getArgAnnotationVar
-
getEnclosingCodeSignature
-
getKind
returns the kind of shadow this is, representing what happens under this shadow -
getSignature
returns the signature of the thing under this shadow -
getMatchingSignature
returns the signature of the thing under this shadow, with any synthetic arguments removed -
setMatchingSignature
-
getResolvedSignature
returns the resolved signature of the thing under this shadow -
getReturnType
-
howMany
public static int howMany(int i) Return count of how many bits set in the supplied parameter. -
checkMunger
Only does the check if the munger requires it (@AJ aspects don't)- Parameters:
munger
-- Returns:
-
checkCanThrow
-
addMunger
-
implement
public final void implement() -
prepareForMungers
protected void prepareForMungers()Prepare the shadow for implementation. After this is done, the shadow should be in such a position that each munger simply needs to be implemented. -
getSourceLocation
-
toString
-
toResolvedString
-
toSet
Convert a bit array for the shadow kinds into a set of them... should only be used for testing - mainline code should do bit manipulation!
-