public abstract class org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper extends java.lang.Object implements java.sql.Driver
{
private static final org.slf4j.Logger LOGGER;
private final java.sql.Driver driver;
private final org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager connectionStateManager;
public void <init>()
{
org.slf4j.Logger v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager v;
java.lang.RuntimeException v;
java.lang.Exception v;
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.ClassLoader v;
java.lang.String v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager getInstance()>();
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager connectionStateManager> = v;
label:
v = class "Lorg/finos/legend/engine/plan/execution/stores/relational/connection/driver/DriverWrapper;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.lang.String getClassName()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver> = v;
label:
goto label;
label:
v := @caughtexception;
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Error loading driver {}", v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
protected abstract java.lang.String getClassName();
protected java.sql.Driver getDriver()
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.sql.Driver v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
return v;
}
public java.sql.Connection connect(java.lang.String, java.util.Properties) throws java.sql.SQLException
{
java.lang.IllegalStateException v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager v;
java.sql.Connection v;
java.lang.Integer v;
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
boolean v;
java.lang.Exception v, v;
java.lang.Object[] v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager v, v;
java.lang.StringBuffer v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
org.eclipse.collections.api.tuple.Pair v;
java.util.Properties v, v;
org.slf4j.Logger v, v, v, v, v;
java.lang.RuntimeException v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.AuthenticationStrategyKey v;
java.sql.Driver v, v;
java.lang.Class v;
java.lang.Object v, v, v, v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v := @parameter: java.lang.String;
v := @parameter: java.util.Properties;
v = null;
label:
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: java.lang.String POOL_NAME_KEY>;
v = virtualinvoke v.<java.util.Properties: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.lang.IllegalStateException;
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: java.lang.String POOL_NAME_KEY>;
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[])>("Connection properties dont have \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager connectionStateManager>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics getDataSourceByPoolName(java.lang.String)>(v);
if v != null goto label;
v = new java.lang.IllegalStateException;
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[])>("Cannot find state for pool \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy getAuthenticationStrategy()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager getDatabaseManager()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy: org.eclipse.collections.api.tuple.Pair handleConnection(java.lang.String,java.util.Properties,org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager)>(v, v, v);
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy getAuthenticationStrategy()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.AuthenticationStrategyKey getKey()>();
v = interfaceinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.AuthenticationStrategyKey: java.lang.String shortId()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Handled connection by [{}] Authentication strategy for [{}]", v, v);
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<org.eclipse.collections.api.tuple.Pair: java.lang.Object getOne()>();
v = interfaceinvoke v.<org.eclipse.collections.api.tuple.Pair: java.lang.Object getTwo()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.util.Properties handlePropertiesPriorToJDBCDriverConnection(java.util.Properties)>(v);
v = interfaceinvoke v.<java.sql.Driver: java.sql.Connection connect(java.lang.String,java.util.Properties)>(v, v);
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("[{}] Driver connected ", v);
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics: int buildConnection()>();
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Total [{}] connections built for data source [{}]", v, v);
label:
return v;
label:
v := @caughtexception;
v = v;
virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics: void logConnectionError()>();
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager connectionStateManager>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: java.lang.Object getPoolStatisticsAsJSON(org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics)>(v);
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("Error connecting to db [{}], pool stats [{}]", v);
v = v instanceof java.sql.SQLException;
if v == 0 goto label;
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>()>();
label:
if v == null goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("\n------------------------------\n");
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getSQLState()>();
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[])>("   State      :\u0001\n");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
v = virtualinvoke v.<java.sql.SQLException: int getErrorCode()>();
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[])>("   Code       :\u0001\n");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
v = virtualinvoke v.<java.sql.SQLException: 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[])>("   exception  :\u0001\n");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("------------------------------");
v = virtualinvoke v.<java.sql.SQLException: java.sql.SQLException getNextException()>();
goto label;
label:
v = <org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER>;
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
protected java.util.Properties handlePropertiesPriorToJDBCDriverConnection(java.util.Properties)
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.util.Properties v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v := @parameter: java.util.Properties;
return v;
}
public boolean acceptsURL(java.lang.String) throws java.sql.SQLException
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.sql.Driver v;
java.lang.String v;
boolean v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<java.sql.Driver: boolean acceptsURL(java.lang.String)>(v);
return v;
}
public java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String, java.util.Properties) throws java.sql.SQLException
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.sql.DriverPropertyInfo[] v;
java.util.Properties v;
java.sql.Driver v;
java.lang.String v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v := @parameter: java.lang.String;
v := @parameter: java.util.Properties;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<java.sql.Driver: java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String,java.util.Properties)>(v, v);
return v;
}
public int getMajorVersion()
{
int v;
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.sql.Driver v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<java.sql.Driver: int getMajorVersion()>();
return v;
}
public int getMinorVersion()
{
int v;
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.sql.Driver v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<java.sql.Driver: int getMinorVersion()>();
return v;
}
public boolean jdbcCompliant()
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.sql.Driver v;
boolean v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<java.sql.Driver: boolean jdbcCompliant()>();
return v;
}
public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper v;
java.util.logging.Logger v;
java.sql.Driver v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: java.sql.Driver driver>;
v = interfaceinvoke v.<java.sql.Driver: java.util.logging.Logger getParentLogger()>();
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/plan/execution/stores/relational/connection/driver/DriverWrapper;");
<org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DriverWrapper: org.slf4j.Logger LOGGER> = v;
return;
}
}