org.springframework.cache.interceptor

Class NameMatchCacheOperationSource

  • java.lang.Object
    • org.springframework.cache.interceptor.NameMatchCacheOperationSource
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      protected static Log logger
      Logger available to subclasses.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void addCacheMethod(java.lang.String methodName, java.util.Collection<CacheOperation> ops)
      Add an attribute for a cacheable method.
      boolean equals(java.lang.Object other) 
      java.util.Collection<CacheOperation> getCacheOperations(java.lang.reflect.Method method, java.lang.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(java.lang.String methodName, java.lang.String mappedName)
      Return if the given method name matches the mapped name.
      void setNameMap(java.util.Map<java.lang.String,java.util.Collection<CacheOperation>> nameMap)
      Set a name/attribute map, consisting of method names (e.g.
      java.lang.String toString() 
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • logger

        protected static final Log logger
        Logger available to subclasses.

        Static for optimal serialization.

    • Constructor Detail

      • NameMatchCacheOperationSource

        public NameMatchCacheOperationSource()
    • Method Detail

      • setNameMap

        public void setNameMap(java.util.Map<java.lang.String,java.util.Collection<CacheOperation>> nameMap)
        Set a name/attribute map, consisting of method names (e.g. "myMethod") and CacheOperation instances (or Strings to be converted to CacheOperation instances).
        See Also:
        CacheOperation
      • addCacheMethod

        public void addCacheMethod(java.lang.String methodName,
                                   java.util.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 java.util.Collection<CacheOperation> getCacheOperations(java.lang.reflect.Method method,
                                                                                 @Nullable
                                                                                 java.lang.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 (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
      • isMatch

        protected boolean isMatch(java.lang.String methodName,
                                  java.lang.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(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object