Package org.aspectj.weaver
Class Shadow
java.lang.Object
org.aspectj.weaver.Shadow
- Direct Known Subclasses:
BcelShadow,ReflectionShadow,StandardShadow
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA type-safe enum representing the kind of shadows -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic Stringstatic final Shadow.Kindstatic final intstatic final intstatic Stringstatic Stringstatic final Shadow.Kindstatic final intstatic final Shadow.Kindstatic final intprotected final Shadowstatic Stringstatic final Shadow.Kindstatic final intstatic Stringstatic Stringstatic final Shadow.Kindstatic final intstatic final Shadow.Kindstatic final intstatic final Shadow.Kindstatic Stringstatic final intstatic final intstatic Stringstatic Stringstatic final Shadow.KindThese names are the ones that will be returned by thisJoinPoint.getKind() Those need to be documented somewherestatic final intstatic final Shadow.Kindstatic final intprotected List<ShadowMunger>protected booleanstatic final intstatic final Shadow.Kindstatic Stringstatic final intstatic final Shadow.Kind[]intstatic final Shadow.Kindstatic Stringstatic final intstatic Stringstatic Stringstatic final Shadow.Kindstatic final intstatic final Shadow.Kindstatic final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedShadow(Shadow.Kind kind, Member signature, Shadow enclosingShadow) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMunger(ShadowMunger munger) protected booleancheckCanThrow(ShadowMunger munger, ResolvedType resolvedTypeX) protected booleancheckMunger(ShadowMunger munger) Only does the check if the munger requires it (@AJ aspects don't)abstract VargetArgAnnotationVar(int i, UnresolvedType forAnnotationType) intgetArgType(int arg) abstract VargetArgVar(int i) abstract Memberabstract UnresolvedTypeabstract WorldgetKind()returns the kind of shadow this is, representing what happens under this shadowabstract VargetKindedAnnotationVar(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 ISourceLocationabstract VargetTargetAnnotationVar(UnresolvedType forAnnotationType) final UnresolvedTypethe type of the target object hereabstract Vara var referencing the targetabstract VargetThisAnnotationVar(UnresolvedType forAnnotationType) abstract VargetThisAspectInstanceVar(ResolvedType aspectType) abstract Varabstract Varabstract Varfinal UnresolvedTypethe type of the this object hereabstract Vara var referencing thisabstract VargetWithinAnnotationVar(UnresolvedType forAnnotationType) abstract VargetWithinCodeAnnotationVar(UnresolvedType forAnnotationType) final booleancould target(*) pcd ever matchfinal booleanhasThis()could this(*) pcd ever matchstatic inthowMany(int i) Return count of how many bits set in the supplied parameter.final voidbooleanbooleanprotected voidPrepare the shadow for implementation.voidsetMatchingSignature(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:
-
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!
-