public class org.finos.legend.engine.repl.client.Client extends java.lang.Object
{
private final com.fasterxml.jackson.databind.ObjectMapper objectMapper;
private final org.finos.legend.engine.repl.core.legend.LegendInterface legendInterface;
private final org.jline.terminal.Terminal terminal;
private final org.jline.reader.LineReader reader;
private final org.eclipse.collections.api.list.MutableList replExtensions;
private final org.eclipse.collections.api.list.MutableList completerExtensions;
private final org.finos.legend.engine.repl.client.ModelState state;
private final org.finos.legend.engine.plan.execution.PlanExecutor planExecutor;
private final java.nio.file.Path homeDirectory;
private final org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation;
private final org.eclipse.collections.api.map.MutableMap functionDocIndex;
private boolean debug;
public org.eclipse.collections.api.list.MutableList commands;
public static void main(java.lang.String[]) throws java.lang.Exception
{
java.lang.String[] v;
org.eclipse.collections.api.factory.list.MutableListFactory v, v;
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v, v;
org.finos.legend.engine.plan.execution.PlanExecutor v;
org.finos.legend.engine.plan.execution.PlanExecutor$Builder v, v;
v := @parameter: java.lang.String[];
v = new org.finos.legend.engine.repl.client.Client;
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList empty()>();
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList empty()>();
v = staticinvoke <org.finos.legend.engine.plan.execution.PlanExecutor: org.finos.legend.engine.plan.execution.PlanExecutor$Builder newPlanExecutorBuilder()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.PlanExecutor$Builder: org.finos.legend.engine.plan.execution.PlanExecutor$Builder withAvailableStoreExecutors()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.PlanExecutor$Builder: org.finos.legend.engine.plan.execution.PlanExecutor build()>();
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void <init>(org.eclipse.collections.api.list.MutableList,org.eclipse.collections.api.list.MutableList,org.finos.legend.engine.plan.execution.PlanExecutor)>(v, v, v);
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void loop()>();
return;
}
public void <init>(org.eclipse.collections.api.list.MutableList, org.eclipse.collections.api.list.MutableList, org.finos.legend.engine.plan.execution.PlanExecutor) throws java.lang.Exception
{
org.finos.legend.engine.plan.execution.PlanExecutor v;
org.finos.legend.engine.repl.client.Client v;
java.nio.file.Path v, v;
org.eclipse.collections.api.list.MutableList v, v;
java.io.File v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: org.eclipse.collections.api.list.MutableList;
v := @parameter: org.eclipse.collections.api.list.MutableList;
v := @parameter: org.finos.legend.engine.plan.execution.PlanExecutor;
v = staticinvoke <org.apache.commons.io.FileUtils: java.io.File getUserDirectory()>();
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path resolve(java.lang.String)>(".legend/repl");
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void <init>(org.eclipse.collections.api.list.MutableList,org.eclipse.collections.api.list.MutableList,org.finos.legend.engine.plan.execution.PlanExecutor,java.nio.file.Path)>(v, v, v, v);
return;
}
public void <init>(org.eclipse.collections.api.list.MutableList, org.eclipse.collections.api.list.MutableList, org.finos.legend.engine.plan.execution.PlanExecutor, java.nio.file.Path) throws java.lang.Exception
{
java.lang.Integer v;
org.finos.legend.engine.repl.client.ModelState v;
org.finos.legend.engine.repl.core.legend.LegendInterface v;
org.finos.legend.engine.plan.execution.PlanExecutor v;
java.nio.file.Path v, v, v;
org.jline.reader.LineReader v;
org.finos.legend.pure.m.pct.aggregate.model.Documentation v;
org.eclipse.collections.api.block.function.Function v;
org.eclipse.collections.api.block.procedure.Procedure v;
org.finos.legend.engine.repl.client.Client v;
org.finos.legend.engine.repl.core.commands.Debug v;
org.eclipse.collections.api.map.MutableMap v;
java.lang.String v, v, v, v, v, v, v;
org.jline.terminal.Terminal v, v, v;
org.finos.legend.engine.repl.core.commands.Ext v;
org.jline.reader.LineReader$Option v, v;
org.finos.legend.engine.repl.core.Command[] v;
org.finos.legend.engine.repl.core.commands.Execute v;
org.finos.legend.engine.repl.core.commands.Doc v;
org.jline.reader.LineReaderBuilder v, v, v, v, v, v, v, v, v, v, v, v;
org.eclipse.collections.api.list.MutableList v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.repl.client.jline.JLine3Parser v;
org.finos.legend.engine.repl.core.commands.Graph v;
org.finos.legend.engine.shared.core.deployment.DeploymentVersionInfo v, v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.factory.map.MutableMapFactory v;
int v;
org.finos.legend.engine.repl.client.jline.JLine3Highlighter v;
java.lang.Boolean v;
double v, v;
org.finos.legend.engine.repl.core.legend.LocalLegendInterface v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.Object v, v;
org.finos.legend.engine.repl.core.commands.Help v;
org.finos.legend.engine.repl.client.jline.JLine3Completer v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: org.eclipse.collections.api.list.MutableList;
v := @parameter: org.eclipse.collections.api.list.MutableList;
v := @parameter: org.finos.legend.engine.plan.execution.PlanExecutor;
v := @parameter: java.nio.file.Path;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.finos.legend.engine.shared.core.ObjectMapperFactory: com.fasterxml.jackson.databind.ObjectMapper getNewStandardObjectMapperWithPureProtocolExtensionSupports()>();
v.<org.finos.legend.engine.repl.client.Client: com.fasterxml.jackson.databind.ObjectMapper objectMapper> = v;
v = new org.finos.legend.engine.repl.core.legend.LocalLegendInterface;
specialinvoke v.<org.finos.legend.engine.repl.core.legend.LocalLegendInterface: void <init>()>();
v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.core.legend.LegendInterface legendInterface> = 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.repl.client.Client: org.eclipse.collections.api.map.MutableMap functionDocIndex> = v;
v.<org.finos.legend.engine.repl.client.Client: boolean debug> = 0;
v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList replExtensions> = v;
v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList completerExtensions> = v;
v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.plan.execution.PlanExecutor planExecutor> = v;
v = new org.finos.legend.engine.repl.client.ModelState;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.core.legend.LegendInterface legendInterface>;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList replExtensions>;
specialinvoke v.<org.finos.legend.engine.repl.client.ModelState: void <init>(org.finos.legend.engine.repl.core.legend.LegendInterface,org.eclipse.collections.api.list.MutableList)>(v, v);
v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.client.ModelState state> = v;
v = staticinvoke <org.jline.terminal.TerminalBuilder: org.jline.terminal.Terminal terminal()>();
v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal> = v;
v.<org.finos.legend.engine.repl.client.Client: java.nio.file.Path homeDirectory> = v;
v = staticinvoke <org.finos.legend.pure.m.pct.aggregate.generation.DocumentationGeneration: org.finos.legend.pure.m.pct.aggregate.model.Documentation buildDocumentation()>();
v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation> = v;
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void initialize()>();
v = staticinvoke <org.finos.legend.engine.repl.client.Client$lambda_new_237bb56c_1__1: org.eclipse.collections.api.block.procedure.Procedure bootstrap$(org.finos.legend.engine.repl.client.Client)>(v);
interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: void forEach(org.eclipse.collections.api.block.procedure.Procedure)>(v);
v = <org.finos.legend.engine.shared.core.deployment.DeploymentStateAndVersions: org.finos.legend.engine.shared.core.deployment.DeploymentVersionInfo sdlc>;
v = v.<org.finos.legend.engine.shared.core.deployment.DeploymentVersionInfo: java.lang.String buildVersion>;
v = <org.finos.legend.engine.shared.core.deployment.DeploymentStateAndVersions: org.finos.legend.engine.shared.core.deployment.DeploymentVersionInfo sdlc>;
v = v.<org.finos.legend.engine.shared.core.deployment.DeploymentVersionInfo: java.lang.String commitIdAbbreviated>;
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[])>("[DEV] Legend REPL v\u (\u)");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printDebug(java.lang.String)>(v);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("legend.repl.initializationMessage");
if v == null goto label;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("legend.repl.initializationMessage");
v = staticinvoke <org.apache.commons.lang.StringEscapeUtils: java.lang.String unescapeJava(java.lang.String)>(v);
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printDebug(java.lang.String)>(v);
label:
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printDebug(java.lang.String)>("Press \'Enter\' or type \'help\' to see the list of available commands.");
v = <org.finos.legend.engine.repl.client.Logos: org.eclipse.collections.api.list.MutableList logos>;
v = <org.finos.legend.engine.repl.client.Logos: org.eclipse.collections.api.list.MutableList logos>;
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: int size()>();
v = staticinvoke <java.lang.Math: double random()>();
v = v * v;
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.lang.Object get(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("\n\u0001\n");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>(v);
v = staticinvoke <org.finos.legend.engine.repl.client.Client$getExtraCommands__2: org.eclipse.collections.api.block.function.Function bootstrap$()>();
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.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = newarray (org.finos.legend.engine.repl.core.Command)[5];
v = new org.finos.legend.engine.repl.core.commands.Ext;
specialinvoke v.<org.finos.legend.engine.repl.core.commands.Ext: void <init>(org.finos.legend.engine.repl.client.Client)>(v);
v[0] = v;
v = new org.finos.legend.engine.repl.core.commands.Debug;
specialinvoke v.<org.finos.legend.engine.repl.core.commands.Debug: void <init>(org.finos.legend.engine.repl.client.Client)>(v);
v[1] = v;
v = new org.finos.legend.engine.repl.core.commands.Doc;
specialinvoke v.<org.finos.legend.engine.repl.core.commands.Doc: void <init>(org.finos.legend.engine.repl.client.Client)>(v);
v[2] = v;
v = new org.finos.legend.engine.repl.core.commands.Graph;
specialinvoke v.<org.finos.legend.engine.repl.core.commands.Graph: void <init>(org.finos.legend.engine.repl.client.Client)>(v);
v[3] = v;
v = new org.finos.legend.engine.repl.core.commands.Execute;
specialinvoke v.<org.finos.legend.engine.repl.core.commands.Execute: void <init>(org.finos.legend.engine.repl.client.Client)>(v);
v[4] = v;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList 'with'(java.lang.Object[])>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList withAll(java.lang.Iterable)>(v);
v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList commands> = v;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList commands>;
v = new org.finos.legend.engine.repl.core.commands.Help;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList commands>;
specialinvoke v.<org.finos.legend.engine.repl.core.commands.Help: void <init>(org.finos.legend.engine.repl.client.Client,org.eclipse.collections.api.list.MutableList)>(v, v);
interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: void add(int,java.lang.Object)>(0, v);
v = staticinvoke <org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder builder()>();
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder terminal(org.jline.terminal.Terminal)>(v);
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: java.nio.file.Path getHomeDir()>();
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path resolve(java.lang.String)>("history");
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder variable(java.lang.String,java.lang.Object)>("history-file", v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1000);
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder variable(java.lang.String,java.lang.Object)>("history-file-size", v);
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder variable(java.lang.String,java.lang.Object)>("history-ignore", ": *");
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder variable(java.lang.String,java.lang.Object)>("blink-matching-paren", v);
v = <org.jline.reader.LineReader$Option: org.jline.reader.LineReader$Option INSERT_TAB>;
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder option(org.jline.reader.LineReader$Option,boolean)>(v, 1);
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder variable(java.lang.String,java.lang.Object)>("WORDCHARS", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-$");
v = <org.jline.reader.LineReader$Option: org.jline.reader.LineReader$Option DISABLE_EVENT_EXPANSION>;
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder option(org.jline.reader.LineReader$Option,boolean)>(v, 1);
v = new org.finos.legend.engine.repl.client.jline.JLine3Highlighter;
specialinvoke v.<org.finos.legend.engine.repl.client.jline.JLine3Highlighter: void <init>()>();
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder highlighter(org.jline.reader.Highlighter)>(v);
v = new org.finos.legend.engine.repl.client.jline.JLine3Parser;
specialinvoke v.<org.finos.legend.engine.repl.client.jline.JLine3Parser: void <init>()>();
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder parser(org.jline.reader.Parser)>(v);
v = new org.finos.legend.engine.repl.client.jline.JLine3Completer;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList commands>;
specialinvoke v.<org.finos.legend.engine.repl.client.jline.JLine3Completer: void <init>(org.eclipse.collections.api.list.MutableList)>(v);
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReaderBuilder completer(org.jline.reader.Completer)>(v);
v = virtualinvoke v.<org.jline.reader.LineReaderBuilder: org.jline.reader.LineReader build()>();
v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader> = v;
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>("Warming up...");
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
interfaceinvoke v.<org.jline.terminal.Terminal: void flush()>();
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList commands>;
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.lang.Object getLast()>();
virtualinvoke v.<org.finos.legend.engine.repl.core.commands.Execute: java.lang.String execute(java.lang.String)>("1+1");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>("Ready!\n");
return;
}
private void initialize()
{
org.finos.legend.pure.m.pct.aggregate.model.Documentation v, v, v, v;
org.eclipse.collections.api.block.predicate.Predicate v;
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v;
java.nio.file.attribute.FileAttribute[] v;
java.lang.String v, v;
java.nio.file.Path v, v;
boolean v;
java.nio.file.LinkOption[] v;
java.lang.Exception v;
java.util.function.Consumer v, v;
java.util.List v, v, v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation>;
v = v.<org.finos.legend.pure.m.pct.aggregate.model.Documentation: java.util.List functionsDocumentation>;
v = staticinvoke <org.finos.legend.engine.repl.client.Client$lambda_initialize_0__3: java.util.function.Consumer bootstrap$()>();
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation>;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation>;
v = v.<org.finos.legend.pure.m.pct.aggregate.model.Documentation: java.util.List functionsDocumentation>;
v = staticinvoke <org.finos.legend.engine.repl.client.Client$lambda_initialize_8c950384_2__4: org.eclipse.collections.api.block.predicate.Predicate bootstrap$()>();
v = staticinvoke <org.eclipse.collections.impl.utility.ListIterate: org.eclipse.collections.api.list.MutableList reject(java.util.List,org.eclipse.collections.api.block.predicate.Predicate)>(v, v);
v.<org.finos.legend.pure.m.pct.aggregate.model.Documentation: java.util.List functionsDocumentation> = v;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation>;
v = v.<org.finos.legend.pure.m.pct.aggregate.model.Documentation: java.util.List functionsDocumentation>;
v = staticinvoke <org.finos.legend.engine.repl.client.Client$lambda_initialize_1__5: java.util.function.Consumer bootstrap$(org.finos.legend.engine.repl.client.Client)>(v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
label:
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: java.nio.file.Path getHomeDir()>();
v = newarray (java.nio.file.LinkOption)[0];
v = staticinvoke <java.nio.file.Files: boolean notExists(java.nio.file.Path,java.nio.file.LinkOption[])>(v, v);
if v == 0 goto label;
v = newarray (java.nio.file.attribute.FileAttribute)[0];
staticinvoke <java.nio.file.Files: java.nio.file.Path createDirectories(java.nio.file.Path,java.nio.file.attribute.FileAttribute[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: java.nio.file.Path getHomeDir()>();
v = interfaceinvoke v.<java.nio.file.Path: java.lang.String toString()>();
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[])>("Failed to create home directory at: \u0001");
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printError(java.lang.String)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public void loop()
{
java.lang.Throwable v, v, v, v;
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.repl.client.Client$1 v;
org.jline.reader.History v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
org.jline.reader.LineReader v, v, v, v;
org.jline.reader.Buffer v, v;
java.lang.Exception v;
v := @this: org.finos.legend.engine.repl.client.Client;
label:
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: java.lang.String readLine(java.lang.String)>("> ");
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("exit");
if v == 0 goto label;
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void forceExit()>();
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("clear");
if v == 0 goto label;
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void clearScreen()>();
goto label;
label:
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.History getHistory()>();
interfaceinvoke v.<org.jline.reader.History: void add(java.lang.String)>(v);
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList commands>;
v = new org.finos.legend.engine.repl.client.Client$1;
specialinvoke v.<org.finos.legend.engine.repl.client.Client$1: void <init>(org.finos.legend.engine.repl.client.Client,java.lang.String)>(v, v);
interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.lang.Object detect(org.eclipse.collections.api.block.predicate.Predicate)>(v);
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
v := @caughtexception;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.Buffer getBuffer()>();
v = interfaceinvoke v.<org.jline.reader.Buffer: java.lang.String toString()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printEngineError(org.finos.legend.engine.shared.core.operational.errorManagement.EngineException,java.lang.String)>(v, v);
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
v := @caughtexception;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.Buffer getBuffer()>();
v = interfaceinvoke v.<org.jline.reader.Buffer: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void forceExit()>();
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void loop()>();
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void forceExit()>();
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printError(java.lang.String)>(v);
v = v.<org.finos.legend.engine.repl.client.Client: boolean debug>;
if v == 0 goto label;
virtualinvoke v.<java.lang.Exception: void printStackTrace()>();
label:
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
throw v;
label:
return;
catch org.finos.legend.engine.shared.core.operational.errorManagement.EngineException from label to label with label;
catch org.finos.legend.engine.shared.core.operational.errorManagement.EngineException from label to label with label;
catch org.jline.reader.UserInterruptException from label to label with label;
catch org.jline.reader.UserInterruptException from label to label with label;
catch org.jline.reader.EndOfFileException from label to label with label;
catch org.jline.reader.EndOfFileException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void printEngineError(org.finos.legend.engine.shared.core.operational.errorManagement.EngineException, java.lang.String)
{
org.finos.legend.engine.repl.client.Client v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v;
boolean v;
org.jline.utils.AttributedStyle v, v;
org.finos.legend.engine.protocol.pure.v.model.SourceInformation v, v;
java.lang.Exception v;
org.jline.utils.AttributedStringBuilder v;
org.finos.legend.engine.shared.core.operational.errorManagement.EngineException v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: org.finos.legend.engine.shared.core.operational.errorManagement.EngineException;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.operational.errorManagement.EngineException: org.finos.legend.engine.protocol.pure.v.model.SourceInformation getSourceInformation()>();
v = v.<org.finos.legend.engine.protocol.pure.v.model.SourceInformation: int startColumn>;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.operational.errorManagement.EngineException: org.finos.legend.engine.protocol.pure.v.model.SourceInformation getSourceInformation()>();
v = v.<org.finos.legend.engine.protocol.pure.v.model.SourceInformation: int endColumn>;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v > v goto label;
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = new org.jline.utils.AttributedStringBuilder;
specialinvoke v.<org.jline.utils.AttributedStringBuilder: void <init>()>();
virtualinvoke v.<org.jline.utils.AttributedStringBuilder: org.jline.utils.AttributedStringBuilder append(java.lang.CharSequence)>(v);
v = new org.jline.utils.AttributedStyle;
specialinvoke v.<org.jline.utils.AttributedStyle: void <init>()>();
v = virtualinvoke v.<org.jline.utils.AttributedStyle: org.jline.utils.AttributedStyle underline()>();
virtualinvoke v.<org.jline.utils.AttributedStringBuilder: org.jline.utils.AttributedStringBuilder style(org.jline.utils.AttributedStyle)>(v);
v = staticinvoke <org.finos.legend.engine.repl.shared.REPLHelper: java.lang.String ansiRed(java.lang.String)>(v);
virtualinvoke v.<org.jline.utils.AttributedStringBuilder: org.jline.utils.AttributedStringBuilder append(java.lang.CharSequence)>(v);
virtualinvoke v.<org.jline.utils.AttributedStringBuilder: org.jline.utils.AttributedStringBuilder append(java.lang.CharSequence)>(v);
v = virtualinvoke v.<org.jline.utils.AttributedStringBuilder: java.lang.String toAnsi()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void println(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = virtualinvoke v.<org.finos.legend.engine.shared.core.operational.errorManagement.EngineException: java.lang.String getMessage()>();
virtualinvoke v.<org.finos.legend.engine.repl.client.Client: void printError(java.lang.String)>(v);
v = v.<org.finos.legend.engine.repl.client.Client: boolean debug>;
if v == 0 goto label;
virtualinvoke v.<org.finos.legend.engine.shared.core.operational.errorManagement.EngineException: void printStackTrace()>();
label:
return;
catch java.lang.Exception from label to label with label;
}
public void clearScreen()
{
java.lang.Object[] v;
org.jline.utils.InfoCmp$Capability v;
org.finos.legend.engine.repl.client.Client v;
org.jline.terminal.Terminal v, v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
v = <org.jline.utils.InfoCmp$Capability: org.jline.utils.InfoCmp$Capability clear_screen>;
v = newarray (java.lang.Object)[0];
interfaceinvoke v.<org.jline.terminal.Terminal: boolean puts(org.jline.utils.InfoCmp$Capability,java.lang.Object[])>(v, v);
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
interfaceinvoke v.<org.jline.terminal.Terminal: void flush()>();
return;
}
public void print(java.lang.String)
{
java.io.PrintWriter v;
java.lang.String v;
org.finos.legend.engine.repl.client.Client v;
org.jline.terminal.Terminal v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
v = interfaceinvoke v.<org.jline.terminal.Terminal: java.io.PrintWriter writer()>();
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(v);
return;
}
public void println(java.lang.String)
{
java.io.PrintWriter v;
java.lang.String v;
org.finos.legend.engine.repl.client.Client v;
org.jline.terminal.Terminal v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
v = interfaceinvoke v.<org.jline.terminal.Terminal: java.io.PrintWriter writer()>();
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
return;
}
public void printDebug(java.lang.String)
{
java.io.PrintWriter v;
java.lang.String v, v;
org.finos.legend.engine.repl.client.Client v;
org.jline.terminal.Terminal v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
v = interfaceinvoke v.<org.jline.terminal.Terminal: java.io.PrintWriter writer()>();
v = staticinvoke <org.finos.legend.engine.repl.shared.REPLHelper: java.lang.String ansiDim(java.lang.String)>(v);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
return;
}
public void printError(java.lang.String)
{
java.io.PrintWriter v;
java.lang.String v, v;
org.finos.legend.engine.repl.client.Client v;
org.jline.terminal.Terminal v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
v = interfaceinvoke v.<org.jline.terminal.Terminal: java.io.PrintWriter writer()>();
v = staticinvoke <org.finos.legend.engine.repl.shared.REPLHelper: java.lang.String ansiRed(java.lang.String)>(v);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
return;
}
private void persistHistory()
{
org.jline.reader.LineReader v;
org.jline.reader.History v;
org.finos.legend.engine.repl.client.Client v;
java.lang.Exception v;
v := @this: org.finos.legend.engine.repl.client.Client;
label:
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.History getHistory()>();
interfaceinvoke v.<org.jline.reader.History: void save()>();
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.Exception from label to label with label;
}
public org.eclipse.collections.api.list.MutableList getDocumentationAdapterKeys()
{
java.util.List v;
org.finos.legend.pure.m.pct.aggregate.model.Documentation v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.pure.m.pct.aggregate.model.Documentation documentation>;
v = v.<org.finos.legend.pure.m.pct.aggregate.model.Documentation: java.util.List adapters>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList withAll(java.lang.Iterable)>(v);
return v;
}
public java.util.List getDocumentedFunctions()
{
org.eclipse.collections.api.RichIterable v;
org.eclipse.collections.api.map.MutableMap v;
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.map.MutableMap functionDocIndex>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: org.eclipse.collections.api.RichIterable keysView()>();
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: org.eclipse.collections.api.list.MutableList toSortedList()>();
return v;
}
public org.finos.legend.pure.m.pct.aggregate.model.FunctionDocumentation getFunctionDocumentation(java.lang.String)
{
org.eclipse.collections.api.map.MutableMap v;
java.lang.Object v;
java.lang.String v;
org.finos.legend.engine.repl.client.Client v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.map.MutableMap functionDocIndex>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.MutableMap: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public java.nio.file.Path getHomeDir()
{
org.finos.legend.engine.repl.client.Client v;
java.nio.file.Path v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: java.nio.file.Path homeDirectory>;
return v;
}
public org.jline.terminal.Terminal getTerminal()
{
org.finos.legend.engine.repl.client.Client v;
org.jline.terminal.Terminal v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.terminal.Terminal terminal>;
return v;
}
public org.finos.legend.engine.repl.core.legend.LegendInterface getLegendInterface()
{
org.finos.legend.engine.repl.client.Client v;
org.finos.legend.engine.repl.core.legend.LegendInterface v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.core.legend.LegendInterface legendInterface>;
return v;
}
public boolean isDebug()
{
org.finos.legend.engine.repl.client.Client v;
boolean v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: boolean debug>;
return v;
}
public void setDebug(boolean)
{
org.finos.legend.engine.repl.client.Client v;
boolean v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: boolean;
v.<org.finos.legend.engine.repl.client.Client: boolean debug> = v;
return;
}
public org.finos.legend.engine.repl.client.ModelState getModelState()
{
org.finos.legend.engine.repl.client.Client v;
org.finos.legend.engine.repl.client.ModelState v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.repl.client.ModelState state>;
return v;
}
public org.eclipse.collections.api.list.MutableList getReplExtensions()
{
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList replExtensions>;
return v;
}
public org.finos.legend.engine.plan.execution.PlanExecutor getPlanExecutor()
{
org.finos.legend.engine.plan.execution.PlanExecutor v;
org.finos.legend.engine.repl.client.Client v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.finos.legend.engine.plan.execution.PlanExecutor planExecutor>;
return v;
}
public org.eclipse.collections.api.list.MutableList getCompleterExtensions()
{
org.finos.legend.engine.repl.client.Client v;
org.eclipse.collections.api.list.MutableList v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: org.eclipse.collections.api.list.MutableList completerExtensions>;
return v;
}
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
{
com.fasterxml.jackson.databind.ObjectMapper v;
org.finos.legend.engine.repl.client.Client v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = v.<org.finos.legend.engine.repl.client.Client: com.fasterxml.jackson.databind.ObjectMapper objectMapper>;
return v;
}
public java.lang.String getLastCommand()
{
java.lang.String v;
org.finos.legend.engine.repl.client.Client v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = virtualinvoke v.<org.finos.legend.engine.repl.client.Client: java.lang.String getLastCommand(int)>(0);
return v;
}
public java.lang.String getLastCommand(int)
{
org.jline.reader.LineReader v, v;
org.finos.legend.engine.repl.client.Client v;
java.lang.Exception v;
int v, v, v;
org.jline.reader.History v, v;
java.lang.String v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: int;
label:
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.History getHistory()>();
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.History getHistory()>();
v = interfaceinvoke v.<org.jline.reader.History: int last()>();
v = v - v;
v = interfaceinvoke v.<org.jline.reader.History: java.lang.String get(int)>(v);
label:
return v;
label:
v := @caughtexception;
return null;
catch java.lang.Exception from label to label with label;
}
public void addCommandToHistory(java.lang.String)
{
org.jline.reader.LineReader v;
org.jline.reader.History v;
java.lang.String v;
org.finos.legend.engine.repl.client.Client v;
v := @this: org.finos.legend.engine.repl.client.Client;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.repl.client.Client: org.jline.reader.LineReader reader>;
v = interfaceinvoke v.<org.jline.reader.LineReader: org.jline.reader.History getHistory()>();
interfaceinvoke v.<org.jline.reader.History: void add(java.lang.String)>(v);
specialinvoke v.<org.finos.legend.engine.repl.client.Client: void persistHistory()>();
return;
}
public void forceExit()
{
java.lang.String v, v;
org.finos.legend.engine.repl.client.Client v;
boolean v;
v := @this: org.finos.legend.engine.repl.client.Client;
v = "true";
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("legend.repl.testing.disableForceExit");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return;
label:
staticinvoke <java.lang.System: void exit(int)>(0);
return;
}
}