Package org.springframework.aop.support
Class ControlFlowPointcut
java.lang.Object
org.springframework.aop.support.ControlFlowPointcut
- All Implemented Interfaces:
Serializable,ClassFilter,MethodMatcher,Pointcut
public class ControlFlowPointcut
extends Object
implements Pointcut, ClassFilter, MethodMatcher, Serializable
Pointcut and method matcher for use in simple cflow-style 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
Fields inherited from interface org.springframework.aop.ClassFilter
TRUEFields inherited from interface org.springframework.aop.MethodMatcher
TRUE -
Constructor Summary
ConstructorsConstructorDescriptionControlFlowPointcut(Class<?> clazz) Construct a new pointcut that matches all control flows below that 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 TypeMethodDescriptionbooleanReturn the ClassFilter for this pointcut.intIt's useful to know how many times we've fired, for optimization.Return the MethodMatcher for this pointcut.inthashCode()booleanIs thisMethodMatcherdynamic, that is, must a final check be made via theMethodMatcher.matches(Method, Class, Object[])method at runtime even ifMethodMatcher.matches(Method, Class)returnstrue?booleanSubclasses can override this for greater filtering (and performance).booleanSubclasses can override this if it's possible to filter out some candidate classes.booleanCheck whether there is a runtime (dynamic) match for this method, which must have matched statically.toString()
-
Constructor Details
-
ControlFlowPointcut
Construct a new pointcut that matches all control flows below that class.- Parameters:
clazz- the clazz
-
ControlFlowPointcut
Construct a new pointcut that matches all calls below the given method in the given class. If no method name is given, matches all control flows below the given class.- Parameters:
clazz- the clazzmethodName- the name of the method (may benull)
-
-
Method Details
-
matches
Subclasses can override this for greater filtering (and performance).- Specified by:
matchesin 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.- Specified by:
matchesin interfaceMethodMatcher- Parameters:
method- the candidate methodtargetClass- the target class- Returns:
- whether this method matches statically
-
isRuntime
public boolean isRuntime()Description copied from interface:MethodMatcherIs thisMethodMatcherdynamic, 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:
isRuntimein interfaceMethodMatcher- Returns:
- whether a runtime match via
MethodMatcher.matches(Method, Class, Object[])is required if static matching passed
-
matches
Description copied from interface:MethodMatcherCheck 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)returnstruefor 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:
matchesin 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()It's useful to know how many times we've fired, for optimization. -
getClassFilter
Description copied from interface:PointcutReturn the ClassFilter for this pointcut.- Specified by:
getClassFilterin interfacePointcut- Returns:
- the ClassFilter (never
null)
-
getMethodMatcher
Description copied from interface:PointcutReturn the MethodMatcher for this pointcut.- Specified by:
getMethodMatcherin interfacePointcut- Returns:
- the MethodMatcher (never
null)
-
equals
-
hashCode
public int hashCode() -
toString
-