Class ComposablePointcut

java.lang.Object
org.springframework.aop.support.ComposablePointcut
All Implemented Interfaces:
Serializable, Pointcut

public class ComposablePointcut extends Object implements Pointcut, Serializable
Convenient class for building up pointcuts.

All methods return ComposablePointcut, so we can use concise idioms like in the following example.

Pointcut pc = new ComposablePointcut()
                      .union(classFilter)
                      .intersection(methodMatcher)
                      .intersection(pointcut);
Since:
11.11.2003
Author:
Rod Johnson, Juergen Hoeller, Rob Harrop
See Also:
  • Constructor Details

    • ComposablePointcut

      public ComposablePointcut()
      Create a default ComposablePointcut, with ClassFilter.TRUE and MethodMatcher.TRUE.
    • ComposablePointcut

      public ComposablePointcut(Pointcut pointcut)
      Create a ComposablePointcut based on the given Pointcut.
      Parameters:
      pointcut - the original Pointcut
    • ComposablePointcut

      public ComposablePointcut(ClassFilter classFilter)
      Create a ComposablePointcut for the given ClassFilter, with MethodMatcher.TRUE.
      Parameters:
      classFilter - the ClassFilter to use
    • ComposablePointcut

      public ComposablePointcut(MethodMatcher methodMatcher)
      Create a ComposablePointcut for the given MethodMatcher, with ClassFilter.TRUE.
      Parameters:
      methodMatcher - the MethodMatcher to use
    • ComposablePointcut

      public ComposablePointcut(ClassFilter classFilter, MethodMatcher methodMatcher)
      Create a ComposablePointcut for the given ClassFilter and MethodMatcher.
      Parameters:
      classFilter - the ClassFilter to use
      methodMatcher - the MethodMatcher to use
  • Method Details

    • union

      public ComposablePointcut union(ClassFilter other)
      Apply a union with the given ClassFilter.
      Parameters:
      other - the ClassFilter to apply a union with
      Returns:
      this composable pointcut (for call chaining)
    • intersection

      public ComposablePointcut intersection(ClassFilter other)
      Apply an intersection with the given ClassFilter.
      Parameters:
      other - the ClassFilter to apply an intersection with
      Returns:
      this composable pointcut (for call chaining)
    • union

      public ComposablePointcut union(MethodMatcher other)
      Apply a union with the given MethodMatcher.
      Parameters:
      other - the MethodMatcher to apply a union with
      Returns:
      this composable pointcut (for call chaining)
    • intersection

      public ComposablePointcut intersection(MethodMatcher other)
      Apply an intersection with the given MethodMatcher.
      Parameters:
      other - the MethodMatcher to apply an intersection with
      Returns:
      this composable pointcut (for call chaining)
    • union

      public ComposablePointcut union(Pointcut other)
      Apply a union with the given Pointcut.

      Note that for a Pointcut union, methods will only match if their original ClassFilter (from the originating Pointcut) matches as well. MethodMatchers and ClassFilters from different Pointcuts will never get interleaved with each other.

      Parameters:
      other - the Pointcut to apply a union with
      Returns:
      this composable pointcut (for call chaining)
    • intersection

      public ComposablePointcut intersection(Pointcut other)
      Apply an intersection with the given Pointcut.
      Parameters:
      other - the Pointcut to apply an intersection with
      Returns:
      this composable pointcut (for call chaining)
    • getClassFilter

      public ClassFilter getClassFilter()
      Description copied from interface: Pointcut
      Return the ClassFilter for this pointcut.
      Specified by:
      getClassFilter in interface Pointcut
      Returns:
      the ClassFilter (never null)
    • getMethodMatcher

      public MethodMatcher getMethodMatcher()
      Description copied from interface: Pointcut
      Return the MethodMatcher for this pointcut.
      Specified by:
      getMethodMatcher in interface Pointcut
      Returns:
      the MethodMatcher (never null)
    • equals

      public boolean equals(@Nullable Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object