public class org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator extends java.lang.Object
{
private final java.nio.file.Path specPath;
private final java.lang.String pkgPrefix;
private final org.eclipse.collections.api.RichIterable apisToGenerate;
private final java.nio.file.Path generationOutput;
public void <init>(java.nio.file.Path, java.lang.String, org.eclipse.collections.api.RichIterable, java.nio.file.Path)
{
org.eclipse.collections.api.RichIterable v;
org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator v;
java.lang.String v;
java.nio.file.Path v, v;
v := @this: org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator;
v := @parameter: java.nio.file.Path;
v := @parameter: java.lang.String;
v := @parameter: org.eclipse.collections.api.RichIterable;
v := @parameter: java.nio.file.Path;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.nio.file.Path specPath> = v;
v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.lang.String pkgPrefix> = v;
v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: org.eclipse.collections.api.RichIterable apisToGenerate> = v;
v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.nio.file.Path generationOutput> = v;
return;
}
public void generate() throws java.lang.Exception
{
org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext$Builder v, v;
org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposer v;
java.util.regex.Matcher v;
org.eclipse.collections.api.RichIterable v, v;
java.lang.reflect.Method v;
java.nio.file.Path v, v, v, v;
boolean v;
java.io.PrintWriter v;
java.nio.file.StandardOpenOption v, v, v;
java.time.Instant v;
org.finos.legend.engine.shared.core.api.grammar.RenderStyle v;
java.util.List v, v;
org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport v;
java.lang.ClassLoader v;
java.util.regex.Pattern v;
java.lang.Throwable v, v;
java.lang.Object[] v, v;
java.nio.charset.Charset v, v;
java.nio.file.OpenOption[] v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v, v;
java.util.Iterator v;
java.io.BufferedWriter v;
org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.Class[] v;
org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext v;
java.lang.Class v, v, v, v;
java.lang.Object v, v, v;
java.io.InputStream v;
v := @this: org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator;
v = v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.nio.file.Path specPath>;
v = staticinvoke <java.nio.file.Files: java.util.List readAllLines(java.nio.file.Path)>(v);
v = staticinvoke <java.lang.String: java.lang.String join(java.lang.CharSequence,java.lang.Iterable)>("", v);
v = staticinvoke <org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport getCompileSupport()>();
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("org.finos.legend.pure.generated.core_elasticsearch_specification_metamodel_specification_generator");
v = newarray (java.lang.Class)[5];
v[0] = class "Ljava/lang/String;";
v[1] = class "Ljava/lang/String;";
v[2] = class "Lorg/eclipse/collections/api/RichIterable;";
v = <java.lang.Boolean: java.lang.Class TYPE>;
v[3] = v;
v[4] = class "Lorg/finos/legend/pure/m3/execution/ExecutionSupport;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("Root_meta_external_store_elasticsearch_specification_metamodel_generatePureCode_String_1__String_1__String_MANY__Boolean_1__String_1_", v);
v = newarray (java.lang.Object)[5];
v[0] = v;
v = v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.lang.String pkgPrefix>;
v[1] = v;
v = v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: org.eclipse.collections.api.RichIterable apisToGenerate>;
v[2] = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v[3] = v;
v[4] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(null, v);
v = staticinvoke <org.finos.legend.engine.shared.core.ObjectMapperFactory: com.fasterxml.jackson.databind.ObjectMapper getNewStandardObjectMapperWithPureProtocolExtensionSupports()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object readValue(java.lang.String,java.lang.Class)>(v, class "Lorg/finos/legend/engine/protocol/pure/v1/model/context/PureModelContextData;");
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext$Builder: org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext$Builder newInstance()>();
v = <org.finos.legend.engine.shared.core.api.grammar.RenderStyle: org.finos.legend.engine.shared.core.api.grammar.RenderStyle PRETTY>;
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext$Builder: org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext$Builder withRenderStyle(org.finos.legend.engine.shared.core.api.grammar.RenderStyle)>(v);
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext$Builder: org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext build()>();
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposer: org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposer newInstance(org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposerContext)>(v);
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'to'.PureGrammarComposer: java.lang.String renderPureModelContextData(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData)>(v);
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("(::\'(.*)\')");
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String replaceAll(java.lang.String)>("::$2");
v = class "Lorg/finos/legend/pure/elasticsearch/specification/generator/ElasticsearchPureSpecificationGenerator;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.io.InputStream getResourceAsStream(java.lang.String)>("pure_header.txt");
label:
v = new java.io.PrintWriter;
v = v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.nio.file.Path generationOutput>;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = newarray (java.nio.file.OpenOption)[3];
v = <java.nio.file.StandardOpenOption: java.nio.file.StandardOpenOption WRITE>;
v[0] = v;
v = <java.nio.file.StandardOpenOption: java.nio.file.StandardOpenOption CREATE>;
v[1] = v;
v = <java.nio.file.StandardOpenOption: java.nio.file.StandardOpenOption TRUNCATE_EXISTING>;
v[2] = v;
v = staticinvoke <java.nio.file.Files: java.io.BufferedWriter newBufferedWriter(java.nio.file.Path,java.nio.charset.Charset,java.nio.file.OpenOption[])>(v, v, v);
specialinvoke v.<java.io.PrintWriter: void <init>(java.io.Writer)>(v);
label:
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = staticinvoke <org.apache.commons.io.IOUtils: java.util.List readLines(java.io.InputStream,java.nio.charset.Charset)>(v, v);
v = interfaceinvoke v.<java.util.List: 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()>();
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
goto label;
label:
virtualinvoke v.<java.io.PrintWriter: void println()>();
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("// -------------------------------------------------");
v = newarray (java.lang.Object)[4];
v = class "Lorg/finos/legend/pure/elasticsearch/specification/generator/ElasticsearchPureSpecificationGenerator;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v[0] = v;
v = v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: java.nio.file.Path specPath>;
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path getFileName()>();
v[1] = v;
v = v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: org.eclipse.collections.api.RichIterable apisToGenerate>;
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: java.lang.String makeString()>();
v[2] = v;
v = staticinvoke <java.time.Instant: java.time.Instant now()>();
v = virtualinvoke v.<java.time.Instant: java.lang.String toString()>();
v[3] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("// This was autogenerated using %s(schema=%s, apis=%s) @ %s", v);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("// -------------------------------------------------");
virtualinvoke v.<java.io.PrintWriter: void println()>();
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(v);
label:
virtualinvoke v.<java.io.PrintWriter: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport getCompileSupport()
{
java.lang.Object[] v;
org.eclipse.collections.api.block.function.Function v;
org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository v;
org.finos.legend.pure.m.serialization.filesystem.PureCodeStorage v;
org.eclipse.collections.api.list.MutableList v, v, v, v;
org.finos.legend.pure.runtime.java.compiled.compiler.JavaCompilerState v;
org.finos.legend.pure.runtime.java.compiled.execution.ConsoleCompiled v;
org.eclipse.collections.api.set.MutableSet v, v;
org.eclipse.collections.api.RichIterable v;
org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport v;
org.finos.legend.pure.runtime.java.compiled.metadata.FunctionCache v;
org.eclipse.collections.api.factory.set.MutableSetFactory v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.classpath.ClassLoaderCodeStorage v;
org.finos.legend.pure.runtime.java.compiled.metadata.MetadataLazy v;
org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport v;
org.finos.legend.pure.runtime.java.compiled.metadata.ClassCache v;
java.lang.Class v;
java.lang.ClassLoader v;
v = staticinvoke <org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepositoryProviderHelper: org.eclipse.collections.api.RichIterable findCodeRepositories()>();
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: org.eclipse.collections.api.list.MutableList toList()>();
v = class "Lorg/finos/legend/pure/elasticsearch/specification/generator/ElasticsearchPureSpecificationGenerator;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = new org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport;
v = new org.finos.legend.pure.runtime.java.compiled.compiler.JavaCompilerState;
specialinvoke v.<org.finos.legend.pure.runtime.java.compiled.compiler.JavaCompilerState: void <init>(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryFileManager,java.lang.ClassLoader)>(null, v);
v = new org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport;
v = staticinvoke <org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator$getName__1: org.eclipse.collections.api.block.function.Function bootstrap$()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList collect(org.eclipse.collections.api.block.function.Function)>(v);
v = staticinvoke <org.finos.legend.pure.runtime.java.compiled.metadata.MetadataLazy: org.finos.legend.pure.runtime.java.compiled.metadata.MetadataLazy fromClassLoader(java.lang.ClassLoader,java.lang.Iterable)>(v, v);
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet empty()>();
specialinvoke v.<org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport: void <init>(java.lang.ClassLoader,org.finos.legend.pure.runtime.java.compiled.metadata.Metadata,org.eclipse.collections.api.set.SetIterable)>(v, v, v);
v = new org.finos.legend.pure.m.serialization.filesystem.PureCodeStorage;
v = newarray (org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage)[1];
v = new org.finos.legend.pure.m.serialization.filesystem.usercodestorage.classpath.ClassLoaderCodeStorage;
v = staticinvoke <org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository: org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository newPlatformCodeRepository()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList 'with'(java.lang.Object)>(v);
specialinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.classpath.ClassLoaderCodeStorage: void <init>(java.lang.ClassLoader,java.lang.Iterable)>(v, v);
v[0] = v;
specialinvoke v.<org.finos.legend.pure.m.serialization.filesystem.PureCodeStorage: void <init>(java.nio.file.Path,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage[])>(null, v);
v = new org.finos.legend.pure.runtime.java.compiled.execution.ConsoleCompiled;
specialinvoke v.<org.finos.legend.pure.runtime.java.compiled.execution.ConsoleCompiled: void <init>()>();
v = new org.finos.legend.pure.runtime.java.compiled.metadata.FunctionCache;
specialinvoke v.<org.finos.legend.pure.runtime.java.compiled.metadata.FunctionCache: void <init>()>();
v = new org.finos.legend.pure.runtime.java.compiled.metadata.ClassCache;
specialinvoke v.<org.finos.legend.pure.runtime.java.compiled.metadata.ClassCache: void <init>()>();
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet empty()>();
v = staticinvoke <org.finos.legend.pure.runtime.java.compiled.extension.CompiledExtensionLoader: org.eclipse.collections.api.list.MutableList extensions()>();
specialinvoke v.<org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport: void <init>(org.finos.legend.pure.runtime.java.compiled.compiler.JavaCompilerState,org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport,org.finos.legend.pure.m.serialization.runtime.SourceRegistry,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorage,org.finos.legend.pure.m.serialization.runtime.IncrementalCompiler,org.finos.legend.pure.m.statelistener.ExecutionActivityListener,org.finos.legend.pure.runtime.java.compiled.execution.ConsoleCompiled,org.finos.legend.pure.runtime.java.compiled.metadata.FunctionCache,org.finos.legend.pure.runtime.java.compiled.metadata.ClassCache,org.finos.legend.pure.runtime.java.compiled.delta.MetadataProvider,org.eclipse.collections.api.set.MutableSet,org.eclipse.collections.api.list.MutableList)>(v, v, null, v, null, null, v, v, v, null, v, v);
return v;
}
public static transient void main(java.lang.String[]) throws java.lang.Exception
{
org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator v;
java.lang.String[] v, v, v, v;
java.lang.String v, v, v, v;
org.eclipse.collections.api.list.FixedSizeList v;
java.nio.file.Path v, v;
org.eclipse.collections.api.factory.list.FixedSizeListFactory v;
v := @parameter: java.lang.String[];
v = v[0];
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v = v[1];
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.FixedSizeListFactory fixedSize>;
v = v[2];
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(",");
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.FixedSizeListFactory: org.eclipse.collections.api.list.FixedSizeList of(java.lang.Object[])>(v);
v = v[3];
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v = new org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator;
specialinvoke v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: void <init>(java.nio.file.Path,java.lang.String,org.eclipse.collections.api.RichIterable,java.nio.file.Path)>(v, v, v, v);
virtualinvoke v.<org.finos.legend.pure.elasticsearch.specification.generator.ElasticsearchPureSpecificationGenerator: void generate()>();
return;
}
}