Package org.springframework.aop.support
Class NameMatchMethodPointcut
- java.lang.Object
- org.springframework.aop.support.StaticMethodMatcher
- org.springframework.aop.support.StaticMethodMatcherPointcut
- org.springframework.aop.support.NameMatchMethodPointcut
- All Implemented Interfaces:
Serializable
,MethodMatcher
,Pointcut
public class NameMatchMethodPointcut extends StaticMethodMatcherPointcut implements Serializable
Pointcut bean for simple method name matches, as an alternative to regexp patterns.Does not handle overloaded methods: all methods with a given name will be eligible.
- Since:
- 11.02.2004
- Author:
- Juergen Hoeller, Rod Johnson, Rob Harrop
- See Also:
isMatch(java.lang.String, java.lang.String)
, Serialized Form
Field Summary
Fields inherited from interface org.springframework.aop.MethodMatcher
TRUE
Constructor Summary
Constructors Constructor Description NameMatchMethodPointcut()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NameMatchMethodPointcut
addMethodName(String name)
Add another eligible method name, in addition to those already named.boolean
equals(Object other)
int
hashCode()
protected boolean
isMatch(String methodName, String mappedName)
Return if the given method name matches the mapped name.boolean
matches(Method method, Class<?> targetClass)
Perform static checking whether the given method matches.void
setMappedName(String mappedName)
Convenience method when we have only a single method name to match.void
setMappedNames(String... mappedNames)
Set the method names defining methods to match.Methods inherited from class org.springframework.aop.support.StaticMethodMatcherPointcut
getClassFilter, getMethodMatcher, setClassFilter
Methods inherited from class org.springframework.aop.support.StaticMethodMatcher
isRuntime, matches
Constructor Detail
NameMatchMethodPointcut
public NameMatchMethodPointcut()
Method Detail
setMappedName
public void setMappedName(String mappedName)
Convenience method when we have only a single method name to match. Use either this method orsetMappedNames
, not both.- See Also:
setMappedNames(java.lang.String...)
setMappedNames
public void setMappedNames(String... mappedNames)
Set the method names defining methods to match. Matching will be the union of all these; if any match, the pointcut matches.
addMethodName
public NameMatchMethodPointcut addMethodName(String name)
Add another eligible method name, in addition to those already named. Like the set methods, this method is for use when configuring proxies, before a proxy is used.NB: This method does not work after the proxy is in use, as advice chains will be cached.
- Parameters:
name
- name of the additional method that will match- Returns:
- this pointcut to allow for multiple additions in one line
matches
public boolean matches(Method method, Class<?> targetClass)
Description copied from interface:MethodMatcher
Perform static checking whether the given method matches.If this returns
false
or if theMethodMatcher.isRuntime()
method returnsfalse
, no runtime check (i.e. noMethodMatcher.matches(java.lang.reflect.Method, Class, Object[])
call) will be made.- Specified by:
matches
in interfaceMethodMatcher
- Parameters:
method
- the candidate methodtargetClass
- the target class (may benull
, in which case the candidate class must be taken to be the method's declaring class)- Returns:
- whether or not this method matches statically
isMatch
protected boolean isMatch(String methodName, String mappedName)
Return if the given method name matches the mapped name.The default implementation checks for "xxx*", "*xxx" and "*xxx*" matches, as well as direct equality. Can be overridden in subclasses.
- Parameters:
methodName
- the method name of the classmappedName
- the name in the descriptor- Returns:
- if the names match
- See Also:
PatternMatchUtils.simpleMatch(String, String)