/**
  * Create a new instance.
  *
  * @param methodDetails the {@link CacheMethodDetails} related to the cached method
  * @param cacheResolver the cache resolver to resolve regular caches
  */
 protected BaseCacheOperation(CacheMethodDetails<A> methodDetails, CacheResolver cacheResolver) {
   Assert.notNull(methodDetails, "method details must not be null.");
   Assert.notNull(cacheResolver, "cache resolver must not be null.");
   this.methodDetails = methodDetails;
   this.cacheResolver = cacheResolver;
   this.allParameterDetails = initializeAllParameterDetails(methodDetails.getMethod());
 }
 @Override
 public String getCacheName() {
   return methodDetails.getCacheName();
 }
 @Override
 public A getCacheAnnotation() {
   return methodDetails.getCacheAnnotation();
 }
 @Override
 public Set<Annotation> getAnnotations() {
   return methodDetails.getAnnotations();
 }
 @Override
 public Method getMethod() {
   return methodDetails.getMethod();
 }