public class org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory extends java.lang.Object implements org.finos.legend.engine.postgres.SessionsFactory
{
private final org.finos.legend.engine.postgres.handler.legend.LegendExecutionService legendExecutionClient;
private final org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler metadataSessionHandler;
private java.util.concurrent.ExecutorService executorService;
public void <init>(org.finos.legend.engine.postgres.handler.legend.LegendExecutionService)
{
org.h.tools.Server v;
org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler v;
org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory v;
java.lang.String[] v;
org.finos.legend.engine.postgres.handler.legend.LegendExecutionService v;
java.lang.RuntimeException v;
java.io.File v;
java.lang.Exception v;
java.nio.file.attribute.FileAttribute[] v;
int v;
java.lang.String v, v;
java.nio.file.Path v;
java.util.concurrent.ExecutorService v;
v := @this: org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory;
v := @parameter: org.finos.legend.engine.postgres.handler.legend.LegendExecutionService;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newCachedThreadPool()>();
v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory: java.util.concurrent.ExecutorService executorService> = v;
v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory: org.finos.legend.engine.postgres.handler.legend.LegendExecutionService legendExecutionClient> = v;
label:
v = newarray (java.nio.file.attribute.FileAttribute)[0];
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempDirectory(java.lang.String,java.nio.file.attribute.FileAttribute[])>("legendSqlH2Server", v);
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
virtualinvoke v.<java.io.File: void deleteOnExit()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = newarray (java.lang.String)[3];
v[0] = "-baseDir";
v[1] = v;
v[2] = "-ifNotExists";
v = staticinvoke <org.h.tools.Server: org.h.tools.Server createPgServer(java.lang.String[])>(v);
virtualinvoke v.<org.h.tools.Server: org.h.tools.Server start()>();
v = virtualinvoke v.<org.h.tools.Server: int getPort()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("jdbc:postgresql://localhost:\u0001/legendSQLMetadata;INIT=CREATE SCHEMA service\\;CREATE TABLE service.emptytable(id varchar(10));");
v = new org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler;
specialinvoke v.<org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "sa", "");
v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory: org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler metadataSessionHandler> = v;
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:
return;
catch java.io.IOException from label to label with label;
catch java.sql.SQLException from label to label with label;
}
public org.finos.legend.engine.postgres.Session createSession(java.lang.String, org.finos.legend.engine.shared.core.identity.Identity)
{
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler v;
org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory v;
org.finos.legend.engine.postgres.handler.legend.LegendExecutionService v;
org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory$LegendSessionHandler v;
java.lang.String v;
java.util.concurrent.ExecutorService v;
org.finos.legend.engine.postgres.Session v;
v := @this: org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v = new org.finos.legend.engine.postgres.Session;
v = new org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory$LegendSessionHandler;
v = v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory: org.finos.legend.engine.postgres.handler.legend.LegendExecutionService legendExecutionClient>;
specialinvoke v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory$LegendSessionHandler: void <init>(org.finos.legend.engine.postgres.handler.legend.LegendExecutionService,org.finos.legend.engine.shared.core.identity.Identity)>(v, v);
v = v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory: org.finos.legend.engine.postgres.handler.jdbc.JDBCSessionFactory$JDBCSessionHandler metadataSessionHandler>;
v = v.<org.finos.legend.engine.postgres.handler.legend.LegendSessionFactory: java.util.concurrent.ExecutorService executorService>;
specialinvoke v.<org.finos.legend.engine.postgres.Session: void <init>(org.finos.legend.engine.postgres.handler.SessionHandler,org.finos.legend.engine.postgres.handler.SessionHandler,java.util.concurrent.ExecutorService,org.finos.legend.engine.shared.core.identity.Identity)>(v, v, v, v);
return v;
}
}