public class org.finos.legend.engine.external.format.json.write.JsonDataWriter extends org.finos.legend.engine.external.shared.runtime.write.ExternalFormatWriter
{
private final org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics specifics;
private final java.util.stream.Stream inputStream;
private final org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext context;
public void <init>(org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics, java.util.stream.Stream, org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext)
{
org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext v;
java.util.stream.Stream v;
org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics v;
org.finos.legend.engine.external.format.json.write.JsonDataWriter v;
v := @this: org.finos.legend.engine.external.format.json.write.JsonDataWriter;
v := @parameter: org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics;
v := @parameter: java.util.stream.Stream;
v := @parameter: org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext;
specialinvoke v.<org.finos.legend.engine.external.shared.runtime.write.ExternalFormatWriter: void <init>()>();
v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics specifics> = v;
v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: java.util.stream.Stream inputStream> = v;
v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext context> = v;
return;
}
public void writeData(java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
java.lang.Throwable v;
java.util.Iterator v;
com.fasterxml.jackson.core.JsonGenerator v;
org.finos.legend.engine.external.format.json.write.IJsonSerializer v;
java.io.IOException v;
java.lang.RuntimeException v;
java.util.function.Consumer v;
java.util.stream.Stream v;
org.finos.legend.engine.external.format.json.write.JsonDataWriter v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.finos.legend.engine.external.format.json.write.JsonDataWriter;
v := @parameter: java.io.OutputStream;
v = specialinvoke v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.OutputStream)>(v);
label:
v = specialinvoke v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: org.finos.legend.engine.external.format.json.write.IJsonSerializer createSerializer(com.fasterxml.jackson.core.JsonGenerator)>(v);
label:
v = v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: java.util.stream.Stream inputStream>;
v = interfaceinvoke v.<java.util.stream.Stream: java.util.Iterator iterator()>();
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.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: void writeStartArray()>();
label:
interfaceinvoke v.<org.finos.legend.engine.external.format.json.write.IJsonSerializer: void serialize(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.finos.legend.engine.external.format.json.write.JsonDataWriter$serialize__3: java.util.function.Consumer bootstrap$(org.finos.legend.engine.external.format.json.write.IJsonSerializer)>(v);
interfaceinvoke v.<java.util.Iterator: void forEachRemaining(java.util.function.Consumer)>(v);
virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: void writeEndArray()>();
goto label;
label:
virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: void writeStartArray()>();
virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: void writeEndArray()>();
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:
if v == null goto label;
virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private org.finos.legend.engine.external.format.json.write.IJsonSerializer createSerializer(com.fasterxml.jackson.core.JsonGenerator)
{
org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext v;
com.fasterxml.jackson.core.JsonGenerator v;
org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics v;
org.finos.legend.engine.external.format.json.write.IJsonSerializer v;
org.finos.legend.engine.external.format.json.write.JsonDataWriter v;
org.finos.legend.engine.external.format.json.write.JsonDataWriter$JsonWriter v;
v := @this: org.finos.legend.engine.external.format.json.write.JsonDataWriter;
v := @parameter: com.fasterxml.jackson.core.JsonGenerator;
v = v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics specifics>;
v = new org.finos.legend.engine.external.format.json.write.JsonDataWriter$JsonWriter;
specialinvoke v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter$JsonWriter: void <init>(com.fasterxml.jackson.core.JsonGenerator)>(v);
v = v.<org.finos.legend.engine.external.format.json.write.JsonDataWriter: org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext context>;
v = interfaceinvoke v.<org.finos.legend.engine.external.format.json.write.IJsonExternalizeExecutionNodeSpecifics: org.finos.legend.engine.external.format.json.write.IJsonSerializer createSerializer(org.finos.legend.engine.external.format.json.write.IJsonWriter,org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext)>(v, v);
return v;
}
private com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
com.fasterxml.jackson.core.JsonGenerator$Feature v, v, v;
com.fasterxml.jackson.core.JsonGenerator v, v, v, v, v;
com.fasterxml.jackson.databind.ObjectMapper v;
com.fasterxml.jackson.core.JsonFactory v;
org.finos.legend.engine.external.format.json.write.JsonDataWriter v;
v := @this: org.finos.legend.engine.external.format.json.write.JsonDataWriter;
v := @parameter: java.io.OutputStream;
v = new com.fasterxml.jackson.core.JsonFactory;
specialinvoke v.<com.fasterxml.jackson.core.JsonFactory: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonFactory: com.fasterxml.jackson.core.JsonGenerator createGenerator(java.io.OutputStream)>(v);
v = <com.fasterxml.jackson.core.JsonGenerator$Feature: com.fasterxml.jackson.core.JsonGenerator$Feature AUTO_CLOSE_JSON_CONTENT>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: com.fasterxml.jackson.core.JsonGenerator disable(com.fasterxml.jackson.core.JsonGenerator$Feature)>(v);
v = <com.fasterxml.jackson.core.JsonGenerator$Feature: com.fasterxml.jackson.core.JsonGenerator$Feature AUTO_CLOSE_TARGET>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: com.fasterxml.jackson.core.JsonGenerator disable(com.fasterxml.jackson.core.JsonGenerator$Feature)>(v);
v = <com.fasterxml.jackson.core.JsonGenerator$Feature: com.fasterxml.jackson.core.JsonGenerator$Feature WRITE_BIGDECIMAL_AS_PLAIN>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: com.fasterxml.jackson.core.JsonGenerator enable(com.fasterxml.jackson.core.JsonGenerator$Feature)>(v);
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonGenerator: com.fasterxml.jackson.core.JsonGenerator setCodec(com.fasterxml.jackson.core.ObjectCodec)>(v);
return v;
}
}