public class org.finos.legend.engine.language.pure.modelManager.ModelManager extends java.lang.Object
{
public static final com.fasterxml.jackson.databind.ObjectMapper objectMapper;
public final com.google.common.cache.Cache pureModelCache;
private final org.finos.legend.engine.shared.core.deployment.DeploymentMode deploymentMode;
private final org.eclipse.collections.api.list.MutableList modelLoaders;
private final io.opentracing.Tracer tracer;
private final java.util.concurrent.ForkJoinPool forkJoinPool;
public transient void <init>(org.finos.legend.engine.shared.core.deployment.DeploymentMode, org.finos.legend.engine.language.pure.modelManager.ModelLoader[])
{
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
io.opentracing.Tracer v;
org.finos.legend.engine.language.pure.modelManager.ModelLoader[] v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.shared.core.deployment.DeploymentMode;
v := @parameter: org.finos.legend.engine.language.pure.modelManager.ModelLoader[];
v = staticinvoke <io.opentracing.util.GlobalTracer: io.opentracing.Tracer get()>();
specialinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: void <init>(org.finos.legend.engine.shared.core.deployment.DeploymentMode,java.util.concurrent.ForkJoinPool,io.opentracing.Tracer,org.finos.legend.engine.language.pure.modelManager.ModelLoader[])>(v, null, v, v);
return;
}
public transient void <init>(org.finos.legend.engine.shared.core.deployment.DeploymentMode, java.util.concurrent.ForkJoinPool, org.finos.legend.engine.language.pure.modelManager.ModelLoader[])
{
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
io.opentracing.Tracer v;
org.finos.legend.engine.language.pure.modelManager.ModelLoader[] v;
java.util.concurrent.ForkJoinPool v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.shared.core.deployment.DeploymentMode;
v := @parameter: java.util.concurrent.ForkJoinPool;
v := @parameter: org.finos.legend.engine.language.pure.modelManager.ModelLoader[];
v = staticinvoke <io.opentracing.util.GlobalTracer: io.opentracing.Tracer get()>();
specialinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: void <init>(org.finos.legend.engine.shared.core.deployment.DeploymentMode,java.util.concurrent.ForkJoinPool,io.opentracing.Tracer,org.finos.legend.engine.language.pure.modelManager.ModelLoader[])>(v, v, v, v);
return;
}
public transient void <init>(org.finos.legend.engine.shared.core.deployment.DeploymentMode, java.util.concurrent.ForkJoinPool, io.opentracing.Tracer, org.finos.legend.engine.language.pure.modelManager.ModelLoader[])
{
io.opentracing.Tracer v;
org.eclipse.collections.api.block.procedure.Procedure v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v, v;
java.util.concurrent.TimeUnit v;
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
org.finos.legend.engine.language.pure.modelManager.ModelLoader[] v;
java.util.concurrent.ForkJoinPool v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
com.google.common.cache.CacheBuilder v, v, v, v;
com.google.common.cache.Cache v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.shared.core.deployment.DeploymentMode;
v := @parameter: java.util.concurrent.ForkJoinPool;
v := @parameter: io.opentracing.Tracer;
v := @parameter: org.finos.legend.engine.language.pure.modelManager.ModelLoader[];
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <com.google.common.cache.CacheBuilder: com.google.common.cache.CacheBuilder newBuilder()>();
v = virtualinvoke v.<com.google.common.cache.CacheBuilder: com.google.common.cache.CacheBuilder recordStats()>();
v = virtualinvoke v.<com.google.common.cache.CacheBuilder: com.google.common.cache.CacheBuilder softValues()>();
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MINUTES>;
v = virtualinvoke v.<com.google.common.cache.CacheBuilder: com.google.common.cache.CacheBuilder expireAfterAccess(long,java.util.concurrent.TimeUnit)>(30L, v);
v = virtualinvoke v.<com.google.common.cache.CacheBuilder: com.google.common.cache.Cache build()>();
v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: com.google.common.cache.Cache pureModelCache> = v;
v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: io.opentracing.Tracer tracer> = v;
v = <org.eclipse.collections.impl.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList of(java.lang.Object[])>(v);
v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.eclipse.collections.api.list.MutableList modelLoaders> = v;
v = v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.eclipse.collections.api.list.MutableList modelLoaders>;
v = staticinvoke <org.finos.legend.engine.language.pure.modelManager.ModelManager$lambda_new_4f83984d_1__1: org.eclipse.collections.api.block.procedure.Procedure bootstrap$(org.finos.legend.engine.language.pure.modelManager.ModelManager)>(v);
interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: void forEach(org.eclipse.collections.api.block.procedure.Procedure)>(v);
v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.shared.core.deployment.DeploymentMode deploymentMode> = v;
v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: java.util.concurrent.ForkJoinPool forkJoinPool> = v;
return;
}
public org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel loadModel(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext, java.lang.String, org.finos.legend.engine.shared.core.identity.Identity, java.lang.String)
{
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.language.pure.modelManager.ModelLoader v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter v;
java.util.concurrent.Callable v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
java.lang.String v, v, v;
boolean v, v, v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder v, v, v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext v, v;
java.util.concurrent.ExecutionException v;
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
java.util.concurrent.ForkJoinPool v;
org.finos.legend.engine.shared.core.operational.errorManagement.EngineException v;
org.finos.legend.engine.shared.core.deployment.DeploymentMode v;
java.lang.Object v;
com.google.common.cache.Cache v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v := @parameter: java.lang.String;
v = staticinvoke <org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder newBuilder()>();
v = virtualinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder withPackagePrefix(java.lang.String)>(v);
v = v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: java.util.concurrent.ForkJoinPool forkJoinPool>;
v = virtualinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder withForkJoinPool(java.util.concurrent.ForkJoinPool)>(v);
v = virtualinvoke v.<org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter$Builder: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter build()>();
v = v instanceof org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData;
if v != 0 goto label;
v = v instanceof org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextText;
if v != 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.language.pure.modelManager.ModelLoader modelLoaderForContext(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext)>(v);
v = interfaceinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelLoader: boolean shouldCache(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelLoader: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext cacheKey(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,org.finos.legend.engine.shared.core.identity.Identity)>(v, v);
label:
v = v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: com.google.common.cache.Cache pureModelCache>;
v = staticinvoke <org.finos.legend.engine.language.pure.modelManager.ModelManager$lambda_loadModel_0__2: java.util.concurrent.Callable bootstrap$(org.finos.legend.engine.language.pure.modelManager.ModelManager,org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,java.lang.String,org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter)>(v, v, v, v, v);
v = interfaceinvoke v.<com.google.common.cache.Cache: java.lang.Object get(java.lang.Object,java.util.concurrent.Callable)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = new org.finos.legend.engine.shared.core.operational.errorManagement.EngineException;
specialinvoke v.<org.finos.legend.engine.shared.core.operational.errorManagement.EngineException: void <init>(java.lang.String,java.lang.Exception)>("Engine was not able to cache", v);
throw v;
label:
v = virtualinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData loadData(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,java.lang.String,org.finos.legend.engine.shared.core.identity.Identity)>(v, v, v);
v = v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.shared.core.deployment.DeploymentMode deploymentMode>;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = staticinvoke <org.finos.legend.engine.language.pure.compiler.Compiler: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel compile(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData,org.finos.legend.engine.shared.core.deployment.DeploymentMode,java.lang.String,org.finos.legend.pure.runtime.java.compiled.metadata.Metadata,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModelProcessParameter)>(v, v, v, null, v);
return v;
catch java.util.concurrent.ExecutionException from label to label with label;
}
public org.eclipse.collections.api.tuple.Pair loadModelAndData(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext, java.lang.String, org.finos.legend.engine.shared.core.identity.Identity, java.lang.String)
{
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
java.lang.String v, v;
org.eclipse.collections.api.tuple.Pair v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData loadData(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,java.lang.String,org.finos.legend.engine.shared.core.identity.Identity)>(v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel loadModel(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,java.lang.String,org.finos.legend.engine.shared.core.identity.Identity,java.lang.String)>(v, v, v, v);
v = staticinvoke <org.eclipse.collections.impl.tuple.Tuples: org.eclipse.collections.api.tuple.Pair pair(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
public java.lang.String getLambdaReturnType(org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda, org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext, java.lang.String, org.finos.legend.engine.shared.core.identity.Identity)
{
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda v;
java.lang.String v, v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v = virtualinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel loadModel(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,java.lang.String,org.finos.legend.engine.shared.core.identity.Identity,java.lang.String)>(v, v, v, null);
v = staticinvoke <org.finos.legend.engine.language.pure.compiler.Compiler: java.lang.String getLambdaReturnType(org.finos.legend.engine.protocol.pure.v.model.valueSpecification.raw.Lambda,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel)>(v, v);
return v;
}
public org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData loadData(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext, java.lang.String, org.finos.legend.engine.shared.core.identity.Identity)
{
java.lang.Throwable v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.language.pure.modelManager.ModelLoader v;
org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser v;
io.opentracing.Tracer$SpanBuilder v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v, v;
java.lang.String v, v, v;
boolean v, v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext v;
io.opentracing.Tracer v;
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
io.opentracing.Span v, v;
java.lang.Class v;
io.opentracing.Scope v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v = v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: io.opentracing.Tracer tracer>;
v = interfaceinvoke v.<io.opentracing.Tracer: io.opentracing.Tracer$SpanBuilder buildSpan(java.lang.String)>("Load Model");
v = interfaceinvoke v.<io.opentracing.Tracer$SpanBuilder: io.opentracing.Scope startActive(boolean)>(1);
label:
v = interfaceinvoke v.<io.opentracing.Scope: io.opentracing.Span span()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
interfaceinvoke v.<io.opentracing.Span: io.opentracing.Span setTag(java.lang.String,java.lang.String)>("context", v);
v = v instanceof org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData;
if v == 0 goto label;
label:
interfaceinvoke v.<io.opentracing.Scope: void close()>();
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextText;
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser: org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser newInstance()>();
v = v.<org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextText: java.lang.String code>;
v = virtualinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.PureGrammarParser: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData parseModel(java.lang.String)>(v);
label:
interfaceinvoke v.<io.opentracing.Scope: void close()>();
return v;
label:
v = virtualinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.finos.legend.engine.language.pure.modelManager.ModelLoader modelLoaderForContext(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext)>(v);
v = interfaceinvoke v.<io.opentracing.Scope: io.opentracing.Span span()>();
v = interfaceinvoke v.<org.finos.legend.engine.language.pure.modelManager.ModelLoader: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData load(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext,java.lang.String,io.opentracing.Span)>(v, v, v, v);
label:
interfaceinvoke v.<io.opentracing.Scope: void close()>();
return v;
label:
v := @caughtexception;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.finos.legend.engine.language.pure.modelManager.ModelLoader modelLoaderForContext(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext)
{
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext v;
org.eclipse.collections.api.block.predicate.Predicate v;
org.eclipse.collections.api.list.MutableList v, v;
org.finos.legend.engine.language.pure.modelManager.ModelManager v;
org.eclipse.collections.api.block.function.Function v;
int v;
java.lang.Object v;
boolean v;
v := @this: org.finos.legend.engine.language.pure.modelManager.ModelManager;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext;
v = v.<org.finos.legend.engine.language.pure.modelManager.ModelManager: org.eclipse.collections.api.list.MutableList modelLoaders>;
v = staticinvoke <org.finos.legend.engine.language.pure.modelManager.ModelManager$lambda_modelLoaderForContext_7360e4ba_1__3: org.eclipse.collections.api.block.predicate.Predicate bootstrap$(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList select(org.eclipse.collections.api.block.predicate.Predicate)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: int size()>();
if v != 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <org.finos.legend.engine.language.pure.modelManager.ModelManager$lambda_modelLoaderForContext_197d36d1_1__4: org.eclipse.collections.api.block.function.Function bootstrap$(org.finos.legend.engine.protocol.pure.v.model.context.PureModelContext)>(v);
staticinvoke <org.finos.legend.engine.shared.core.operational.Assert: void assertTrue(boolean,org.eclipse.collections.api.block.function.Function)>(v, v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.lang.Object get(int)>(0);
return v;
}
static void <clinit>()
{
com.fasterxml.jackson.databind.ObjectMapper v;
v = staticinvoke <org.finos.legend.engine.shared.core.ObjectMapperFactory: com.fasterxml.jackson.databind.ObjectMapper getNewStandardObjectMapperWithPureProtocolExtensionSupports()>();
<org.finos.legend.engine.language.pure.modelManager.ModelManager: com.fasterxml.jackson.databind.ObjectMapper objectMapper> = v;
return;
}
}