org.springframework.cache.interceptor

## Interface CacheOperationSource

- All Known Implementing Classes:
    AbstractFallbackCacheOperationSource, AnnotationCacheOperationSource, CompositeCacheOperationSource, NameMatchCacheOperationSource

      public interface CacheOperationSource

  Interface used by `CacheInterceptor`. Implementations know how to source cache operation attributes, whether from configuration, metadata attributes at source level, or elsewhere.
  Since:
    3.1
  Author:
    Costin Leau, Juergen Hoeller

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `default boolean` | `isCandidateClass(Class<?> targetClass)` Determine whether the given class is a candidate for cache operations in the metadata format of this `CacheOperationSource`.

- - ### Method Detail

    - #### isCandidateClass

          default boolean isCandidateClass(Class<?> targetClass)

      Determine whether the given class is a candidate for cache operations in the metadata format of this `CacheOperationSource`.

      If this method returns `false`, the methods on the given class will not get traversed for `getCacheOperations(java.lang.reflect.Method, java.lang.Class<?>)` introspection. Returning `false` is therefore an optimization for non-affected classes, whereas `true` simply means that the class needs to get fully introspected for each method on the given class individually.

      Parameters:
        `targetClass` - the class to introspect
      Returns:
        `false` if the class is known to have no cache operation metadata at class or method level; `true` otherwise. The default implementation returns `true`, leading to regular introspection.
      Since:
        5.2

    - #### getCacheOperations

          @Nullable
          Collection<CacheOperation> getCacheOperations(Method method,
                                                                  @Nullable
                                                                  Class<?> targetClass)

      Return the collection of cache operations for this method, or `null` if the method contains no cacheable annotations.
      Parameters:
        `method` - the method to introspect
        `targetClass` - the target class (may 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