org.springframework.aop.support
Class MethodMatchers

java.lang.Object
  extended by org.springframework.aop.support.MethodMatchers

public abstract class MethodMatchers
extends java.lang.Object

Static utility methods for composing MethodMatchers.

A MethodMatcher may be evaluated statically (based on method and target class) or need further evaluation dynamically (based on arguments at the time of method invocation).

Since:
11.11.2003
Author:
Rod Johnson, Rob Harrop, Juergen Hoeller
See Also:
ClassFilters, Pointcuts

Nested Class Summary
private static class MethodMatchers.ClassFilterAwareUnionMethodMatcher
          MethodMatcher implementation for a union of two given MethodMatchers, supporting an associated ClassFilter per MethodMatcher.
private static class MethodMatchers.IntersectionMethodMatcher
          MethodMatcher implementation for an intersection of two given MethodMatchers.
private static class MethodMatchers.UnionMethodMatcher
          MethodMatcher implementation for a union of two given MethodMatchers.
 
Constructor Summary
MethodMatchers()
           
 
Method Summary
static MethodMatcher intersection(MethodMatcher mm1, MethodMatcher mm2)
          Match all methods that both of the given MethodMatchers match.
static boolean matches(MethodMatcher mm, java.lang.reflect.Method method, java.lang.Class targetClass, boolean hasIntroductions)
          Apply the given MethodMatcher to the given Method, supporting an IntroductionAwareMethodMatcher (if applicable).
(package private) static MethodMatcher union(MethodMatcher mm1, ClassFilter cf1, MethodMatcher mm2, ClassFilter cf2)
          Match all methods that either (or both) of the given MethodMatchers matches.
static MethodMatcher union(MethodMatcher mm1, MethodMatcher mm2)
          Match all methods that either (or both) of the given MethodMatchers matches.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodMatchers

public MethodMatchers()
Method Detail

union

public static MethodMatcher union(MethodMatcher mm1,
                                  MethodMatcher mm2)
Match all methods that either (or both) of the given MethodMatchers matches.

Parameters:
mm1 - the first MethodMatcher
mm2 - the second MethodMatcher
Returns:
a distinct MethodMatcher that matches all methods that either of the given MethodMatchers matches

union

static MethodMatcher union(MethodMatcher mm1,
                           ClassFilter cf1,
                           MethodMatcher mm2,
                           ClassFilter cf2)
Match all methods that either (or both) of the given MethodMatchers matches.

Parameters:
mm1 - the first MethodMatcher
cf1 - the corresponding ClassFilter for the first MethodMatcher
mm2 - the second MethodMatcher
cf2 - the corresponding ClassFilter for the second MethodMatcher
Returns:
a distinct MethodMatcher that matches all methods that either of the given MethodMatchers matches

intersection

public static MethodMatcher intersection(MethodMatcher mm1,
                                         MethodMatcher mm2)
Match all methods that both of the given MethodMatchers match.

Parameters:
mm1 - the first MethodMatcher
mm2 - the second MethodMatcher
Returns:
a distinct MethodMatcher that matches all methods that both of the given MethodMatchers match

matches

public static boolean matches(MethodMatcher mm,
                              java.lang.reflect.Method method,
                              java.lang.Class targetClass,
                              boolean hasIntroductions)
Apply the given MethodMatcher to the given Method, supporting an IntroductionAwareMethodMatcher (if applicable).

Parameters:
mm - the MethodMatcher to apply (may be an IntroductionAwareMethodMatcher)
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)
hasIntroductions - true if the object on whose behalf we are asking is the subject on one or more introductions; false otherwise
Returns:
whether or not this method matches statically