Class ControlFlowPointcut

    • Constructor Detail

      • ControlFlowPointcut

        public ControlFlowPointcut​(Class<?> clazz)
        Construct a new pointcut that matches all control flows below that class.
        Parameters:
        clazz - the clazz
      • ControlFlowPointcut

        public ControlFlowPointcut​(Class<?> clazz,
                                   String methodName)
        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 clazz
        methodName - the name of the method (may be null)
    • Method Detail

      • matches

        public boolean matches​(Class<?> clazz)
        Subclasses can override this for greater filtering (and performance).
        Specified by:
        matches in interface ClassFilter
        Parameters:
        clazz - the candidate target class
        Returns:
        whether the advice should apply to the given target class
      • matches

        public boolean matches​(Method method,
                               Class<?> targetClass)
        Subclasses can override this if it's possible to filter out some candidate classes.
        Specified by:
        matches in interface MethodMatcher
        Parameters:
        method - the candidate method
        targetClass - the target class (may be null, in which case the candidate class must be taken to be the method's declaring class)
        Returns:
        whether or not this method matches statically
      • matches

        public boolean matches​(Method method,
                               Class<?> targetClass,
                               Object... args)
        Description copied from interface: MethodMatcher
        Check whether there a runtime (dynamic) match for this method, which must have matched statically.

        This method is invoked only if the 2-arg matches method returns true for the given method and target class, and if the MethodMatcher.isRuntime() method returns true. Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.

        Specified by:
        matches in interface MethodMatcher
        Parameters:
        method - the candidate method
        targetClass - the target class (may be null, in which case the candidate class must be taken to be the method's declaring class)
        args - arguments to the method
        Returns:
        whether there's a runtime match
        See Also:
        MethodMatcher.matches(Method, Class)
      • getEvaluations

        public int getEvaluations()
        It's useful to know how many times we've fired, for optimization.