public class org.apache.ibatis.mapping.VendorDatabaseIdProvider extends java.lang.Object implements org.apache.ibatis.mapping.DatabaseIdProvider
{
private java.util.Properties properties;
public void <init>()
{
org.apache.ibatis.mapping.VendorDatabaseIdProvider v;
v := @this: org.apache.ibatis.mapping.VendorDatabaseIdProvider;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public java.lang.String getDatabaseId(javax.sql.DataSource)
{
java.sql.SQLException v;
org.apache.ibatis.mapping.VendorDatabaseIdProvider v;
javax.sql.DataSource v;
java.lang.String v;
org.apache.ibatis.builder.BuilderException v;
java.lang.NullPointerException v;
v := @this: org.apache.ibatis.mapping.VendorDatabaseIdProvider;
v := @parameter: javax.sql.DataSource;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("dataSource cannot be null");
throw v;
label:
v = specialinvoke v.<org.apache.ibatis.mapping.VendorDatabaseIdProvider: java.lang.String getDatabaseName(javax.sql.DataSource)>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.ibatis.builder.BuilderException;
specialinvoke v.<org.apache.ibatis.builder.BuilderException: void <init>(java.lang.String,java.lang.Throwable)>("Error occurred when getting DB product name.", v);
throw v;
catch java.sql.SQLException from label to label with label;
}
public void setProperties(java.util.Properties)
{
org.apache.ibatis.mapping.VendorDatabaseIdProvider v;
java.util.Properties v;
v := @this: org.apache.ibatis.mapping.VendorDatabaseIdProvider;
v := @parameter: java.util.Properties;
v.<org.apache.ibatis.mapping.VendorDatabaseIdProvider: java.util.Properties properties> = v;
return;
}
private java.lang.String getDatabaseName(javax.sql.DataSource) throws java.sql.SQLException
{
org.apache.ibatis.mapping.VendorDatabaseIdProvider v;
java.util.Properties v, v;
java.util.function.Predicate v;
java.util.Set v;
java.util.function.Function v;
java.util.stream.Stream v, v, v;
javax.sql.DataSource v;
java.util.Optional v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.ibatis.mapping.VendorDatabaseIdProvider;
v := @parameter: javax.sql.DataSource;
v = specialinvoke v.<org.apache.ibatis.mapping.VendorDatabaseIdProvider: java.lang.String getDatabaseProductName(javax.sql.DataSource)>(v);
v = v.<org.apache.ibatis.mapping.VendorDatabaseIdProvider: java.util.Properties properties>;
if v == null goto label;
v = v.<org.apache.ibatis.mapping.VendorDatabaseIdProvider: java.util.Properties properties>;
v = virtualinvoke v.<java.util.Properties: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.ibatis.mapping.VendorDatabaseIdProvider$lambda_getDatabaseName_0__41: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.ibatis.mapping.VendorDatabaseIdProvider$lambda_getDatabaseName_1__42: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.Optional findFirst()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
return v;
label:
return v;
}
private java.lang.String getDatabaseProductName(javax.sql.DataSource) throws java.sql.SQLException
{
java.lang.Throwable v;
org.apache.ibatis.mapping.VendorDatabaseIdProvider v;
java.sql.Connection v;
javax.sql.DataSource v;
java.sql.DatabaseMetaData v;
java.lang.String v;
v := @this: org.apache.ibatis.mapping.VendorDatabaseIdProvider;
v := @parameter: javax.sql.DataSource;
v = interfaceinvoke v.<javax.sql.DataSource: java.sql.Connection getConnection()>();
label:
v = interfaceinvoke v.<java.sql.Connection: java.sql.DatabaseMetaData getMetaData()>();
v = interfaceinvoke v.<java.sql.DatabaseMetaData: java.lang.String getDatabaseProductName()>();
label:
interfaceinvoke v.<java.sql.Connection: void close()>();
return v;
label:
v := @caughtexception;
throw v;
catch java.lang.Throwable from label to label with label;
}
}