Class ControlFlowPointcut
- All Implemented Interfaces:
Serializable
,ClassFilter
,MethodMatcher
,Pointcut
Note that evaluating such pointcuts is 10-15 times slower than evaluating normal pointcuts, but they are useful in some cases.
- Author:
- Rod Johnson, Rob Harrop, Juergen Hoeller, Sam Brannen
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Class<?>
The class against which to match.protected final String
The method against which to match, potentiallynull
.Fields inherited from interface org.springframework.aop.ClassFilter
TRUE
Fields inherited from interface org.springframework.aop.MethodMatcher
TRUE
-
Constructor Summary
ConstructorDescriptionControlFlowPointcut
(Class<?> clazz) Construct a new pointcut that matches all control flows below the given class.ControlFlowPointcut
(Class<?> clazz, String methodName) Construct a new pointcut that matches all calls below the given method in the given class. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Return the ClassFilter for this pointcut.int
Get the number of timesmatches(Method, Class, Object...)
has been evaluated.Return the MethodMatcher for this pointcut.int
hashCode()
protected final void
Increment theevaluation count
.boolean
Is thisMethodMatcher
dynamic, that is, must a final check be made via theMethodMatcher.matches(Method, Class, Object[])
method at runtime even ifMethodMatcher.matches(Method, Class)
returnstrue
?boolean
Subclasses can override this for greater filtering (and performance).boolean
Subclasses can override this if it's possible to filter out some candidate classes.boolean
Check whether there is a runtime (dynamic) match for this method, which must have matched statically.toString()
-
Field Details
-
clazz
The class against which to match.Available for use in subclasses since 6.1.
-
methodName
The method against which to match, potentiallynull
.Available for use in subclasses since 6.1.
-
-
Constructor Details
-
ControlFlowPointcut
Construct a new pointcut that matches all control flows below the given class.- Parameters:
clazz
- the class
-
ControlFlowPointcut
Construct a new pointcut that matches all calls below the given method in the given class.If no method name is given, the pointcut matches all control flows below the given class.
- Parameters:
clazz
- the classmethodName
- the name of the method (may benull
)
-
-
Method Details
-
matches
Subclasses can override this for greater filtering (and performance).The default implementation always returns
true
.- Specified by:
matches
in interfaceClassFilter
- Parameters:
clazz
- the candidate target class- Returns:
- whether the advice should apply to the given target class
-
matches
Subclasses can override this if it's possible to filter out some candidate classes.The default implementation always returns
true
.- Specified by:
matches
in interfaceMethodMatcher
- Parameters:
method
- the candidate methodtargetClass
- the target class- Returns:
- whether this method matches statically
-
isRuntime
public boolean isRuntime()Description copied from interface:MethodMatcher
Is thisMethodMatcher
dynamic, that is, must a final check be made via theMethodMatcher.matches(Method, Class, Object[])
method at runtime even ifMethodMatcher.matches(Method, Class)
returnstrue
?Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation.
- Specified by:
isRuntime
in interfaceMethodMatcher
- Returns:
- whether a runtime match via
MethodMatcher.matches(Method, Class, Object[])
is required if static matching passed
-
matches
Description copied from interface:MethodMatcher
Check whether there is a runtime (dynamic) match for this method, which must have matched statically.This method is invoked only if
MethodMatcher.matches(Method, Class)
returnstrue
for the given method and target class, and ifMethodMatcher.isRuntime()
returnstrue
.Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.
- Specified by:
matches
in interfaceMethodMatcher
- Parameters:
method
- the candidate methodtargetClass
- the target classargs
- arguments to the method- Returns:
- whether there's a runtime match
- See Also:
-
getEvaluations
public int getEvaluations()Get the number of timesmatches(Method, Class, Object...)
has been evaluated.Useful for optimization and testing purposes.
-
incrementEvaluationCount
protected final void incrementEvaluationCount()Increment theevaluation count
.- Since:
- 6.1
- See Also:
-
getClassFilter
Description copied from interface:Pointcut
Return the ClassFilter for this pointcut.- Specified by:
getClassFilter
in interfacePointcut
- Returns:
- the ClassFilter (never
null
)
-
getMethodMatcher
Description copied from interface:Pointcut
Return the MethodMatcher for this pointcut.- Specified by:
getMethodMatcher
in interfacePointcut
- Returns:
- the MethodMatcher (never
null
)
-
equals
-
hashCode
public int hashCode() -
toString
-