public class org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension extends java.lang.Object implements org.finos.legend.engine.external.shared.runtime.ExternalFormatRuntimeExtension
{
private static final java.lang.String CONTENT_TYPE;
public void <init>()
{
org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension v;
v := @this: org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public java.util.List getContentTypes()
{
org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension v;
java.util.List v;
v := @this: org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension;
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>("application/x.arrow");
return v;
}
public org.eclipse.collections.api.list.MutableList group()
{
org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension v;
java.lang.String[] v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v;
v := @this: org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension;
v = <org.eclipse.collections.impl.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = newarray (java.lang.String)[2];
v[0] = "External_Format";
v[1] = "Arrow";
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList 'with'(java.lang.Object[])>(v);
return v;
}
public org.finos.legend.engine.plan.execution.result.Result executeExternalizeTDSExecutionNode(org.finos.legend.engine.protocol.pure.v.model.executionPlan.nodes.externalFormat.ExternalFormatExternalizeTDSExecutionNode, org.finos.legend.engine.plan.execution.result.Result, org.finos.legend.engine.shared.core.identity.Identity, org.finos.legend.engine.plan.execution.nodes.state.ExecutionState)
{
org.finos.legend.engine.plan.execution.result.Result v, v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.plan.execution.nodes.state.ExecutionState v;
java.lang.RuntimeException v, v;
java.lang.Exception v;
org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension v;
org.finos.legend.engine.protocol.pure.v.model.executionPlan.nodes.externalFormat.ExternalFormatExternalizeTDSExecutionNode v;
boolean v;
v := @this: org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.executionPlan.nodes.externalFormat.ExternalFormatExternalizeTDSExecutionNode;
v := @parameter: org.finos.legend.engine.plan.execution.result.Result;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v := @parameter: org.finos.legend.engine.plan.execution.nodes.state.ExecutionState;
label:
v = v instanceof org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult;
if v == 0 goto label;
v = specialinvoke v.<org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension: org.finos.legend.engine.plan.execution.result.Result streamArrowFromRelational(org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult)>(v);
label:
return v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Arrow external format only supported on relational execution");
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
private org.finos.legend.engine.plan.execution.result.Result streamArrowFromRelational(org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult) throws java.sql.SQLException, java.io.IOException
{
org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension v;
org.finos.legend.engine.external.shared.runtime.write.ExternalFormatSerializeResult v;
org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult v;
org.finos.legend.engine.external.format.arrow.ArrowDataWriter v;
v := @this: org.finos.legend.engine.external.format.arrow.ArrowRuntimeExtension;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult;
v = new org.finos.legend.engine.external.shared.runtime.write.ExternalFormatSerializeResult;
v = new org.finos.legend.engine.external.format.arrow.ArrowDataWriter;
specialinvoke v.<org.finos.legend.engine.external.format.arrow.ArrowDataWriter: void <init>(org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult)>(v);
specialinvoke v.<org.finos.legend.engine.external.shared.runtime.write.ExternalFormatSerializeResult: void <init>(org.finos.legend.engine.external.shared.runtime.write.ExternalFormatWriter,org.finos.legend.engine.plan.execution.result.Result,java.lang.String)>(v, v, "application/x.arrow");
return v;
}
}