public class org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI extends java.lang.Object
{
private static final org.slf4j.Logger LOGGER;
private static final org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows dbDatasourceAuth;
private final org.finos.legend.engine.shared.core.deployment.DeploymentMode deploymentMode;
private final org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager;
public void <init>(org.finos.legend.engine.shared.core.deployment.DeploymentMode, org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor)
{
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor v;
org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState v;
org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor v;
v := @this: org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI;
v := @parameter: org.finos.legend.engine.shared.core.deployment.DeploymentMode;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.shared.core.deployment.DeploymentMode deploymentMode> = v;
if v != null goto label;
v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager> = null;
goto label;
label:
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor: org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState getStoreState()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState: org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor getRelationalExecutor()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector getConnectionManager()>();
v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager> = v;
label:
return;
}
public javax.ws.rs.core.Response generateModelsFromDatabaseSpecification(org.finos.legend.engine.language.pure.relational.api.relationalElement.input.DatabaseToModelGenerationInput, org.pac4j.core.profile.ProfileManager)
{
org.finos.legend.engine.shared.core.operational.logs.LoggingEventType v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.eclipse.collections.api.list.MutableList v;
javax.ws.rs.core.MediaType v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
org.finos.legend.pure.m.coreinstance.meta.pure.store.Store v;
java.lang.String v, v, v, v, v, v;
boolean v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
org.slf4j.Logger v;
org.finos.legend.engine.language.pure.relational.api.relationalElement.input.DatabaseToModelGenerationInput v;
org.pac4j.core.profile.ProfileManager v;
java.lang.Exception v;
org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v;
org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
v := @this: org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI;
v := @parameter: org.finos.legend.engine.language.pure.relational.api.relationalElement.input.DatabaseToModelGenerationInput;
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 = virtualinvoke v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.input.DatabaseToModelGenerationInput: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData getModelData()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.input.DatabaseToModelGenerationInput: java.lang.String getDatabasePath()>();
v = new org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.shared.core.deployment.DeploymentMode deploymentMode>;
specialinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel: void <init>(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData,java.lang.String,org.finos.legend.engine.shared.core.deployment.DeploymentMode)>(v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.input.DatabaseToModelGenerationInput: java.lang.String getTargetPackage()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel: org.finos.legend.pure.m.coreinstance.meta.pure.store.Store getStore(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: java.lang.String getTargetPackageFromDatabasePath(java.lang.String)>(v);
goto label;
label:
v = v;
label:
v = virtualinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel: org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport getExecutionSupport()>();
v = staticinvoke <org.finos.legend.pure.generated.core_relational_relational_autogeneration_relationalToPure: java.lang.String Root_meta_relational_transform_autogen_classesAssociationsAndMappingFromDatabase_Database_1__String_1__String_1_(org.finos.legend.pure.m.coreinstance.meta.relational.metamodel.Database,java.lang.String,org.finos.legend.pure.m.execution.ExecutionSupport)>(v, v, v);
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
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 = 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.language.pure.relational.api.relationalElement.RelationalElementAPI: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to generate models from database specifications", v);
v = <org.finos.legend.engine.shared.core.operational.logs.LoggingEventType: org.finos.legend.engine.shared.core.operational.logs.LoggingEventType CATCH_ALL>;
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.lang.Exception from label to label with label;
}
public javax.ws.rs.core.Response getDbDataSourceAuthComb(org.pac4j.core.profile.ProfileManager)
{
org.finos.legend.engine.shared.core.operational.logs.LoggingEventType v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.eclipse.collections.api.list.MutableList v;
java.util.ArrayList v;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v, v;
java.util.Map v;
java.lang.String v;
boolean v;
org.slf4j.Logger v;
org.pac4j.core.profile.ProfileManager v;
java.lang.Exception v;
java.util.List v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v;
org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI v;
java.util.Optional v, v;
java.lang.Object v;
org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows v;
v := @this: org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI;
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 = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
v = v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.util.Optional getFlowProviderHolder()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = <org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows dbDatasourceAuth>;
v = v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.util.Optional getFlowProviderHolder()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = interfaceinvoke v.<org.finos.legend.engine.authentication.provider.DatabaseAuthenticationFlowProvider: java.util.Map getFlows()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows: java.util.List getDbTypeDataSourceAndAuthCombos(java.util.Map)>(v);
label:
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(int)>(200);
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.language.pure.relational.api.relationalElement.RelationalElementAPI: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to fetch Database Authentication Flows", v);
v = <org.finos.legend.engine.shared.core.operational.logs.LoggingEventType: org.finos.legend.engine.shared.core.operational.logs.LoggingEventType CATCH_ALL>;
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.lang.Exception from label to label with label;
}
private java.lang.String getTargetPackageFromDatabasePath(java.lang.String)
{
org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI v;
int v;
java.lang.String v, v;
v := @this: org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(java.lang.String)>("::");
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/language/pure/relational/api/relationalElement/RelationalElementAPI;");
<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.slf4j.Logger LOGGER> = v;
v = new org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows;
specialinvoke v.<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows: void <init>()>();
<org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI: org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalConnectionDbAuthenticationFlows dbDatasourceAuth> = v;
return;
}
}