public class org.finos.legend.engine.ide.api.execution.go.GoRun extends java.lang.Object implements org.finos.legend.engine.ide.session.SimpleFunction
{
public void <init>()
{
org.finos.legend.engine.ide.api.execution.go.GoRun v;
v := @this: org.finos.legend.engine.ide.api.execution.go.GoRun;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void run(org.finos.legend.engine.ide.session.PureSession, org.json.simple.JSONObject, org.json.simple.JSONArray, javax.servlet.http.HttpServletResponse, java.io.OutputStream) throws java.lang.Exception
{
byte[] v, v, v, v, v, v, v;
org.finos.legend.pure.m.serialization.runtime.cache.PureGraphCache v;
org.finos.legend.engine.ide.helpers.response.IDEResponse v;
org.eclipse.collections.api.RichIterable v;
org.finos.legend.engine.ide.session.PureSession v;
org.finos.legend.engine.ide.api.execution.go.GoRun$JSONPrintStream v;
boolean v, v, v;
org.finos.legend.engine.ide.api.execution.go.GoRun v;
org.finos.legend.pure.m.serialization.runtime.PureRuntime v;
java.lang.Exception v;
org.json.simple.JSONObject v;
org.finos.legend.pure.m.serialization.runtime.cache.CacheState v;
org.finos.legend.pure.m.execution.FunctionExecution v;
java.lang.Throwable v;
java.io.ByteArrayOutputStream v, v, v, v;
org.eclipse.collections.api.factory.map.MutableMapFactory v;
org.json.simple.JSONArray v;
org.eclipse.collections.impl.list.mutable.FastList v;
org.eclipse.collections.api.map.MutableMap v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
java.io.OutputStream v;
java.io.PrintStream v, v, v;
java.util.Iterator v;
javax.servlet.http.HttpServletResponse v;
java.lang.RuntimeException v;
org.finos.legend.pure.m.coreinstance.CoreInstance v;
org.finos.legend.pure.m.execution.Console v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.ide.api.execution.go.GoRun;
v := @parameter: org.finos.legend.engine.ide.session.PureSession;
v := @parameter: org.json.simple.JSONObject;
v := @parameter: org.json.simple.JSONArray;
v := @parameter: javax.servlet.http.HttpServletResponse;
v := @parameter: java.io.OutputStream;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.runtime.PureRuntime getPureRuntime()>();
virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: org.finos.legend.pure.m.SourceMutation compile()>();
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)>("go():Any[*]");
if null != v goto label;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Please write a go function. Example: function go():Any[*]{print(\'ok\');}");
throw v;
label:
v = null;
label:
v = "{\"text\":\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.execution.FunctionExecution getFunctionExecution()>();
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.execution.Console getConsole()>();
v = new org.finos.legend.engine.ide.api.execution.go.GoRun$JSONPrintStream;
specialinvoke v.<org.finos.legend.engine.ide.api.execution.go.GoRun$JSONPrintStream: void <init>(java.io.OutputStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setPrintStream(java.io.PrintStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setConsole(boolean)>(1);
v = staticinvoke <org.eclipse.collections.impl.list.mutable.FastList: org.eclipse.collections.impl.list.mutable.FastList newList()>();
interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.coreinstance.CoreInstance start(org.finos.legend.pure.m.coreinstance.CoreInstance,org.eclipse.collections.api.list.ListIterable)>(v, v);
v = "\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
label:
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.PrintStream;
specialinvoke v.<java.io.PrintStream: void <init>(java.io.OutputStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setPrintStream(java.io.PrintStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setConsole(boolean)>(0);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.lang.Exception: void printStackTrace()>();
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = staticinvoke <org.finos.legend.engine.ide.helpers.response.ExceptionTranslation: org.finos.legend.engine.ide.helpers.response.IDEResponse buildExceptionMessage(org.finos.legend.engine.ide.session.PureSession,java.lang.Throwable,java.io.ByteArrayOutputStream)>(v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.ide.helpers.response.IDEResponse: java.lang.String getText()>();
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[])>("\n\u0001");
v = staticinvoke <org.json.simple.JSONValue: java.lang.String escape(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = "\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = v instanceof org.finos.legend.engine.ide.helpers.response.IDEExceptionResponse;
if v == 0 goto label;
v = <org.eclipse.collections.api.factory.Maps: org.eclipse.collections.api.factory.map.MutableMapFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.map.MutableMapFactory: org.eclipse.collections.api.map.MutableMap of()>();
virtualinvoke v.<org.finos.legend.engine.ide.helpers.response.IDEExceptionResponse: void addJsonKeyValues(org.eclipse.collections.api.map.MutableMap)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.RichIterable keysView()>();
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <org.json.simple.JSONValue: java.lang.String toJSONString(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>(",\"\u0001\":\u0001");
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
goto label;
label:
if null == v goto label;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.PrintStream;
specialinvoke v.<java.io.PrintStream: void <init>(java.io.OutputStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setPrintStream(java.io.PrintStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setConsole(boolean)>(0);
goto label;
label:
v := @caughtexception;
if null == v goto label;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.PrintStream;
specialinvoke v.<java.io.PrintStream: void <init>(java.io.OutputStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setPrintStream(java.io.PrintStream)>(v);
interfaceinvoke v.<org.finos.legend.pure.m.execution.Console: void setConsole(boolean)>(0);
label:
throw v;
label:
if null == v goto label;
v = virtualinvoke v.<org.json.simple.JSONArray: java.lang.String toJSONString()>();
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[])>(",\"modifiedFiles\":\u0001");
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
label:
v = staticinvoke <org.json.simple.JSONValue: java.lang.String escape(java.lang.String)>("pureSession.getCompilerLogs()");
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: org.finos.legend.pure.m.serialization.runtime.cache.PureGraphCache getCache()>();
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.runtime.cache.PureGraphCache: org.finos.legend.pure.m.serialization.runtime.cache.CacheState getCacheState()>();
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.cache.CacheState: boolean isCached()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,boolean)>(v, 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[])>(",\"compiler\":\"\u0001\", \"cached\":\u0001}");
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
}