public class org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb extends java.lang.Object
{
private static final org.slf4j.Logger LOGGER;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector;
public void <init>(org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector)
{
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb v;
v := @this: org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector> = v;
return;
}
public javax.ws.rs.core.Response executeInRelationalDb(javax.servlet.http.HttpServletRequest, org.finos.legend.engine.server.test.shared.ExecuteInRelationalDbInput, org.pac4j.core.profile.ProfileManager)
{
org.finos.legend.engine.shared.core.operational.logs.LoggingEventType v, v;
org.finos.legend.engine.shared.core.identity.Identity v;
java.sql.Connection v;
org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
javax.ws.rs.core.MediaType v;
boolean v, v;
java.lang.Exception v;
org.finos.legend.engine.shared.core.operational.logs.LogInfo v;
java.util.List v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
javax.ws.rs.core.Response v, v, v;
org.finos.legend.engine.plan.execution.api.result.ResultManager$ErrorMessage v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v, v;
org.finos.legend.engine.server.test.shared.ExecuteInRelationalDbInput v;
java.sql.SQLException v, v;
javax.servlet.http.HttpServletRequest v;
int v, v;
java.lang.String v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v;
org.pac4j.core.profile.ProfileManager v;
java.sql.Statement v;
java.lang.Object v;
v := @this: org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: org.finos.legend.engine.server.test.shared.ExecuteInRelationalDbInput;
v := @parameter: org.pac4j.core.profile.ProfileManager;
v = staticinvoke <org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper: org.eclipse.collections.api.list.MutableList extractProfiles(org.pac4j.core.profile.ProfileManager)>(v);
v = staticinvoke <org.finos.legend.engine.shared.core.identity.Identity: org.finos.legend.engine.shared.core.identity.Identity makeIdentity(java.lang.Object)>(v);
label:
v = <org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb: org.slf4j.Logger LOGGER>;
v = new org.finos.legend.engine.shared.core.operational.logs.LogInfo;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = <org.finos.legend.engine.shared.core.operational.logs.LoggingEventType: org.finos.legend.engine.shared.core.operational.logs.LoggingEventType EXECUTION_PLAN_EXEC_START>;
specialinvoke v.<org.finos.legend.engine.shared.core.operational.logs.LogInfo: void <init>(java.lang.String,org.finos.legend.engine.shared.core.operational.logs.ILoggingEventType,java.lang.String)>(v, v, "");
v = virtualinvoke v.<org.finos.legend.engine.shared.core.operational.logs.LogInfo: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = null;
label:
v = v.<org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector>;
v = v.<org.finos.legend.engine.server.test.shared.ExecuteInRelationalDbInput: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection connection>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.sql.Connection getDatabaseConnection(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseConnection)>(v, v);
v = interfaceinvoke v.<java.sql.Connection: java.sql.Statement createStatement()>();
v = v.<org.finos.legend.engine.server.test.shared.ExecuteInRelationalDbInput: java.util.List sqls>;
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()>();
v = v;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("[");
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(1, v);
interfaceinvoke v.<java.sql.Statement: boolean execute(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("sql execution failed", v);
goto label;
label:
interfaceinvoke v.<java.sql.Statement: boolean execute(java.lang.String)>(v);
goto label;
label:
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok()>();
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(int)>(500);
v = <javax.ws.rs.core.MediaType: javax.ws.rs.core.MediaType APPLICATION_JSON_TYPE>;
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder type(javax.ws.rs.core.MediaType)>(v);
v = new org.finos.legend.engine.plan.execution.api.result.ResultManager$ErrorMessage;
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getMessage()>();
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[])>("{\"message\":\"\u0001\", \"sql\":\"\u0001\"}");
specialinvoke v.<org.finos.legend.engine.plan.execution.api.result.ResultManager$ErrorMessage: void <init>(int,java.lang.String)>(20, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <org.finos.legend.engine.shared.core.operational.logs.LoggingEventType: org.finos.legend.engine.shared.core.operational.logs.LoggingEventType EXECUTION_PLAN_EXEC_ERROR>;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = staticinvoke <org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool: javax.ws.rs.core.Response exceptionManager(java.lang.Exception,org.finos.legend.engine.shared.core.operational.logs.LoggingEventType,java.lang.String)>(v, v, v);
return v;
catch java.sql.SQLException from label to label with label;
catch java.sql.SQLException 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;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/server/test/shared/ExecuteInRelationalDb;");
<org.finos.legend.engine.server.test.shared.ExecuteInRelationalDb: org.slf4j.Logger LOGGER> = v;
return;
}
}