public class org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager extends java.lang.Object
{
public static final java.lang.String OUTPUT_FORMAT_PARAMETER;
public static final java.lang.String OUTPUT_PROCESSOR_PARAMETER;
public static final java.lang.String OUTPUT_PROCESSOR_PARAMETER_PARAMETER;
public static final java.lang.String EXECUTION_MODE_PARAM;
public static final java.lang.String FUNCTION_PARAMETER;
public static final java.lang.String PARAMETER_PARAMETER;
public static final java.lang.String QUERY_PARAMETER;
public static final java.lang.String BLOCK_PARAMETER;
public static final java.lang.String PROCESSING_FUNC_PARAMETER;
public static final java.lang.String PROCESSING_PARAM_PARAMETER;
public static final java.lang.String OUTPUT_FORMAT_RAW;
public static final java.lang.String OUTPUT_FORMAT_PRE;
public static final java.lang.String OUTPUT_FORMAT_JSON;
public static final java.lang.String OUTPUT_FORMAT_CSV;
public static final java.lang.String OUTPUT_FORMAT_XLSX;
private static final org.eclipse.collections.api.map.ImmutableMap OUTPUT_FORMATS;
private static final org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat DEFAULT_OUTPUT_FORMAT;
private static final java.lang.String EXECUTE_FUNCTION;
private final org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser parser;
private final org.finos.legend.pure.m.execution.FunctionExecution functionExecution;
public void <init>(org.finos.legend.pure.m.execution.FunctionExecution)
{
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser v;
org.finos.legend.pure.m.execution.FunctionExecution v;
org.finos.legend.pure.m.navigation.ProcessorSupport v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: org.finos.legend.pure.m.execution.FunctionExecution;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser;
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.navigation.ProcessorSupport getProcessorSupport()>();
specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: void <init>(org.finos.legend.pure.m.navigation.ProcessorSupport)>(v);
v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser parser> = v;
v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution> = v;
return;
}
public void execute(org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest, org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter, org.finos.legend.engine.ide.api.execution.function.manager.ContentType)
{
org.finos.legend.engine.ide.api.execution.function.manager.ContentType v, v, v, v;
org.finos.legend.pure.m.navigation.ProcessorSupport v, v, v;
java.util.Map v, v;
boolean v, v, v, v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter v;
org.eclipse.collections.api.list.ListIterable v;
java.lang.StringBuilder v, v, v, v, v;
org.finos.legend.pure.m.execution.FunctionExecution v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser v;
org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat v, v, v;
java.util.function.BiConsumer v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest v;
java.lang.IllegalArgumentException v;
org.finos.legend.pure.m.coreinstance.CoreInstance v, v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation v, v, v, v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.ContentType;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.util.Map getRequestParams()>();
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat getOutputFormat(java.util.Map)>(v);
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)>("meta::pure::ide::execute_String_$0_1$__List_MANY__String_$0_1$__String_$0_1$__String_$0_1$__String_$0_1$__List_MANY__String_$0_1$__List_MANY__String_MANY_");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("func");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("block");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("query");
if v != null goto label;
if v != null goto label;
if v != null goto label;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid request, please provide one of these request parameters :");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("func");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", ");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("block");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", ");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("query");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\nRequest parameters received were:\n");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.util.Map getRequestParams()>();
v = staticinvoke <org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager$lambda_execute_0__78: java.util.function.BiConsumer bootstrap$(java.lang.StringBuilder)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat RAW>;
if v != v goto label;
if v == null goto label;
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: java.lang.String convertFunctionToFunctionId(java.lang.String)>(v);
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)>(v);
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution>;
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.navigation.ProcessorSupport getProcessorSupport()>();
v = staticinvoke <org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation fromFunction(org.finos.legend.pure.m.coreinstance.CoreInstance,org.finos.legend.pure.m.navigation.ProcessorSupport)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: java.lang.String getContentType()>();
if v != null goto label;
v = new org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.ContentType getDefaultContentType()>();
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ContentType: java.lang.String getType()>();
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: java.lang.String getDefaultContentDisposition()>();
specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: void <init>(java.lang.String,java.lang.String)>(v, v);
v = v;
goto label;
label:
v = new org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.ContentType getDefaultContentType()>();
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ContentType: java.lang.String getType()>();
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: java.lang.String getDefaultContentDisposition()>();
specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: void <init>(java.lang.String,java.lang.String)>(v, v);
v = v;
goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("outFunc");
if v == null goto label;
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: java.lang.String convertFunctionToFunctionId(java.lang.String)>(v);
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)>(v);
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution>;
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.navigation.ProcessorSupport getProcessorSupport()>();
v = staticinvoke <org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation fromFunction(org.finos.legend.pure.m.coreinstance.CoreInstance,org.finos.legend.pure.m.navigation.ProcessorSupport)>(v, v);
goto label;
label:
v = new org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation;
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat JSON>;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.ContentType getDefaultContentType()>();
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ContentType: java.lang.String getType()>();
specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: void <init>(java.lang.String,java.lang.String)>(v, null);
v = v;
label:
v = 0;
if v == null goto label;
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: boolean isStreamingDisabled()>();
if v != 0 goto label;
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution>;
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.navigation.ProcessorSupport getProcessorSupport()>();
v = staticinvoke <org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: boolean disableStreaming(org.finos.legend.pure.m.coreinstance.CoreInstance,org.finos.legend.pure.m.navigation.ProcessorSupport)>(v, v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
if v != 0 goto label;
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: boolean isStreamingOutputFunction(org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest,org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser parser>;
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.eclipse.collections.api.list.ListIterable getParameters(org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest,org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser,org.finos.legend.engine.ide.api.execution.function.manager.ContentType)>(v, v, v);
specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: void execute(org.finos.legend.pure.m.coreinstance.CoreInstance,org.eclipse.collections.api.list.ListIterable,org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter,org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation,boolean,org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat)>(v, v, v, v, v, v);
return;
}
private static boolean disableStreaming(org.finos.legend.pure.m.coreinstance.CoreInstance, org.finos.legend.pure.m.navigation.ProcessorSupport)
{
org.eclipse.collections.api.block.predicate.Predicate v;
org.eclipse.collections.api.list.ListIterable v, v;
org.finos.legend.pure.m.coreinstance.CoreInstance v, v;
boolean v;
org.finos.legend.pure.m.navigation.ProcessorSupport v;
v := @parameter: org.finos.legend.pure.m.coreinstance.CoreInstance;
v := @parameter: org.finos.legend.pure.m.navigation.ProcessorSupport;
v = interfaceinvoke v.<org.finos.legend.pure.m.coreinstance.CoreInstance: org.eclipse.collections.api.list.ListIterable getValueForMetaPropertyToMany(java.lang.String)>("stereotypes");
v = staticinvoke <org.finos.legend.pure.m.navigation.importstub.ImportStub: org.eclipse.collections.api.list.ListIterable withImportStubByPasses(org.eclipse.collections.api.list.ListIterable,org.finos.legend.pure.m.navigation.ProcessorSupport)>(v, v);
v = interfaceinvoke v.<org.finos.legend.pure.m.navigation.ProcessorSupport: org.finos.legend.pure.m.coreinstance.CoreInstance package_getByUserPath(java.lang.String)>("meta::pure::service::service");
v = staticinvoke <org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager$lambda_disableStreaming_99845818_1__79: org.eclipse.collections.api.block.predicate.Predicate bootstrap$(org.finos.legend.pure.m.coreinstance.CoreInstance)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.ListIterable: boolean anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)>(v);
return v;
}
private org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)
{
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.pure.m.serialization.runtime.PureRuntime v;
java.lang.String v, v;
java.lang.IllegalArgumentException v;
org.finos.legend.pure.m.coreinstance.CoreInstance v;
org.finos.legend.pure.m.execution.FunctionExecution v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution>;
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.serialization.runtime.PureRuntime getRuntime()>();
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: org.finos.legend.pure.m.coreinstance.CoreInstance getFunction(java.lang.String)>(v);
if v != null goto label;
v = new java.lang.IllegalArgumentException;
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[])>("Invalid function specification: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
private org.eclipse.collections.api.list.ListIterable getParameters(org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest, org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser, org.finos.legend.engine.ide.api.execution.function.manager.ContentType)
{
org.finos.legend.engine.ide.api.execution.function.manager.ContentType v, v;
org.finos.legend.pure.m.coreinstance.CoreInstance[] v;
java.util.Map v, v, v;
org.eclipse.collections.api.list.FixedSizeList v;
boolean v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest v;
org.finos.legend.pure.m.coreinstance.CoreInstance v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v;
org.eclipse.collections.api.factory.list.FixedSizeListFactory v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.ContentType;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParameter(java.lang.String,boolean)>("[]", 0);
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("func");
if v != null goto label;
v = v;
goto label;
label:
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: java.lang.String convertFunctionToFunctionId(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[])>("\'\u0001\'");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParameter(java.lang.String,boolean)>(v, 0);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.util.Map getRequestParams()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("param");
if v != null goto label;
v = v;
goto label;
label:
v = <org.finos.legend.engine.ide.api.execution.function.manager.ContentType: org.finos.legend.engine.ide.api.execution.function.manager.ContentType json>;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ContentType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v[0];
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseJsonParameter(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParametersAsList(java.lang.String[])>(v);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("block");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("query");
if v != null goto label;
v = v;
goto label;
label:
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[])>("\'\u0001\'");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParameter(java.lang.String,boolean)>(v, 0);
label:
v = v;
if v != null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance wrapString(java.lang.String)>(v);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("processingFunc");
if v != null goto label;
v = v;
goto label;
label:
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: java.lang.String convertFunctionToFunctionId(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[])>("\'\u0001\'");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParameter(java.lang.String,boolean)>(v, 0);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.util.Map getRequestParams()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("processingParam");
if v != null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParametersAsList(java.lang.String[])>(v);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("format");
if v != null goto label;
v = v;
goto label;
label:
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[])>("\'\u0001\'");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParameter(java.lang.String,boolean)>(v, 0);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.lang.String getRequestParamToOne(java.lang.String)>("outFunc");
if v != null goto label;
v = v;
goto label;
label:
v = specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: java.lang.String convertFunctionToFunctionId(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[])>("\'\u0001\'");
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParameter(java.lang.String,boolean)>(v, 0);
label:
v = v;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest: java.util.Map getRequestParams()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("outParam");
if v != null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.FunctionExecutionParser: org.finos.legend.pure.m.coreinstance.CoreInstance parseParametersAsList(java.lang.String[])>(v);
label:
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.FixedSizeListFactory fixedSize>;
v = newarray (org.finos.legend.pure.m.coreinstance.CoreInstance)[9];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v[4] = v;
v[5] = v;
v[6] = v;
v[7] = v;
v[8] = v;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.FixedSizeListFactory: org.eclipse.collections.api.list.FixedSizeList of(java.lang.Object[])>(v);
return v;
}
private java.lang.String convertFunctionToFunctionId(java.lang.String)
{
java.lang.Throwable v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
java.lang.String v, v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: java.lang.String;
label:
v = staticinvoke <org.finos.legend.pure.m.navigation.function.FunctionDescriptor: java.lang.String functionDescriptorToId(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v;
label:
return v;
catch org.finos.legend.pure.m.navigation.function.InvalidFunctionDescriptorException from label to label with label;
}
private void execute(org.finos.legend.pure.m.coreinstance.CoreInstance, org.eclipse.collections.api.list.ListIterable, org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter, org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation, boolean, org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat)
{
java.lang.Throwable v, v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.pure.m.execution.XLSXOutputWriter v;
org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat v, v;
boolean v, v, v;
java.io.OutputStream v;
java.lang.RuntimeException v;
org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter v;
org.finos.legend.pure.m.coreinstance.CoreInstance v;
org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation v;
org.eclipse.collections.api.list.ListIterable v;
java.lang.Object v;
org.finos.legend.pure.m.execution.FunctionExecution v, v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: org.finos.legend.pure.m.coreinstance.CoreInstance;
v := @parameter: org.eclipse.collections.api.list.ListIterable;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation;
v := @parameter: boolean;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat;
label:
staticinvoke <org.finos.legend.pure.runtime.java.shared.canstreamstate.CanStreamState: void setCanStream(boolean)>(v);
interfaceinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter: void setIsStreamingResponse(boolean)>(v);
specialinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: void addContentTypeAndDispositionHeaders(org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter,org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation)>(v, v);
interfaceinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter: void setHeader(java.lang.String,java.lang.String)>("Trailer", "X-Streaming-Error");
v = interfaceinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter: java.io.OutputStream getOutputStream()>();
label:
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution>;
v = interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: org.finos.legend.pure.m.execution.OutputWriter newOutputWriter()>();
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat XLSX>;
if v != v goto label;
v = new org.finos.legend.pure.m.execution.XLSXOutputWriter;
specialinvoke v.<org.finos.legend.pure.m.execution.XLSXOutputWriter: void <init>(org.finos.legend.pure.m.execution.OutputWriter)>(v);
v = v;
label:
v = v.<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.pure.m.execution.FunctionExecution functionExecution>;
interfaceinvoke v.<org.finos.legend.pure.m.execution.FunctionExecution: void start(org.finos.legend.pure.m.coreinstance.CoreInstance,org.eclipse.collections.api.list.ListIterable,java.io.OutputStream,org.finos.legend.pure.m.execution.OutputWriter)>(v, v, v, v);
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<java.io.OutputStream: void close()>();
label:
staticinvoke <org.finos.legend.pure.runtime.java.shared.canstreamstate.CanStreamState: void resetCanStream()>();
goto label;
label:
v := @caughtexception;
v = v instanceof java.lang.RuntimeException;
if v == 0 goto label;
throw v;
label:
v = v instanceof java.lang.Error;
if v == 0 goto label;
throw v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch org.finos.legend.pure.m.exception.PureExecutionStreamingException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void addContentTypeAndDispositionHeaders(org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter, org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation)
{
org.finos.legend.engine.ide.api.execution.function.manager.ContentType v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation v;
java.lang.String v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: java.lang.String getContentType()>();
if v != null goto label;
v = <org.finos.legend.engine.ide.api.execution.function.manager.ContentType: org.finos.legend.engine.ide.api.execution.function.manager.ContentType text>;
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.ContentType: java.lang.String getType()>();
goto label;
label:
v = v;
label:
interfaceinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter: void setContentType(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpInformation: java.lang.String getContentDisposition()>();
if v == null goto label;
interfaceinvoke v.<org.finos.legend.engine.ide.api.execution.function.manager.HttpResponseWriter: void setContentDisposition(java.lang.String)>(v);
label:
return;
}
private boolean isStreamingOutputFunction(org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest, org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat)
{
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest v;
org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionRequest;
v := @parameter: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat;
return 0;
}
private org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat getOutputFormat(java.util.Map)
{
org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager v;
org.eclipse.collections.api.list.MutableList v;
org.eclipse.collections.api.RichIterable v;
org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat v;
java.util.Map v;
int v;
java.lang.String v, v, v, v, v, v;
boolean v;
org.eclipse.collections.api.map.ImmutableMap v, v;
java.lang.IllegalArgumentException v, v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("format");
if v != null goto label;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>("outFunc");
if v == 0 goto label;
v = null;
goto label;
label:
v = <org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat DEFAULT_OUTPUT_FORMAT>;
label:
return v;
label:
v = lengthof v;
if v == 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Parameter \'format\' must have at most one value");
throw v;
label:
v = v[0];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = <org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.eclipse.collections.api.map.ImmutableMap OUTPUT_FORMATS>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.lang.IllegalArgumentException;
v = v[0];
v = <org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.eclipse.collections.api.map.ImmutableMap OUTPUT_FORMATS>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: org.eclipse.collections.api.RichIterable keysView()>();
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: org.eclipse.collections.api.list.MutableList toSortedList()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.lang.String makeString(java.lang.String)>(", ");
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[])>("Unknown output format \"\u0001\" (valid formats: \u)");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
static void <clinit>()
{
org.eclipse.collections.api.factory.map.MutableMapFactory v;
org.eclipse.collections.api.map.ImmutableMap v;
org.eclipse.collections.api.map.MutableMap v, v, v, v, v, v;
org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat v, v, v, v, v, v;
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 empty()>();
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat RAW>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.map.MutableMap withKeyValue(java.lang.Object,java.lang.Object)>("raw", v);
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat PRE>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.map.MutableMap withKeyValue(java.lang.Object,java.lang.Object)>("pre", v);
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat JSON>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.map.MutableMap withKeyValue(java.lang.Object,java.lang.Object)>("json", v);
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat CSV>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.map.MutableMap withKeyValue(java.lang.Object,java.lang.Object)>("csv", v);
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat XLSX>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.map.MutableMap withKeyValue(java.lang.Object,java.lang.Object)>("xlsx", v);
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.map.ImmutableMap toImmutable()>();
<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.eclipse.collections.api.map.ImmutableMap OUTPUT_FORMATS> = v;
v = <org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat JSON>;
<org.finos.legend.engine.ide.api.execution.function.manager.ExecutionManager: org.finos.legend.engine.ide.api.execution.function.manager.OutputFormat DEFAULT_OUTPUT_FORMAT> = v;
return;
}
}