org.springframework.aop.support
Class MethodMatchers.IntersectionMethodMatcher

java.lang.Object
  extended by org.springframework.aop.support.MethodMatchers.IntersectionMethodMatcher
All Implemented Interfaces:
java.io.Serializable, IntroductionAwareMethodMatcher, MethodMatcher
Enclosing class:
MethodMatchers

private static class MethodMatchers.IntersectionMethodMatcher
extends java.lang.Object
implements IntroductionAwareMethodMatcher, java.io.Serializable

MethodMatcher implementation for an intersection of two given MethodMatchers.


Field Summary
private  MethodMatcher mm1
           
private  MethodMatcher mm2
           
 
Fields inherited from interface org.springframework.aop.MethodMatcher
TRUE
 
Constructor Summary
MethodMatchers.IntersectionMethodMatcher(MethodMatcher mm1, MethodMatcher mm2)
           
 
Method Summary
 boolean equals(java.lang.Object other)
           
 int hashCode()
           
 boolean isRuntime()
          Is this MethodMatcher dynamic, that is, must a final call be made on the MethodMatcher.matches(java.lang.reflect.Method, Class, Object[]) method at runtime even if the 2-arg matches method returns true?
 boolean matches(java.lang.reflect.Method method, java.lang.Class targetClass)
          Perform static checking whether the given method matches.
 boolean matches(java.lang.reflect.Method method, java.lang.Class targetClass, boolean hasIntroductions)
          Perform static checking whether the given method matches.
 boolean matches(java.lang.reflect.Method method, java.lang.Class targetClass, java.lang.Object[] args)
          Check whether there a runtime (dynamic) match for this method, which must have matched statically.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mm1

private MethodMatcher mm1

mm2

private MethodMatcher mm2
Constructor Detail

MethodMatchers.IntersectionMethodMatcher

public MethodMatchers.IntersectionMethodMatcher(MethodMatcher mm1,
                                                MethodMatcher mm2)
Method Detail

matches

public boolean matches(java.lang.reflect.Method method,
                       java.lang.Class targetClass,
                       boolean hasIntroductions)
Description copied from interface: IntroductionAwareMethodMatcher
Perform static checking whether the given method matches. This may be invoked instead of the 2-arg MethodMatcher.matches(java.lang.reflect.Method, Class) method if the caller supports the extended IntroductionAwareMethodMatcher interface.

Specified by:
matches in interface IntroductionAwareMethodMatcher
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)
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

matches

public boolean matches(java.lang.reflect.Method method,
                       java.lang.Class targetClass)
Description copied from interface: MethodMatcher
Perform static checking whether the given method matches. If this returns false or if the MethodMatcher.isRuntime() method returns false, no runtime check (i.e. no. MethodMatcher.matches(java.lang.reflect.Method, Class, Object[]) call) will be made.

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

isRuntime

public boolean isRuntime()
Description copied from interface: MethodMatcher
Is this MethodMatcher dynamic, that is, must a final call be made on the MethodMatcher.matches(java.lang.reflect.Method, Class, Object[]) method at runtime even if the 2-arg matches method returns true?

Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation,

Specified by:
isRuntime in interface MethodMatcher
Returns:
whether or not a runtime match via the 3-arg MethodMatcher.matches(java.lang.reflect.Method, Class, Object[]) method is required if static matching passed

matches

public boolean matches(java.lang.reflect.Method method,
                       java.lang.Class targetClass,
                       java.lang.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)

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object