public class org.springframework.context.expression.StandardBeanExpressionResolver extends java.lang.Object implements org.springframework.beans.factory.config.BeanExpressionResolver
{
public static final java.lang.String DEFAULT_EXPRESSION_PREFIX;
public static final java.lang.String DEFAULT_EXPRESSION_SUFFIX;
private java.lang.String expressionPrefix;
private java.lang.String expressionSuffix;
private org.springframework.expression.ExpressionParser expressionParser;
private final java.util.Map expressionCache;
private final java.util.Map evaluationCache;
private final org.springframework.expression.ParserContext beanExpressionParserContext;
public void <init>()
{
org.springframework.context.expression.StandardBeanExpressionResolver v;
java.util.concurrent.ConcurrentHashMap v, v;
org.springframework.context.expression.StandardBeanExpressionResolver$1 v;
org.springframework.expression.spel.standard.SpelExpressionParser v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.lang.String expressionPrefix> = "#{";
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.lang.String expressionSuffix> = "}";
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map expressionCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(8);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map evaluationCache> = v;
v = new org.springframework.context.expression.StandardBeanExpressionResolver$1;
specialinvoke v.<org.springframework.context.expression.StandardBeanExpressionResolver$1: void <init>(org.springframework.context.expression.StandardBeanExpressionResolver)>(v);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ParserContext beanExpressionParserContext> = v;
v = new org.springframework.expression.spel.standard.SpelExpressionParser;
specialinvoke v.<org.springframework.expression.spel.standard.SpelExpressionParser: void <init>()>();
v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ExpressionParser expressionParser> = v;
return;
}
public void <init>(java.lang.ClassLoader)
{
org.springframework.context.expression.StandardBeanExpressionResolver v;
java.util.concurrent.ConcurrentHashMap v, v;
org.springframework.context.expression.StandardBeanExpressionResolver$1 v;
org.springframework.expression.spel.standard.SpelExpressionParser v;
java.lang.ClassLoader v;
org.springframework.expression.spel.SpelParserConfiguration v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
v := @parameter: java.lang.ClassLoader;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.lang.String expressionPrefix> = "#{";
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.lang.String expressionSuffix> = "}";
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map expressionCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(8);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map evaluationCache> = v;
v = new org.springframework.context.expression.StandardBeanExpressionResolver$1;
specialinvoke v.<org.springframework.context.expression.StandardBeanExpressionResolver$1: void <init>(org.springframework.context.expression.StandardBeanExpressionResolver)>(v);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ParserContext beanExpressionParserContext> = v;
v = new org.springframework.expression.spel.standard.SpelExpressionParser;
v = new org.springframework.expression.spel.SpelParserConfiguration;
specialinvoke v.<org.springframework.expression.spel.SpelParserConfiguration: void <init>(org.springframework.expression.spel.SpelCompilerMode,java.lang.ClassLoader)>(null, v);
specialinvoke v.<org.springframework.expression.spel.standard.SpelExpressionParser: void <init>(org.springframework.expression.spel.SpelParserConfiguration)>(v);
v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ExpressionParser expressionParser> = v;
return;
}
public void setExpressionPrefix(java.lang.String)
{
java.lang.String v;
org.springframework.context.expression.StandardBeanExpressionResolver v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "Expression prefix must not be empty");
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.lang.String expressionPrefix> = v;
return;
}
public void setExpressionSuffix(java.lang.String)
{
java.lang.String v;
org.springframework.context.expression.StandardBeanExpressionResolver v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
v := @parameter: java.lang.String;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "Expression suffix must not be empty");
v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.lang.String expressionSuffix> = v;
return;
}
public void setExpressionParser(org.springframework.expression.ExpressionParser)
{
org.springframework.expression.ExpressionParser v;
org.springframework.context.expression.StandardBeanExpressionResolver v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
v := @parameter: org.springframework.expression.ExpressionParser;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "ExpressionParser must not be null");
v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ExpressionParser expressionParser> = v;
return;
}
public java.lang.Object evaluate(java.lang.String, org.springframework.beans.factory.config.BeanExpressionContext) throws org.springframework.beans.BeansException
{
java.lang.Throwable v;
org.springframework.context.expression.StandardBeanExpressionResolver v;
org.springframework.expression.ParserContext v;
org.springframework.expression.spel.support.StandardTypeConverter v;
java.util.Map v, v, v, v;
org.springframework.context.expression.BeanFactoryResolver v;
org.springframework.context.expression.MapAccessor v;
java.lang.String v;
org.springframework.core.convert.ConversionService v;
boolean v;
org.springframework.context.expression.BeanFactoryAccessor v;
org.springframework.beans.factory.BeanExpressionException v;
org.springframework.expression.spel.support.StandardTypeLocator v;
org.springframework.beans.factory.config.BeanExpressionContext v;
org.springframework.expression.ExpressionParser v;
org.springframework.context.expression.EnvironmentAccessor v;
java.lang.Object v, v, v;
org.springframework.context.expression.BeanExpressionContextAccessor v;
java.lang.ClassLoader v;
org.springframework.beans.factory.config.ConfigurableBeanFactory v, v, v;
org.springframework.expression.spel.support.StandardEvaluationContext v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.beans.factory.config.BeanExpressionContext;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v != 0 goto label;
return v;
label:
v = v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map expressionCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ExpressionParser expressionParser>;
v = v.<org.springframework.context.expression.StandardBeanExpressionResolver: org.springframework.expression.ParserContext beanExpressionParserContext>;
v = interfaceinvoke v.<org.springframework.expression.ExpressionParser: org.springframework.expression.Expression parseExpression(java.lang.String,org.springframework.expression.ParserContext)>(v, v);
v = v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map expressionCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map evaluationCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.springframework.expression.spel.support.StandardEvaluationContext;
specialinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void <init>(java.lang.Object)>(v);
v = v;
v = new org.springframework.context.expression.BeanExpressionContextAccessor;
specialinvoke v.<org.springframework.context.expression.BeanExpressionContextAccessor: void <init>()>();
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void addPropertyAccessor(org.springframework.expression.PropertyAccessor)>(v);
v = new org.springframework.context.expression.BeanFactoryAccessor;
specialinvoke v.<org.springframework.context.expression.BeanFactoryAccessor: void <init>()>();
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void addPropertyAccessor(org.springframework.expression.PropertyAccessor)>(v);
v = new org.springframework.context.expression.MapAccessor;
specialinvoke v.<org.springframework.context.expression.MapAccessor: void <init>()>();
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void addPropertyAccessor(org.springframework.expression.PropertyAccessor)>(v);
v = new org.springframework.context.expression.EnvironmentAccessor;
specialinvoke v.<org.springframework.context.expression.EnvironmentAccessor: void <init>()>();
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void addPropertyAccessor(org.springframework.expression.PropertyAccessor)>(v);
v = new org.springframework.context.expression.BeanFactoryResolver;
v = virtualinvoke v.<org.springframework.beans.factory.config.BeanExpressionContext: org.springframework.beans.factory.config.ConfigurableBeanFactory getBeanFactory()>();
specialinvoke v.<org.springframework.context.expression.BeanFactoryResolver: void <init>(org.springframework.beans.factory.BeanFactory)>(v);
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void setBeanResolver(org.springframework.expression.BeanResolver)>(v);
v = new org.springframework.expression.spel.support.StandardTypeLocator;
v = virtualinvoke v.<org.springframework.beans.factory.config.BeanExpressionContext: org.springframework.beans.factory.config.ConfigurableBeanFactory getBeanFactory()>();
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableBeanFactory: java.lang.ClassLoader getBeanClassLoader()>();
specialinvoke v.<org.springframework.expression.spel.support.StandardTypeLocator: void <init>(java.lang.ClassLoader)>(v);
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void setTypeLocator(org.springframework.expression.TypeLocator)>(v);
v = virtualinvoke v.<org.springframework.beans.factory.config.BeanExpressionContext: org.springframework.beans.factory.config.ConfigurableBeanFactory getBeanFactory()>();
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableBeanFactory: org.springframework.core.convert.ConversionService getConversionService()>();
if v == null goto label;
v = new org.springframework.expression.spel.support.StandardTypeConverter;
specialinvoke v.<org.springframework.expression.spel.support.StandardTypeConverter: void <init>(org.springframework.core.convert.ConversionService)>(v);
virtualinvoke v.<org.springframework.expression.spel.support.StandardEvaluationContext: void setTypeConverter(org.springframework.expression.TypeConverter)>(v);
label:
virtualinvoke v.<org.springframework.context.expression.StandardBeanExpressionResolver: void customizeEvaluationContext(org.springframework.expression.spel.support.StandardEvaluationContext)>(v);
v = v.<org.springframework.context.expression.StandardBeanExpressionResolver: java.util.Map evaluationCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = interfaceinvoke v.<org.springframework.expression.Expression: java.lang.Object getValue(org.springframework.expression.EvaluationContext)>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.beans.factory.BeanExpressionException;
specialinvoke v.<org.springframework.beans.factory.BeanExpressionException: void <init>(java.lang.String,java.lang.Throwable)>("Expression parsing failed", v);
throw v;
catch java.lang.Throwable from label to label with label;
}
protected void customizeEvaluationContext(org.springframework.expression.spel.support.StandardEvaluationContext)
{
org.springframework.expression.spel.support.StandardEvaluationContext v;
org.springframework.context.expression.StandardBeanExpressionResolver v;
v := @this: org.springframework.context.expression.StandardBeanExpressionResolver;
v := @parameter: org.springframework.expression.spel.support.StandardEvaluationContext;
return;
}
}