class org.springframework.scripting.config.ScriptBeanDefinitionParser extends org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
{
private static final java.lang.String ENGINE_ATTRIBUTE;
private static final java.lang.String SCRIPT_SOURCE_ATTRIBUTE;
private static final java.lang.String INLINE_SCRIPT_ELEMENT;
private static final java.lang.String SCOPE_ATTRIBUTE;
private static final java.lang.String AUTOWIRE_ATTRIBUTE;
private static final java.lang.String DEPENDENCY_CHECK_ATTRIBUTE;
private static final java.lang.String DEPENDS_ON_ATTRIBUTE;
private static final java.lang.String INIT_METHOD_ATTRIBUTE;
private static final java.lang.String DESTROY_METHOD_ATTRIBUTE;
private static final java.lang.String SCRIPT_INTERFACES_ATTRIBUTE;
private static final java.lang.String REFRESH_CHECK_DELAY_ATTRIBUTE;
private static final java.lang.String PROXY_TARGET_CLASS_ATTRIBUTE;
private static final java.lang.String CUSTOMIZER_REF_ATTRIBUTE;
private final java.lang.String scriptFactoryClassName;
public void <init>(java.lang.String)
{
org.springframework.scripting.config.ScriptBeanDefinitionParser v;
java.lang.String v;
v := @this: org.springframework.scripting.config.ScriptBeanDefinitionParser;
v := @parameter: java.lang.String;
specialinvoke v.<org.springframework.beans.factory.xml.AbstractBeanDefinitionParser: void <init>()>();
v.<org.springframework.scripting.config.ScriptBeanDefinitionParser: java.lang.String scriptFactoryClassName> = v;
return;
}
protected org.springframework.beans.factory.support.AbstractBeanDefinition parseInternal(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext)
{
org.springframework.beans.factory.support.BeanDefinitionDefaults v;
org.springframework.beans.factory.xml.XmlReaderContext v, v;
org.springframework.beans.factory.support.BeanDefinitionRegistry v;
java.lang.Long v;
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
org.springframework.beans.factory.config.RuntimeBeanReference v;
org.springframework.scripting.config.ScriptBeanDefinitionParser v;
java.lang.String[] v;
org.springframework.beans.factory.config.ConstructorArgumentValues v;
org.springframework.beans.factory.xml.ParserContext v;
int v, v, v, v, v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.beans.factory.support.GenericBeanDefinition v;
org.w3c.dom.Element v;
java.lang.Object v;
v := @this: org.springframework.scripting.config.ScriptBeanDefinitionParser;
v := @parameter: org.w3c.dom.Element;
v := @parameter: org.springframework.beans.factory.xml.ParserContext;
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("engine");
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.xml.XmlReaderContext getReaderContext()>();
v = specialinvoke v.<org.springframework.scripting.config.ScriptBeanDefinitionParser: java.lang.String resolveScriptSource(org.w3c.dom.Element,org.springframework.beans.factory.xml.XmlReaderContext)>(v, v);
if v != null goto label;
return null;
label:
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.support.BeanDefinitionRegistry getRegistry()>();
staticinvoke <org.springframework.scripting.config.LangNamespaceUtils: org.springframework.beans.factory.config.BeanDefinition registerScriptFactoryPostProcessorIfNecessary(org.springframework.beans.factory.support.BeanDefinitionRegistry)>(v);
v = new org.springframework.beans.factory.support.GenericBeanDefinition;
specialinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void <init>()>();
v = v.<org.springframework.scripting.config.ScriptBeanDefinitionParser: java.lang.String scriptFactoryClassName>;
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setBeanClassName(java.lang.String)>(v);
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: java.lang.Object extractSource(java.lang.Object)>(v);
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setSource(java.lang.Object)>(v);
v = <org.springframework.scripting.support.ScriptFactoryPostProcessor: java.lang.String LANGUAGE_ATTRIBUTE>;
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getLocalName()>();
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setAttribute(java.lang.String,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("scope");
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setScope(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("autowire");
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate getDelegate()>();
v = virtualinvoke v.<org.springframework.beans.factory.xml.BeanDefinitionParserDelegate: int getAutowireMode(java.lang.String)>(v);
if v != 4 goto label;
v = 2;
goto label;
label:
if v != 3 goto label;
v = 0;
label:
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setAutowireMode(int)>(v);
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("dependency-check");
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate getDelegate()>();
v = virtualinvoke v.<org.springframework.beans.factory.xml.BeanDefinitionParserDelegate: int getDependencyCheck(java.lang.String)>(v);
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setDependencyCheck(int)>(v);
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("depends-on");
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String[] tokenizeToStringArray(java.lang.String,java.lang.String)>(v, ",; ");
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setDependsOn(java.lang.String[])>(v);
label:
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate getDelegate()>();
v = virtualinvoke v.<org.springframework.beans.factory.xml.BeanDefinitionParserDelegate: org.springframework.beans.factory.support.BeanDefinitionDefaults getBeanDefinitionDefaults()>();
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("init-method");
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setInitMethodName(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.springframework.beans.factory.support.BeanDefinitionDefaults: java.lang.String getInitMethodName()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.beans.factory.support.BeanDefinitionDefaults: java.lang.String getInitMethodName()>();
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setInitMethodName(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.w3c.dom.Element: boolean hasAttribute(java.lang.String)>("destroy-method");
if v == 0 goto label;
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("destroy-method");
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setDestroyMethodName(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.springframework.beans.factory.support.BeanDefinitionDefaults: java.lang.String getDestroyMethodName()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.beans.factory.support.BeanDefinitionDefaults: java.lang.String getDestroyMethodName()>();
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setDestroyMethodName(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("refresh-check-delay");
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v == 0 goto label;
v = <org.springframework.scripting.support.ScriptFactoryPostProcessor: java.lang.String REFRESH_CHECK_DELAY_ATTRIBUTE>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(java.lang.String)>(v);
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setAttribute(java.lang.String,java.lang.Object)>(v, v);
label:
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("proxy-target-class");
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v == 0 goto label;
v = <org.springframework.scripting.support.ScriptFactoryPostProcessor: java.lang.String PROXY_TARGET_CLASS_ATTRIBUTE>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(java.lang.String)>(v);
virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: void setAttribute(java.lang.String,java.lang.Object)>(v, v);
label:
v = virtualinvoke v.<org.springframework.beans.factory.support.GenericBeanDefinition: org.springframework.beans.factory.config.ConstructorArgumentValues getConstructorArgumentValues()>();
v = 0;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
virtualinvoke v.<org.springframework.beans.factory.config.ConstructorArgumentValues: void addIndexedArgumentValue(int,java.lang.Object)>(0, v);
label:
v = v + 1;
virtualinvoke v.<org.springframework.beans.factory.config.ConstructorArgumentValues: void addIndexedArgumentValue(int,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.w3c.dom.Element: boolean hasAttribute(java.lang.String)>("script-interfaces");
if v == 0 goto label;
v = v;
v = v + 1;
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("script-interfaces");
virtualinvoke v.<org.springframework.beans.factory.config.ConstructorArgumentValues: void addIndexedArgumentValue(int,java.lang.Object,java.lang.String)>(v, v, "java.lang.Class[]");
label:
v = interfaceinvoke v.<org.w3c.dom.Element: boolean hasAttribute(java.lang.String)>("customizer-ref");
if v == 0 goto label;
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("customizer-ref");
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.xml.XmlReaderContext getReaderContext()>();
virtualinvoke v.<org.springframework.beans.factory.xml.XmlReaderContext: void error(java.lang.String,java.lang.Object)>("Attribute \'customizer-ref\' has empty value", v);
goto label;
label:
v = new org.springframework.beans.factory.config.RuntimeBeanReference;
specialinvoke v.<org.springframework.beans.factory.config.RuntimeBeanReference: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.springframework.beans.factory.config.ConstructorArgumentValues: void addIndexedArgumentValue(int,java.lang.Object)>(v, v);
label:
v = virtualinvoke v.<org.springframework.beans.factory.xml.ParserContext: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate getDelegate()>();
virtualinvoke v.<org.springframework.beans.factory.xml.BeanDefinitionParserDelegate: void parsePropertyElements(org.w3c.dom.Element,org.springframework.beans.factory.config.BeanDefinition)>(v, v);
return v;
}
private java.lang.String resolveScriptSource(org.w3c.dom.Element, org.springframework.beans.factory.xml.XmlReaderContext)
{
org.springframework.scripting.config.ScriptBeanDefinitionParser v;
org.springframework.beans.factory.xml.XmlReaderContext v;
java.util.List v;
org.w3c.dom.Element v;
java.lang.Object v;
java.lang.String v, v, v;
boolean v, v, v;
v := @this: org.springframework.scripting.config.ScriptBeanDefinitionParser;
v := @parameter: org.w3c.dom.Element;
v := @parameter: org.springframework.beans.factory.xml.XmlReaderContext;
v = interfaceinvoke v.<org.w3c.dom.Element: boolean hasAttribute(java.lang.String)>("script-source");
v = staticinvoke <org.springframework.util.xml.DomUtils: java.util.List getChildElementsByTagName(org.w3c.dom.Element,java.lang.String)>(v, "inline-script");
if v == 0 goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
virtualinvoke v.<org.springframework.beans.factory.xml.XmlReaderContext: void error(java.lang.String,java.lang.Object)>("Only one of \'script-source\' and \'inline-script\' should be specified.", v);
return null;
label:
if v == 0 goto label;
v = interfaceinvoke v.<org.w3c.dom.Element: java.lang.String getAttribute(java.lang.String)>("script-source");
return v;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = staticinvoke <org.springframework.util.xml.DomUtils: java.lang.String getTextValue(org.w3c.dom.Element)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("inline:\u0001");
return v;
label:
virtualinvoke v.<org.springframework.beans.factory.xml.XmlReaderContext: void error(java.lang.String,java.lang.Object)>("Must specify either \'script-source\' or \'inline-script\'.", v);
return null;
}
protected boolean shouldGenerateIdAsFallback()
{
org.springframework.scripting.config.ScriptBeanDefinitionParser v;
v := @this: org.springframework.scripting.config.ScriptBeanDefinitionParser;
return 1;
}
}