public class org.springframework.scripting.support.StandardScriptFactory extends java.lang.Object implements org.springframework.scripting.ScriptFactory, org.springframework.beans.factory.BeanClassLoaderAware
{
private final java.lang.String scriptEngineName;
private final java.lang.String scriptSourceLocator;
private final java.lang.Class[] scriptInterfaces;
private java.lang.ClassLoader beanClassLoader;
private volatile javax.script.ScriptEngine scriptEngine;
public void <init>(java.lang.String)
{
java.lang.Class[] v;
java.lang.String v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: java.lang.String;
v = (java.lang.Class[]) null;
specialinvoke v.<org.springframework.scripting.support.StandardScriptFactory: void <init>(java.lang.String,java.lang.String,java.lang.Class[])>(null, v, v);
return;
}
public transient void <init>(java.lang.String, java.lang.Class[])
{
java.lang.Class[] v;
java.lang.String v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class[];
specialinvoke v.<org.springframework.scripting.support.StandardScriptFactory: void <init>(java.lang.String,java.lang.String,java.lang.Class[])>(null, v, v);
return;
}
public void <init>(java.lang.String, java.lang.String)
{
java.lang.Class[] v;
java.lang.String v, v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = (java.lang.Class[]) null;
specialinvoke v.<org.springframework.scripting.support.StandardScriptFactory: void <init>(java.lang.String,java.lang.String,java.lang.Class[])>(v, v, v);
return;
}
public transient void <init>(java.lang.String, java.lang.String, java.lang.Class[])
{
java.lang.Class[] v;
java.lang.ClassLoader v;
java.lang.String v, v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class[];
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader getDefaultClassLoader()>();
v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.ClassLoader beanClassLoader> = v;
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "\'scriptSourceLocator\' must not be empty");
v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.String scriptEngineName> = v;
v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.String scriptSourceLocator> = v;
v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.Class[] scriptInterfaces> = v;
return;
}
public void setBeanClassLoader(java.lang.ClassLoader)
{
java.lang.ClassLoader v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: java.lang.ClassLoader;
v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.ClassLoader beanClassLoader> = v;
return;
}
public java.lang.String getScriptSourceLocator()
{
java.lang.String v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.String scriptSourceLocator>;
return v;
}
public java.lang.Class[] getScriptInterfaces()
{
java.lang.Class[] v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.Class[] scriptInterfaces>;
return v;
}
public boolean requiresConfigInterface()
{
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
return 0;
}
public transient java.lang.Object getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class[]) throws java.io.IOException, org.springframework.scripting.ScriptCompilationException
{
org.springframework.scripting.support.StandardScriptFactory v;
int v, v;
java.lang.InstantiationException v;
java.lang.String v, v, v, v;
boolean v, v, v, v, v, v;
java.lang.IllegalAccessException v;
java.lang.Class[] v;
org.springframework.scripting.ScriptCompilationException v, v;
org.springframework.scripting.ScriptSource v;
java.lang.Class v;
java.lang.Object v, v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: org.springframework.scripting.ScriptSource;
v := @parameter: java.lang.Class[];
v = virtualinvoke v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.Object evaluateScript(org.springframework.scripting.ScriptSource)>(v);
v = staticinvoke <org.springframework.util.ObjectUtils: boolean isEmpty(java.lang.Object[])>(v);
if v != 0 goto label;
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof java.lang.Class;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
goto label;
label:
v = virtualinvoke v.<java.lang.Class: boolean isInstance(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = v + 1;
goto label;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.Object adaptToInterfaces(java.lang.Object,org.springframework.scripting.ScriptSource,java.lang.Class[])>(v, v, v);
label:
v = v instanceof java.lang.Class;
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.scripting.ScriptCompilationException;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("Unable to instantiate script class: \u0001");
specialinvoke v.<org.springframework.scripting.ScriptCompilationException: void <init>(org.springframework.scripting.ScriptSource,java.lang.String,java.lang.Throwable)>(v, v, v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.scripting.ScriptCompilationException;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("Could not access script constructor: \u0001");
specialinvoke v.<org.springframework.scripting.ScriptCompilationException: void <init>(org.springframework.scripting.ScriptSource,java.lang.String,java.lang.Throwable)>(v, v, v);
throw v;
label:
return v;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
}
protected java.lang.Object evaluateScript(org.springframework.scripting.ScriptSource)
{
java.lang.IllegalStateException v;
org.springframework.scripting.support.StandardScriptFactory v;
java.lang.Exception v;
org.springframework.scripting.ScriptCompilationException v;
org.springframework.scripting.ScriptSource v;
javax.script.ScriptEngine v, v, v, v;
java.lang.Object v;
java.lang.String v, v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: org.springframework.scripting.ScriptSource;
label:
v = v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine>;
if v != null goto label;
v = virtualinvoke v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine retrieveScriptEngine(org.springframework.scripting.ScriptSource)>(v);
v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine> = v;
v = v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine>;
if v != null goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.springframework.scripting.ScriptSource)>(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[])>("Could not determine script engine for \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine>;
v = interfaceinvoke v.<org.springframework.scripting.ScriptSource: java.lang.String getScriptAsString()>();
v = interfaceinvoke v.<javax.script.ScriptEngine: java.lang.Object eval(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.scripting.ScriptCompilationException;
specialinvoke v.<org.springframework.scripting.ScriptCompilationException: void <init>(org.springframework.scripting.ScriptSource,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
protected javax.script.ScriptEngine retrieveScriptEngine(org.springframework.scripting.ScriptSource)
{
javax.script.ScriptEngineManager v;
org.springframework.scripting.support.StandardScriptFactory v;
org.springframework.scripting.ScriptSource v;
javax.script.ScriptEngine v, v;
java.lang.ClassLoader v;
java.lang.String v, v, v, v;
boolean v;
org.springframework.core.io.Resource v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: org.springframework.scripting.ScriptSource;
v = new javax.script.ScriptEngineManager;
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.ClassLoader beanClassLoader>;
specialinvoke v.<javax.script.ScriptEngineManager: void <init>(java.lang.ClassLoader)>(v);
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.String scriptEngineName>;
if v == null goto label;
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.String scriptEngineName>;
v = staticinvoke <org.springframework.scripting.support.StandardScriptUtils: javax.script.ScriptEngine retrieveEngineByName(javax.script.ScriptEngineManager,java.lang.String)>(v, v);
return v;
label:
v = v instanceof org.springframework.scripting.support.ResourceScriptSource;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.scripting.support.ResourceScriptSource: org.springframework.core.io.Resource getResource()>();
v = interfaceinvoke v.<org.springframework.core.io.Resource: java.lang.String getFilename()>();
if v == null goto label;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String getFilenameExtension(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<javax.script.ScriptEngineManager: javax.script.ScriptEngine getEngineByExtension(java.lang.String)>(v);
if v == null goto label;
return v;
label:
return null;
}
protected transient java.lang.Object adaptToInterfaces(java.lang.Object, org.springframework.scripting.ScriptSource, java.lang.Class[])
{
org.springframework.scripting.support.StandardScriptFactory v;
int v;
java.lang.String v, v, v;
boolean v;
java.lang.Class[] v;
org.springframework.scripting.ScriptCompilationException v, v;
org.springframework.scripting.ScriptSource v;
javax.script.ScriptEngine v, v, v;
java.lang.Class v;
java.lang.Object v;
java.lang.ClassLoader v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: java.lang.Object;
v := @parameter: org.springframework.scripting.ScriptSource;
v := @parameter: java.lang.Class[];
v = lengthof v;
if v != 1 goto label;
v = v[0];
goto label;
label:
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.ClassLoader beanClassLoader>;
v = staticinvoke <org.springframework.util.ClassUtils: java.lang.Class createCompositeInterface(java.lang.Class[],java.lang.ClassLoader)>(v, v);
label:
if v == null goto label;
v = v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine>;
v = v instanceof javax.script.Invocable;
if v != 0 goto label;
v = new org.springframework.scripting.ScriptCompilationException;
v = v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.script.ScriptEngine)>(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[])>("ScriptEngine must implement Invocable in order to adapt it to an interface: \u0001");
specialinvoke v.<org.springframework.scripting.ScriptCompilationException: void <init>(org.springframework.scripting.ScriptSource,java.lang.String)>(v, v);
throw v;
label:
v = v.<org.springframework.scripting.support.StandardScriptFactory: javax.script.ScriptEngine scriptEngine>;
if v == null goto label;
v = interfaceinvoke v.<javax.script.Invocable: java.lang.Object getInterface(java.lang.Object,java.lang.Class)>(v, v);
label:
if v != null goto label;
v = interfaceinvoke v.<javax.script.Invocable: java.lang.Object getInterface(java.lang.Class)>(v);
if v != null goto label;
v = new org.springframework.scripting.ScriptCompilationException;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("Could not adapt script to interface [\u]");
specialinvoke v.<org.springframework.scripting.ScriptCompilationException: void <init>(org.springframework.scripting.ScriptSource,java.lang.String)>(v, v);
throw v;
label:
return v;
}
public java.lang.Class getScriptedObjectType(org.springframework.scripting.ScriptSource) throws java.io.IOException, org.springframework.scripting.ScriptCompilationException
{
org.springframework.scripting.ScriptSource v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: org.springframework.scripting.ScriptSource;
return null;
}
public boolean requiresScriptedObjectRefresh(org.springframework.scripting.ScriptSource)
{
org.springframework.scripting.ScriptSource v;
org.springframework.scripting.support.StandardScriptFactory v;
boolean v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v := @parameter: org.springframework.scripting.ScriptSource;
v = interfaceinvoke v.<org.springframework.scripting.ScriptSource: boolean isModified()>();
return v;
}
public java.lang.String toString()
{
java.lang.String v, v;
org.springframework.scripting.support.StandardScriptFactory v;
v := @this: org.springframework.scripting.support.StandardScriptFactory;
v = v.<org.springframework.scripting.support.StandardScriptFactory: java.lang.String scriptSourceLocator>;
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[])>("StandardScriptFactory: script source locator [\u]");
return v;
}
}