Package org.springframework.cache.interceptor

# Class NameMatchCacheOperationSource

java.lang.Object
org.springframework.cache.interceptor.NameMatchCacheOperationSource

All Implemented Interfaces:
  `Serializable`, `CacheOperationSource`

public class NameMatchCacheOperationSource extends Object implements CacheOperationSource, Serializable
Simple `CacheOperationSource` implementation that allows attributes to be matched by registered name.

Since:
  3.1
Author:
  Costin Leau
See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final org.apache.commons.logging.Log`
`logger`
Logger available to subclasses.

## Constructor Summary

Constructors
Constructor
Description
`NameMatchCacheOperationSource()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addCacheMethod(String methodName, Collection<CacheOperation> ops)`
Add an attribute for a cacheable method.
`boolean`
`equals(Object other)`
`Collection<CacheOperation>`
`getCacheOperations(Method method, Class<?> targetClass)`
Return the collection of cache operations for this method, or `null` if the method contains no cacheable annotations.
`int`
`hashCode()`
`protected boolean`
`isMatch(String methodName, String mappedName)`
Return if the given method name matches the mapped name.
`void`
`setNameMap(Map<String,Collection<CacheOperation>> nameMap)`
Set a name/attribute map, consisting of method names (for example, "myMethod") and CacheOperation instances (or Strings to be converted to CacheOperation instances).
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.cache.interceptor.CacheOperationSource

`hasCacheOperations, isCandidateClass`

## Field Details

### logger

protected static final org.apache.commons.logging.Log logger
Logger available to subclasses.

Static for optimal serialization.

## Constructor Details

### NameMatchCacheOperationSource

public NameMatchCacheOperationSource()

## Method Details

### setNameMap

public void setNameMap(Map<String,Collection<CacheOperation>> nameMap)
Set a name/attribute map, consisting of method names (for example, "myMethod") and CacheOperation instances (or Strings to be converted to CacheOperation instances).

See Also:
  - `CacheOperation`

### addCacheMethod

public void addCacheMethod(String methodName, Collection<CacheOperation> ops)
Add an attribute for a cacheable method.

Method names can be exact matches, or of the pattern "xxx*", "*xxx" or "*xxx*" for matching multiple methods.

Parameters:
  `methodName` - the name of the method
  `ops` - operation associated with the method

### getCacheOperations

@Nullable public Collection<CacheOperation> getCacheOperations(Method method, @Nullable Class<?> targetClass)
Description copied from interface: `CacheOperationSource`
Return the collection of cache operations for this method, or `null` if the method contains no cacheable annotations.

Specified by:
  `getCacheOperations` in interface `CacheOperationSource`
Parameters:
  `method` - the method to introspect
  `targetClass` - the target class (can be `null`, in which case the declaring class of the method must be used)
Returns:
  all cache operations for this method, or `null` if none found

### 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:
  - `PatternMatchUtils.simpleMatch(String, String)`

### 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`