Class 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:
  • Constructor Details

    • NameMatchMethodPointcut

      public NameMatchMethodPointcut()
  • Method Details

    • setMappedName

      public void setMappedName(String mappedName)
      Convenience method when we have only a single method name to match. Use either this method or setMappedNames, not both.
      See Also:
    • 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 - the 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 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
      Returns:
      whether 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 class
      mappedName - the name in the descriptor
      Returns:
      if the names match
      See Also:
    • equals

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

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

      public String toString()
      Overrides:
      toString in class Object