org.aspectj.weaver.tools

Interface PointcutExpression

public interface PointcutExpression

Represents an AspectJ pointcut expression and provides convenience methods to determine whether or not the pointcut matches join points specified in terms of the java.lang.reflect interfaces.

Method Summary

boolean
couldMatchJoinPointsInType(Class aClass)
Determine whether or not this pointcut could ever match a join point in the given class.
String
getPointcutExpression()
Return a string representation of this pointcut expression.
ShadowMatch
matchesAdviceExecution(Method anAdviceMethod)
Determine whether or not this pointcut matches the execution of a given piece of advice.
ShadowMatch
matchesConstructorCall(Constructor aConstructor, Class callerType)
Determine whether or not this pointcut matches a method call to the given constructor, made outside of the scope of any method or constructor, but within the callerType.
ShadowMatch
matchesConstructorCall(Constructor aConstructor, Member withinCode)
Determine whether or not this pointcut matches a method call to the given constructor, made during the execution of the given method or constructor.
ShadowMatch
matchesConstructorExecution(Constructor aConstructor)
Determine whether or not this pointcut matches the execution of a given constructor.
ShadowMatch
matchesFieldGet(Field aField, Class withinType)
Determine whether or not this pointcut matches a get of the given field outside of the scope of any method or constructor, but within the given type (for example, during static initialization).
ShadowMatch
matchesFieldGet(Field aField, Member withinCode)
Determine whether or not this pointcut matches a get of the given field from within the given method or constructor.
ShadowMatch
matchesFieldSet(Field aField, Class withinType)
Determine whether or not this pointcut matches a set of the given field outside of the scope of any method or constructor, but within the given type (for example, during static initialization).
ShadowMatch
matchesFieldSet(Field aField, Member withinCode)
Determine whether or not this pointcut matches a set of the given field from within the given method or constructor.
ShadowMatch
matchesHandler(Class exceptionType, Class handlingType)
Determine whether or not this pointcut matches the execution of a given exception handler outside of the scope of any method or constructor, but within the handling type.
ShadowMatch
matchesHandler(Class exceptionType, Member withinCode)
Determine whether or not this pointcut matches the execution of a given exception handler within the given method or constructor
ShadowMatch
matchesInitialization(Constructor aConstructor)
Determine whether or not this pointcut matches the initialization of an object initiated by a call to the given constructor.
ShadowMatch
matchesMethodCall(Method aMethod, Class callerType)
Determine whether or not this pointcut matches a method call to the given method, made outside of the scope of any method or constructor, but within the callerType (for example, during static initialization of the type).
ShadowMatch
matchesMethodCall(Method aMethod, Member withinCode)
Determine whether or not this pointcut matches a method call to the given method, made during the execution of the given method or constructor.
ShadowMatch
matchesMethodExecution(Method aMethod)
Determine whether or not this pointcut matches the execution of a given method.
ShadowMatch
matchesPreInitialization(Constructor aConstructor)
Determine whether or not this pointcut matches the pre-initialization of an object initiated by a call to the given constructor.
ShadowMatch
matchesStaticInitialization(Class aClass)
Determine whether or not this pointcut matches the static initialization of the given class.
boolean
mayNeedDynamicTest()
Returns true iff this pointcut contains any expression that might necessitate a dynamic test at some join point (e.g.
void
setMatchingContext(MatchingContext aMatchContext)
Set the matching context to be used for subsequent calls to match.

Method Details

couldMatchJoinPointsInType

public boolean couldMatchJoinPointsInType(Class aClass)
Determine whether or not this pointcut could ever match a join point in the given class.
Parameters:
aClass - the candidate class
Returns:
true iff this pointcut may match a join point within(aClass), and false otherwise

getPointcutExpression

public String getPointcutExpression()
Return a string representation of this pointcut expression.

matchesAdviceExecution

public ShadowMatch matchesAdviceExecution(Method anAdviceMethod)
Determine whether or not this pointcut matches the execution of a given piece of advice.
Parameters:
anAdviceMethod - a method representing the advice being executed
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing the execution of the advice.

matchesConstructorCall

public ShadowMatch matchesConstructorCall(Constructor aConstructor,
                                          Class callerType)
Determine whether or not this pointcut matches a method call to the given constructor, made outside of the scope of any method or constructor, but within the callerType.
Parameters:
aConstructor - the cosstructor being called
callerType - the declared type of the caller
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing a call to this constructor during the execution of the given member.

matchesConstructorCall

public ShadowMatch matchesConstructorCall(Constructor aConstructor,
                                          Member withinCode)
Determine whether or not this pointcut matches a method call to the given constructor, made during the execution of the given method or constructor.
Parameters:
aConstructor - the constructor being called
withinCode - the Method or Constructor from within which the call is made
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing a call to this constructor during the execution of the given member.

matchesConstructorExecution

public ShadowMatch matchesConstructorExecution(Constructor aConstructor)
Determine whether or not this pointcut matches the execution of a given constructor.
Parameters:
aConstructor - the constructor being executed
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing the execution of the constructor.

matchesFieldGet

public ShadowMatch matchesFieldGet(Field aField,
                                   Class withinType)
Determine whether or not this pointcut matches a get of the given field outside of the scope of any method or constructor, but within the given type (for example, during static initialization).
Parameters:
aField - the field being accessed
withinType - the type owning the call site
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches field get join points for the given field and call site.

matchesFieldGet

public ShadowMatch matchesFieldGet(Field aField,
                                   Member withinCode)
Determine whether or not this pointcut matches a get of the given field from within the given method or constructor.
Parameters:
aField - the field being updated
withinCode - the Method or Constructor owning the call site
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches field get join points for the given field and call site.

matchesFieldSet

public ShadowMatch matchesFieldSet(Field aField,
                                   Class withinType)
Determine whether or not this pointcut matches a set of the given field outside of the scope of any method or constructor, but within the given type (for example, during static initialization).
Parameters:
aField - the field being updated
withinType - the type owning the call site
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches field set join points for the given field and call site.

matchesFieldSet

public ShadowMatch matchesFieldSet(Field aField,
                                   Member withinCode)
Determine whether or not this pointcut matches a set of the given field from within the given method or constructor.
Parameters:
aField - the field being updated
withinCode - the Method or Constructor owning the call site
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches field set join points for the given field and call site.

matchesHandler

public ShadowMatch matchesHandler(Class exceptionType,
                                  Class handlingType)
Determine whether or not this pointcut matches the execution of a given exception handler outside of the scope of any method or constructor, but within the handling type.
Parameters:
exceptionType - the static type of the exception being handled
handlingType - the type in which the handler block is executing
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing the handling of the given exception

matchesHandler

public ShadowMatch matchesHandler(Class exceptionType,
                                  Member withinCode)
Determine whether or not this pointcut matches the execution of a given exception handler within the given method or constructor
Parameters:
exceptionType - the static type of the exception being handled
withinCode - the method or constructor in which the catch block is declared
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing the handling of the given exception

matchesInitialization

public ShadowMatch matchesInitialization(Constructor aConstructor)
Determine whether or not this pointcut matches the initialization of an object initiated by a call to the given constructor.
Parameters:
aConstructor - the constructor initiating the initialization
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing initialization via the given constructor.

matchesMethodCall

public ShadowMatch matchesMethodCall(Method aMethod,
                                     Class callerType)
Determine whether or not this pointcut matches a method call to the given method, made outside of the scope of any method or constructor, but within the callerType (for example, during static initialization of the type).
Parameters:
aMethod - the method being called
callerType - the declared type of the caller
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing a call to this method during the execution of the given member.

matchesMethodCall

public ShadowMatch matchesMethodCall(Method aMethod,
                                     Member withinCode)
Determine whether or not this pointcut matches a method call to the given method, made during the execution of the given method or constructor.
Parameters:
aMethod - the method being called
withinCode - the Method or Constructor from within which the call is made
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing a call to this method during the execution of the given member.

matchesMethodExecution

public ShadowMatch matchesMethodExecution(Method aMethod)
Determine whether or not this pointcut matches the execution of a given method.
Parameters:
aMethod - the method being executed
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing the execution of the method.

matchesPreInitialization

public ShadowMatch matchesPreInitialization(Constructor aConstructor)
Determine whether or not this pointcut matches the pre-initialization of an object initiated by a call to the given constructor.
Parameters:
aConstructor - the constructor initiating the initialization
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matches join points representing pre-initialization via the given constructor.

matchesStaticInitialization

public ShadowMatch matchesStaticInitialization(Class aClass)
Determine whether or not this pointcut matches the static initialization of the given class.
Parameters:
aClass - the class being statically initialized
Returns:
a ShadowMatch indicating whether the pointcut always, sometimes, or never matchs join points representing the static initialization of the given type

mayNeedDynamicTest

public boolean mayNeedDynamicTest()
Returns true iff this pointcut contains any expression that might necessitate a dynamic test at some join point (e.g. args)

setMatchingContext

public void setMatchingContext(MatchingContext aMatchContext)
Set the matching context to be used for subsequent calls to match.