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 class
A type-safe enum representing the kind of shadows -
Field Summary
Modifier and TypeFieldDescriptionstatic String
static Shadow.Kind
static int
static int
static String
static String
static Shadow.Kind
static int
static Shadow.Kind
static int
protected Shadow
static String
static Shadow.Kind
static int
static String
static String
static Shadow.Kind
static int
static Shadow.Kind
static int
static Shadow.Kind
static String
static int
static int
static String
static String
static Shadow.Kind
These names are the ones that will be returned by thisJoinPoint.getKind() Those need to be documented somewherestatic int
static Shadow.Kind
static int
protected List<ShadowMunger>
protected boolean
static int
static Shadow.Kind
static String
static int
static Shadow.Kind[]
int
static Shadow.Kind
static String
static int
static String
static String
static Shadow.Kind
static int
static Shadow.Kind
static 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)
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
the type of the this object hereabstract Var
a var referencing thisabstract Var
getWithinAnnotationVar(UnresolvedType forAnnotationType)
abstract Var
getWithinCodeAnnotationVar(UnresolvedType forAnnotationType)
boolean
could target(*) pcd ever matchboolean
hasThis()
could this(*) pcd ever matchstatic int
howMany(int i)
Return count of how many bits set in the supplied parameter.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... should only be used for testing - mainline code should do bit manipulation!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:
- Constant Field Values
-
ConstructorCallBit
public static final int ConstructorCallBit- See Also:
- Constant Field Values
-
MethodExecutionBit
public static final int MethodExecutionBit- See Also:
- Constant Field Values
-
ConstructorExecutionBit
public static final int ConstructorExecutionBit- See Also:
- Constant Field Values
-
FieldGetBit
public static final int FieldGetBit- See Also:
- Constant Field Values
-
FieldSetBit
public static final int FieldSetBit- See Also:
- Constant Field Values
-
StaticInitializationBit
public static final int StaticInitializationBit- See Also:
- Constant Field Values
-
PreInitializationBit
public static final int PreInitializationBit- See Also:
- Constant Field Values
-
AdviceExecutionBit
public static final int AdviceExecutionBit- See Also:
- Constant Field Values
-
InitializationBit
public static final int InitializationBit- See Also:
- Constant Field Values
-
ExceptionHandlerBit
public static final int ExceptionHandlerBit- See Also:
- Constant Field Values
-
SynchronizationLockBit
public static final int SynchronizationLockBit- See Also:
- Constant Field Values
-
SynchronizationUnlockBit
public static final int SynchronizationUnlockBit- See Also:
- Constant Field Values
-
MAX_SHADOW_KIND
public static final int MAX_SHADOW_KIND- See Also:
- Constant Field Values
-
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!
-