public class org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension extends java.lang.Object implements org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension
{
private final org.slf4j.Logger LOGGER;
private final com.fasterxml.jackson.databind.ObjectMapper mapper;
public static final java.lang.String ROOT_PATH;
public static final java.lang.String META_DATA_FILE_NAME;
public static final java.lang.String EXECUTION_PLAN_FILE_NAME;
public void <init>()
{
org.slf4j.Logger v;
org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension v;
com.fasterxml.jackson.databind.ObjectMapper v, v, v;
v := @this: org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/generation/dataquality/DataQualityValidationArtifactGenerationExtension;");
v.<org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension: org.slf4j.Logger LOGGER> = v;
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
v = staticinvoke <org.finos.legend.engine.protocol.pure.v.PureProtocolObjectMapperFactory: com.fasterxml.jackson.databind.ObjectMapper withPureProtocolExtensions(com.fasterxml.jackson.databind.ObjectMapper)>(v);
v = staticinvoke <org.finos.legend.engine.shared.core.ObjectMapperFactory: com.fasterxml.jackson.databind.ObjectMapper withStandardConfigurations(com.fasterxml.jackson.databind.ObjectMapper)>(v);
v.<org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension: com.fasterxml.jackson.databind.ObjectMapper mapper> = v;
return;
}
public java.lang.String getKey()
{
org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension v;
v := @this: org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension;
return "dataQualityValidation";
}
public boolean canGenerate(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement)
{
org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement v;
org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension v;
org.finos.legend.pure.generated.Root_meta_external_dataquality_DataQualityRootGraphFetchTree v;
boolean v, v;
v := @this: org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension;
v := @parameter: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement;
v = v instanceof org.finos.legend.pure.generated.Root_meta_external_dataquality_DataQuality;
if v == 0 goto label;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_external_dataquality_DataQuality: org.finos.legend.pure.generated.Root_meta_external_dataquality_DataQualityRootGraphFetchTree _validationTree()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.util.List generate(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement, org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel, org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData, java.lang.String)
{
org.eclipse.collections.api.block.function.Function v, v;
org.eclipse.collections.api.factory.list.MutableListFactory v, v;
org.eclipse.collections.api.list.MutableList v, v, v;
org.finos.legend.engine.plan.platform.PlanPlatform v;
org.eclipse.collections.api.RichIterable v;
org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData v;
org.finos.legend.engine.protocol.dataquality.model.DataQualityMetadata v;
java.lang.String v, v, v, v, v, v;
org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel v;
org.slf4j.Logger v;
org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension v;
com.fasterxml.jackson.databind.ObjectMapper v, v;
org.finos.legend.engine.protocol.pure.v.model.executionPlan.SingleExecutionPlan v;
java.lang.Exception v;
org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.function.LambdaFunction v;
org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport v;
org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact v, v;
org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement v;
org.eclipse.collections.api.list.ListIterable v;
java.lang.Object v;
v := @this: org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension;
v := @parameter: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement;
v := @parameter: org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.context.PureModelContextData;
v := @parameter: java.lang.String;
v = <org.eclipse.collections.api.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 empty()>();
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_dataquality_generation_dataquality: org.eclipse.collections.api.RichIterable Root_meta_external_dataquality_generateDQMetaDataForDQValidation_DataQuality_1__DataQualityRule_MANY_(org.finos.legend.pure.generated.Root_meta_external_dataquality_DataQuality,org.finos.legend.pure.m.execution.ExecutionSupport)>(v, v);
v = <org.eclipse.collections.api.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 withAll(java.lang.Iterable)>(v);
v = staticinvoke <org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension$lambda_generate_98984b19_1__1: org.eclipse.collections.api.block.function.Function bootstrap$()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList collect(org.eclipse.collections.api.block.function.Function)>(v);
v = new org.finos.legend.engine.protocol.dataquality.model.DataQualityMetadata;
specialinvoke v.<org.finos.legend.engine.protocol.dataquality.model.DataQualityMetadata: void <init>()>();
v.<org.finos.legend.engine.protocol.dataquality.model.DataQualityMetadata: java.util.List dqRules> = v;
v = new org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact;
v = v.<org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension: com.fasterxml.jackson.databind.ObjectMapper mapper>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.String writeValueAsString(java.lang.Object)>(v);
specialinvoke v.<org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "dataQualityRulesMetadata.json", "json");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = staticinvoke <org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension$lambda_generate_fa6b7b5_1__2: org.eclipse.collections.api.block.function.Function bootstrap$()>();
v = staticinvoke <org.finos.legend.engine.generation.dataquality.DataQualityLambdaGenerator: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.function.LambdaFunction generateLambda(org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel,org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement)>(v, v);
v = <org.finos.legend.engine.plan.platform.PlanPlatform: org.finos.legend.engine.plan.platform.PlanPlatform JAVA>;
v = interfaceinvoke v.<org.eclipse.collections.api.block.function.Function: java.lang.Object apply(java.lang.Object)>(v);
v = <org.finos.legend.engine.plan.generation.transformers.LegendPlanTransformers: org.eclipse.collections.api.list.ListIterable transformers>;
v = staticinvoke <org.finos.legend.engine.plan.generation.PlanGenerator: org.finos.legend.engine.protocol.pure.v.model.executionPlan.SingleExecutionPlan generateExecutionPlan(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.function.FunctionDefinition,org.finos.legend.pure.m.coreinstance.meta.pure.mapping.Mapping,org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime,org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext,org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel,java.lang.String,org.finos.legend.engine.plan.platform.PlanPlatform,java.lang.String,org.eclipse.collections.api.RichIterable,java.lang.Iterable)>(v, null, null, null, v, v, v, null, v, v);
v = new org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact;
v = v.<org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension: com.fasterxml.jackson.databind.ObjectMapper mapper>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.String writeValueAsString(java.lang.Object)>(v);
specialinvoke v.<org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "dataQualityValidationExecutionPlan.json", "json");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.finos.legend.engine.generation.dataquality.DataQualityValidationArtifactGenerationExtension: org.slf4j.Logger LOGGER>;
v = interfaceinvoke v.<org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.PackageableElement: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.Exception: 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[])>("Unable to compute dataQuality validation artifact for dqValidation: \u. Exception:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
}