Search in sources :

Example 6 with CachePut

use of javax.cache.annotation.CachePut in project spring-framework by spring-projects.

the class AnnotationJCacheOperationSource method findCacheOperation.

@Override
protected JCacheOperation<?> findCacheOperation(Method method, @Nullable Class<?> targetType) {
    CacheResult cacheResult = method.getAnnotation(CacheResult.class);
    CachePut cachePut = method.getAnnotation(CachePut.class);
    CacheRemove cacheRemove = method.getAnnotation(CacheRemove.class);
    CacheRemoveAll cacheRemoveAll = method.getAnnotation(CacheRemoveAll.class);
    int found = countNonNull(cacheResult, cachePut, cacheRemove, cacheRemoveAll);
    if (found == 0) {
        return null;
    }
    if (found > 1) {
        throw new IllegalStateException("More than one cache annotation found on '" + method + "'");
    }
    CacheDefaults defaults = getCacheDefaults(method, targetType);
    if (cacheResult != null) {
        return createCacheResultOperation(method, defaults, cacheResult);
    } else if (cachePut != null) {
        return createCachePutOperation(method, defaults, cachePut);
    } else if (cacheRemove != null) {
        return createCacheRemoveOperation(method, defaults, cacheRemove);
    } else {
        return createCacheRemoveAllOperation(method, defaults, cacheRemoveAll);
    }
}
Also used : CacheRemove(javax.cache.annotation.CacheRemove) CacheDefaults(javax.cache.annotation.CacheDefaults) CacheResult(javax.cache.annotation.CacheResult) CacheRemoveAll(javax.cache.annotation.CacheRemoveAll) CachePut(javax.cache.annotation.CachePut)

Aggregations

CachePut (javax.cache.annotation.CachePut)6 CacheRemove (javax.cache.annotation.CacheRemove)4 CacheResult (javax.cache.annotation.CacheResult)4 CacheRemoveAll (javax.cache.annotation.CacheRemoveAll)3 CacheKeyGenerator (javax.cache.annotation.CacheKeyGenerator)2 CacheResolverFactory (javax.cache.annotation.CacheResolverFactory)2 PayaraCacheKeyInvocationContext (fish.payara.cdi.jsr107.implementation.PayaraCacheKeyInvocationContext)1 CacheDefaults (javax.cache.annotation.CacheDefaults)1 AroundInvoke (javax.interceptor.AroundInvoke)1 CacheResolver (org.springframework.cache.interceptor.CacheResolver)1 KeyGenerator (org.springframework.cache.interceptor.KeyGenerator)1