class org.springframework.cache.interceptor.CacheOperationExpressionEvaluator extends org.springframework.context.expression.CachedExpressionEvaluator
{
public static final java.lang.Object NO_RESULT;
public static final java.lang.Object RESULT_UNAVAILABLE;
public static final java.lang.String RESULT_VARIABLE;
private final java.util.Map keyCache;
private final java.util.Map conditionCache;
private final java.util.Map unlessCache;
private final java.util.Map targetMethodCache;
void <init>()
{
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
java.util.concurrent.ConcurrentHashMap v, v, v, v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
specialinvoke v.<org.springframework.context.expression.CachedExpressionEvaluator: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(64);
v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map keyCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(64);
v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map conditionCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(64);
v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map unlessCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(64);
v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map targetMethodCache> = v;
return;
}
public org.springframework.expression.EvaluationContext createEvaluationContext(java.util.Collection, java.lang.reflect.Method, java.lang.Object[], java.lang.Object, java.lang.Class, org.springframework.beans.factory.BeanFactory)
{
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
java.lang.Object[] v;
java.util.Collection v;
org.springframework.expression.EvaluationContext v;
org.springframework.beans.factory.BeanFactory v;
java.lang.Class v;
java.lang.Object v, v;
java.lang.reflect.Method v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v := @parameter: java.util.Collection;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Object[];
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v := @parameter: org.springframework.beans.factory.BeanFactory;
v = <org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.lang.Object NO_RESULT>;
v = virtualinvoke v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: org.springframework.expression.EvaluationContext createEvaluationContext(java.util.Collection,java.lang.reflect.Method,java.lang.Object[],java.lang.Object,java.lang.Class,java.lang.Object,org.springframework.beans.factory.BeanFactory)>(v, v, v, v, v, v, v);
return v;
}
public org.springframework.expression.EvaluationContext createEvaluationContext(java.util.Collection, java.lang.reflect.Method, java.lang.Object[], java.lang.Object, java.lang.Class, java.lang.Object, org.springframework.beans.factory.BeanFactory)
{
org.springframework.core.ParameterNameDiscoverer v;
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
java.lang.Object[] v;
java.util.Collection v;
org.springframework.cache.interceptor.CacheEvaluationContext v;
org.springframework.beans.factory.BeanFactory v;
org.springframework.context.expression.BeanFactoryResolver v;
org.springframework.cache.interceptor.CacheExpressionRootObject v;
java.lang.Class v;
java.lang.Object v, v, v, v;
java.lang.reflect.Method v, v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v := @parameter: java.util.Collection;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Object[];
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.Object;
v := @parameter: org.springframework.beans.factory.BeanFactory;
v = new org.springframework.cache.interceptor.CacheExpressionRootObject;
specialinvoke v.<org.springframework.cache.interceptor.CacheExpressionRootObject: void <init>(java.util.Collection,java.lang.reflect.Method,java.lang.Object[],java.lang.Object,java.lang.Class)>(v, v, v, v, v);
v = specialinvoke v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.lang.reflect.Method getTargetMethod(java.lang.Class,java.lang.reflect.Method)>(v, v);
v = new org.springframework.cache.interceptor.CacheEvaluationContext;
v = virtualinvoke v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: org.springframework.core.ParameterNameDiscoverer getParameterNameDiscoverer()>();
specialinvoke v.<org.springframework.cache.interceptor.CacheEvaluationContext: void <init>(java.lang.Object,java.lang.reflect.Method,java.lang.Object[],org.springframework.core.ParameterNameDiscoverer)>(v, v, v, v);
v = <org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.lang.Object RESULT_UNAVAILABLE>;
if v != v goto label;
virtualinvoke v.<org.springframework.cache.interceptor.CacheEvaluationContext: void addUnavailableVariable(java.lang.String)>("result");
goto label;
label:
v = <org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.lang.Object NO_RESULT>;
if v == v goto label;
virtualinvoke v.<org.springframework.cache.interceptor.CacheEvaluationContext: void setVariable(java.lang.String,java.lang.Object)>("result", v);
label:
if v == null goto label;
v = new org.springframework.context.expression.BeanFactoryResolver;
specialinvoke v.<org.springframework.context.expression.BeanFactoryResolver: void <init>(org.springframework.beans.factory.BeanFactory)>(v);
virtualinvoke v.<org.springframework.cache.interceptor.CacheEvaluationContext: void setBeanResolver(org.springframework.expression.BeanResolver)>(v);
label:
return v;
}
public java.lang.Object key(java.lang.String, org.springframework.context.expression.AnnotatedElementKey, org.springframework.expression.EvaluationContext)
{
org.springframework.context.expression.AnnotatedElementKey v;
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
java.util.Map v;
org.springframework.expression.Expression v;
java.lang.Object v;
java.lang.String v;
org.springframework.expression.EvaluationContext v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.context.expression.AnnotatedElementKey;
v := @parameter: org.springframework.expression.EvaluationContext;
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map keyCache>;
v = virtualinvoke v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: org.springframework.expression.Expression getExpression(java.util.Map,org.springframework.context.expression.AnnotatedElementKey,java.lang.String)>(v, v, v);
v = interfaceinvoke v.<org.springframework.expression.Expression: java.lang.Object getValue(org.springframework.expression.EvaluationContext)>(v);
return v;
}
public boolean condition(java.lang.String, org.springframework.context.expression.AnnotatedElementKey, org.springframework.expression.EvaluationContext)
{
org.springframework.context.expression.AnnotatedElementKey v;
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
org.springframework.expression.EvaluationContext v;
java.util.Map v;
org.springframework.expression.Expression v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.context.expression.AnnotatedElementKey;
v := @parameter: org.springframework.expression.EvaluationContext;
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map conditionCache>;
v = virtualinvoke v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: org.springframework.expression.Expression getExpression(java.util.Map,org.springframework.context.expression.AnnotatedElementKey,java.lang.String)>(v, v, v);
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = interfaceinvoke v.<org.springframework.expression.Expression: java.lang.Object getValue(org.springframework.expression.EvaluationContext,java.lang.Class)>(v, v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
}
public boolean unless(java.lang.String, org.springframework.context.expression.AnnotatedElementKey, org.springframework.expression.EvaluationContext)
{
org.springframework.context.expression.AnnotatedElementKey v;
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
org.springframework.expression.EvaluationContext v;
java.util.Map v;
org.springframework.expression.Expression v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.context.expression.AnnotatedElementKey;
v := @parameter: org.springframework.expression.EvaluationContext;
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map unlessCache>;
v = virtualinvoke v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: org.springframework.expression.Expression getExpression(java.util.Map,org.springframework.context.expression.AnnotatedElementKey,java.lang.String)>(v, v, v);
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = interfaceinvoke v.<org.springframework.expression.Expression: java.lang.Object getValue(org.springframework.expression.EvaluationContext,java.lang.Class)>(v, v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
}
void clear()
{
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
java.util.Map v, v, v, v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map keyCache>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map conditionCache>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map unlessCache>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map targetMethodCache>;
interfaceinvoke v.<java.util.Map: void clear()>();
return;
}
private java.lang.reflect.Method getTargetMethod(java.lang.Class, java.lang.reflect.Method)
{
org.springframework.context.expression.AnnotatedElementKey v;
org.springframework.cache.interceptor.CacheOperationExpressionEvaluator v;
java.util.Map v, v;
java.lang.Class v;
java.lang.Object v;
java.lang.reflect.Method v;
v := @this: org.springframework.cache.interceptor.CacheOperationExpressionEvaluator;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Method;
v = new org.springframework.context.expression.AnnotatedElementKey;
specialinvoke v.<org.springframework.context.expression.AnnotatedElementKey: void <init>(java.lang.reflect.AnnotatedElement,java.lang.Class)>(v, v);
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map targetMethodCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = staticinvoke <org.springframework.aop.support.AopUtils: java.lang.reflect.Method getMostSpecificMethod(java.lang.reflect.Method,java.lang.Class)>(v, v);
v = v.<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.util.Map targetMethodCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
}
static void <clinit>()
{
java.lang.Object v, v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.lang.Object NO_RESULT> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.springframework.cache.interceptor.CacheOperationExpressionEvaluator: java.lang.Object RESULT_UNAVAILABLE> = v;
return;
}
}