public class org.finos.legend.engine.repl.shared.ExecutionHelper extends java.lang.Object
{
public static final java.lang.String REPL_RUN_FUNCTION_QUALIFIED_PATH;
public static final java.lang.String REPL_RUN_FUNCTION_SIGNATURE;
public void <init>()
{
org.finos.legend.engine.repl.shared.ExecutionHelper v;
v := @this: org.finos.legend.engine.repl.shared.ExecutionHelper;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static org.finos.legend.engine.shared.core.identity.Identity resolveIdentityFromLocalSubject(org.finos.legend.engine.repl.client.Client)
{
org.finos.legend.engine.shared.core.identity.Identity v, v;
org.finos.legend.engine.repl.client.Client v;
java.lang.Exception v;
javax.security.auth.Subject v;
boolean v;
v := @parameter: org.finos.legend.engine.repl.client.Client;
label:
v = staticinvoke <org.finos.legend.engine.shared.core.kerberos.SubjectTools: javax.security.auth.Subject getLocalSubject()>();
v = staticinvoke <org.finos.legend.engine.shared.core.identity.Identity: org.finos.legend.engine.shared.core.identity.Identity makeIdentity(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: boolean isDebug()>();
if v == 0 goto label;
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>("Error: Couldn\'t resolve identity from local subject");
label:
v = staticinvoke <org.finos.legend.engine.shared.core.identity.Identity: org.finos.legend.engine.shared.core.identity.Identity getAnonymousIdentity()>();
return v;
catch java.lang.Exception from label to label with label;
}
public static org.finos.legend.engine.repl.shared.ExecutionHelper$ExecuteResultSummary executeCode(java.lang.String, org.finos.legend.engine.repl.client.Client, org.eclipse.collections.api.block.function.Function)
{
org.finos.legend.engine.shared.core.identity.Identity v;
org.eclipse.collections.api.list.MutableList v, v;
org.finos.legend.engine.repl.client.ModelState v;
org.finos.legend.engine.repl.core.legend.LegendInterface v, v;
org.eclipse.collections.api.RichIterable v;
org.finos.legend.engine.plan.execution.PlanExecutor v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
boolean v, v, v, v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
java.lang.Exception v;
org.eclipse.collections.api.list.ListIterable v;
org.eclipse.collections.api.block.function.Function v, v;
java.util.HashMap v;
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.block.function.Function v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.plan.execution.result.Result v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.RuntimeException v;
org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan v;
org.finos.legend.engine.protocol.pure.v.model.executionPlan.ExecutionPlan v;
java.lang.Object v;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.repl.client.Client;
v := @parameter: org.eclipse.collections.api.block.function.Function;
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[])>("###Pure\nfunction repl::__internal__::run():Any[*]\n{\n\u;\n}");
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: boolean isDebug()>();
if v == 0 goto label;
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printDebug(java.lang.String)>("---------------------------------------- INPUT ----------------------------------------");
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[])>("Function: \u0001");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.client.ModelState getModelState()>();
v = virtualinvoke v.<org.finos.legend.engine.repl.client.ModelState: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData parseWithTransient(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: boolean isDebug()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.String writeValueAsString(java.lang.Object)>(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[])>("PMCD: \u0001");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.core.legend.LegendInterface getLegendInterface()>();
v = interfaceinvoke v.<org.finos.legend.engine.repl.core.legend.LegendInterface: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel compile(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData)>(v);
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.core.legend.LegendInterface getLegendInterface()>();
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: boolean isDebug()>();
v = interfaceinvoke v.<org.finos.legend.engine.repl.core.legend.LegendInterface: org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan generatePlan(org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel,boolean)>(v, v);
v = staticinvoke <org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader: org.eclipse.collections.api.list.MutableList extensions()>();
v = staticinvoke <org.finos.legend.engine.repl.shared.ExecutionHelper$lambda_executeCode_6e84f241_1__38: org.eclipse.collections.api.block.function.Function bootstrap$(org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList flatCollect(org.eclipse.collections.api.block.function.Function)>(v);
v = <org.finos.legend.engine.plan.generation.transformers.LegendPlanTransformers: org.eclipse.collections.api.list.ListIterable transformers>;
v = staticinvoke <org.finos.legend.engine.plan.generation.PlanGenerator: java.lang.String serializeToJSON(org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan,java.lang.String,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel,org.eclipse.collections.api.RichIterable,java.lang.Iterable)>(v, "vX_X_X", v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: boolean isDebug()>();
if v == 0 goto label;
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printDebug(java.lang.String)>("---------------------------------------- PLAN ----------------------------------------");
v = staticinvoke <org.finos.legend.engine.repl.shared.ExecutionHelper$_type__39: org.eclipse.collections.api.block.function.Function bootstrap$()>();
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: org.eclipse.collections.api.RichIterable collect(org.eclipse.collections.api.block.function.Function)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: java.lang.String makeString(java.lang.String)>(", ");
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[])>("Extensions: \u0001");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>(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[])>("Generated Plan: \u0001");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>(v);
label:
v = staticinvoke <org.finos.legend.engine.repl.shared.ExecutionHelper: org.finos.legend.engine.shared.core.identity.Identity resolveIdentityFromLocalSubject(org.finos.legend.engine.repl.client.Client)>(v);
v = staticinvoke <org.finos.legend.engine.plan.execution.PlanExecutor: org.finos.legend.engine.protocol.pure.v.model.executionPlan.ExecutionPlan readExecutionPlan(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.plan.execution.PlanExecutor getPlanExecutor()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.PlanExecutor: org.finos.legend.engine.plan.execution.result.Result execute(org.finos.legend.engine.protocol.pure.v.model.executionPlan.SingleExecutionPlan,java.util.Map,java.lang.String,org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.plan.execution.PlanExecutionContext)>(v, v, v, v, null);
v = interfaceinvoke v.<org.eclipse.collections.api.block.function.Function3: java.lang.Object value(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
return v;
catch java.lang.Exception from label to label with label;
}
}