Search in sources :

Example 1 with XStoreAssociationImplementation

use of org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation in project legend-pure by finos.

the class XStoreUnbind method run.

@Override
public void run(XStoreAssociationImplementation instance, MatcherState state, Matcher matcher, ModelRepository modelRepository, Context context) throws PureCompilationException {
    ProcessorSupport processorSupport = state.getProcessorSupport();
    Shared.cleanImportStub(instance._associationCoreInstance(), processorSupport);
    Shared.cleanImportStub(instance._parentCoreInstance(), processorSupport);
    for (PropertyMapping propertyMapping : instance._propertyMappings()) {
        Shared.cleanPropertyStub(propertyMapping._propertyCoreInstance(), processorSupport);
        matcher.fullMatch(((XStorePropertyMapping) propertyMapping)._crossExpression(), state);
        FunctionType functionType = (FunctionType) ImportStub.withImportStubByPass(((XStorePropertyMapping) propertyMapping)._crossExpression()._classifierGenericType()._typeArguments().toList().get(0)._rawTypeCoreInstance(), processorSupport);
        functionType._parametersRemove();
        functionType._functionRemove();
    }
}
Also used : ProcessorSupport(org.finos.legend.pure.m3.navigation.ProcessorSupport) FunctionType(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.FunctionType) PropertyMapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyMapping) XStorePropertyMapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStorePropertyMapping)

Example 2 with XStoreAssociationImplementation

use of org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation in project legend-pure by finos.

the class XStoreProcessor method process.

@Override
public void process(XStoreAssociationImplementation instance, ProcessorState state, Matcher matcher, ModelRepository repository, Context context, ProcessorSupport processorSupport) {
    Association association = (Association) ImportStub.withImportStubByPass(instance._associationCoreInstance(), processorSupport);
    Mapping mapping = (Mapping) ImportStub.withImportStubByPass(instance._parentCoreInstance(), processorSupport);
    MapIterable<String, SetImplementation> setImpl = org.finos.legend.pure.m2.dsl.mapping.Mapping.getClassMappingsByIdIncludeEmbedded(mapping, processorSupport);
    int i = 0;
    for (XStorePropertyMapping propertyMapping : (RichIterable<XStorePropertyMapping>) instance._propertyMappings()) {
        PropertyMappingProcessor.processPropertyMapping(propertyMapping, repository, processorSupport, association, instance);
        state.pushVariableContext();
        InstanceSetImplementation sourceSetImpl = (InstanceSetImplementation) MappingValidator.validateId(instance, propertyMapping, setImpl, propertyMapping._sourceSetImplementationId(), "source", processorSupport);
        InstanceSetImplementation targetSetImpl = (InstanceSetImplementation) MappingValidator.validateId(instance, propertyMapping, setImpl, propertyMapping._targetSetImplementationId(), "target", processorSupport);
        Class srcClass = getSetImplementationClass(sourceSetImpl, processorSupport);
        Class targetClass = getSetImplementationClass(targetSetImpl, processorSupport);
        VariableExpression thisParam = this.buildParam("this", srcClass, repository, processorSupport);
        VariableExpression thatParam = this.buildParam("that", targetClass, repository, processorSupport);
        FunctionType fType = (FunctionType) ImportStub.withImportStubByPass(propertyMapping._crossExpression()._classifierGenericType()._typeArguments().collect(new Function<GenericType, CoreInstance>() {

            @Override
            public CoreInstance valueOf(GenericType genericType) {
                return genericType._rawTypeCoreInstance();
            }
        }).toList().get(0), processorSupport);
        fType._parameters(Lists.immutable.withAll((ImmutableList<VariableExpression>) fType._parameters()).newWithAll(Lists.immutable.with(thisParam)));
        fType._parameters(Lists.immutable.withAll((ImmutableList<VariableExpression>) fType._parameters()).newWithAll(Lists.immutable.with(thatParam)));
        matcher.fullMatch(propertyMapping._crossExpression(), state);
        ValueSpecification expressionSequence = propertyMapping._crossExpression()._expressionSequence().toList().getFirst();
        if (expressionSequence != null) {
            PropertyMappingValueSpecificationContext usageContext = (PropertyMappingValueSpecificationContext) processorSupport.newAnonymousCoreInstance(null, M2MappingPaths.PropertyMappingValueSpecificationContext);
            usageContext._offset(i);
            usageContext._propertyMapping(propertyMapping);
            expressionSequence._usageContext(usageContext);
        }
        i++;
        state.popVariableContext();
    }
}
Also used : GenericType(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.generics.GenericType) XStorePropertyMapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStorePropertyMapping) FunctionType(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.FunctionType) ValueSpecification(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.ValueSpecification) Mapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping) XStorePropertyMapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStorePropertyMapping) VariableExpression(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.VariableExpression) RichIterable(org.eclipse.collections.api.RichIterable) Association(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.relationship.Association) InstanceSetImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation) CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance) MappingClass(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.MappingClass) Class(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class) InstanceSetImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation) SetImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.SetImplementation) PropertyMappingValueSpecificationContext(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyMappingValueSpecificationContext)

Example 3 with XStoreAssociationImplementation

use of org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation in project legend-pure by finos.

the class XStoreParser method parseMapping.

public String parseMapping(String content, String id, String extendsId, String setSourceInfo, boolean root, String classPath, String classSourceInfo, String mappingPath, String sourceName, int offsetLine, String importId, ModelRepository repository, Context context) throws PureParserException {
    M3AntlrParser parser = new M3AntlrParser();
    M3ProcessorSupport processorSupport = new M3ProcessorSupport(context, repository);
    String mappingName = mappingPath.replace("::", "_");
    String classMappingName = classPath.replace("::", "_");
    AntlrContextToM3CoreInstance.LambdaContext lambdaContext = new AntlrContextToM3CoreInstance.LambdaContext(mappingName + '_' + classMappingName + (id == null ? "" : '_' + id));
    TemporaryPureSetImplementation arg = parser.parseMappingInfo(content, classPath, lambdaContext, sourceName, offsetLine, importId, repository, processorSupport, context);
    return "^meta::pure::mapping::xStore::XStoreAssociationImplementation" + setSourceInfo + "(" + ((id == null) ? "" : ("id = '" + id + "',")) + "association = ^meta::pure::metamodel::import::ImportStub " + classSourceInfo + " (importGroup=system::imports::" + importId + ", idOrPath='" + classPath + "')," + "parent = ^meta::pure::metamodel::import::ImportStub (importGroup=system::imports::" + importId + ", idOrPath='" + mappingPath + "')," + "propertyMappings = [" + arg.propertyMappings.collect(propertyStubCoreInstancePair -> "^meta::pure::mapping::xStore::XStorePropertyMapping " + propertyStubCoreInstancePair.sourceInformation.toM4String() + " (property='" + propertyStubCoreInstancePair.property + "'," + (propertyStubCoreInstancePair.sourceMappingId == null ? "" : "                                         sourceSetImplementationId='" + propertyStubCoreInstancePair.sourceMappingId + "',") + (propertyStubCoreInstancePair.targetMappingId == null ? "" : "                                         targetSetImplementationId='" + propertyStubCoreInstancePair.targetMappingId + "',") + "                                         crossExpression=^meta::pure::metamodel::function::LambdaFunction " + lambdaContext.getLambdaFunctionUniqueName() + ' ' + propertyStubCoreInstancePair.expression.getSourceInformation().toM4String() + " (" + "                                                           classifierGenericType=^meta::pure::metamodel::type::generics::GenericType " + propertyStubCoreInstancePair.expression.getSourceInformation().toM4String() + " (rawType=meta::pure::metamodel::function::LambdaFunction, typeArguments=^meta::pure::metamodel::type::generics::GenericType " + propertyStubCoreInstancePair.expression.getSourceInformation().toM4String() + " (rawType = ^meta::pure::metamodel::type::FunctionType " + propertyStubCoreInstancePair.expression.getSourceInformation().toM4String() + " ()))," + "                                                           expressionSequence=" + M3AntlrParser.process(propertyStubCoreInstancePair.expression, processorSupport) + ")" + "                                                                   )\n").makeString(",") + "])";
}
Also used : M3M4StateListener(org.finos.legend.pure.m3.statelistener.M3M4StateListener) XStoreProcessor(org.finos.legend.pure.m2.dsl.mapping.serialization.grammar.v1.processor.XStoreProcessor) XStoreUnbind(org.finos.legend.pure.m2.dsl.mapping.serialization.grammar.v1.unloader.XStoreUnbind) ParserLibrary(org.finos.legend.pure.m3.serialization.grammar.ParserLibrary) Lists(org.eclipse.collections.api.factory.Lists) SetIterable(org.eclipse.collections.api.set.SetIterable) MutableList(org.eclipse.collections.api.list.MutableList) Context(org.finos.legend.pure.m3.compiler.Context) MatchRunner(org.finos.legend.pure.m3.tools.matcher.MatchRunner) RichIterable(org.eclipse.collections.api.RichIterable) Parser(org.finos.legend.pure.m3.serialization.grammar.Parser) Sets(org.eclipse.collections.api.factory.Sets) XStoreValidator(org.finos.legend.pure.m2.dsl.mapping.serialization.grammar.v1.validator.XStoreValidator) ModelRepository(org.finos.legend.pure.m4.ModelRepository) PureParserException(org.finos.legend.pure.m4.serialization.grammar.antlr.PureParserException) ExternalReferenceSerializer(org.finos.legend.pure.m3.serialization.runtime.binary.reference.ExternalReferenceSerializer) TemporaryPureSetImplementation(org.finos.legend.pure.m3.serialization.grammar.m3parser.antlr.TemporaryPureSetImplementation) NavigationHandler(org.finos.legend.pure.m3.serialization.runtime.navigation.NavigationHandler) CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance) CoreInstanceFactoryRegistry(org.finos.legend.pure.m3.coreinstance.CoreInstanceFactoryRegistry) SourceState(org.finos.legend.pure.m3.serialization.runtime.SourceState) M3AntlrParser(org.finos.legend.pure.m3.serialization.grammar.m3parser.antlr.M3AntlrParser) M3ProcessorSupport(org.finos.legend.pure.m3.navigation.M3ProcessorSupport) ListIterable(org.eclipse.collections.api.list.ListIterable) AntlrContextToM3CoreInstance(org.finos.legend.pure.m3.serialization.grammar.m3parser.antlr.AntlrContextToM3CoreInstance) M3AntlrParser(org.finos.legend.pure.m3.serialization.grammar.m3parser.antlr.M3AntlrParser) M3ProcessorSupport(org.finos.legend.pure.m3.navigation.M3ProcessorSupport) TemporaryPureSetImplementation(org.finos.legend.pure.m3.serialization.grammar.m3parser.antlr.TemporaryPureSetImplementation) AntlrContextToM3CoreInstance(org.finos.legend.pure.m3.serialization.grammar.m3parser.antlr.AntlrContextToM3CoreInstance)

Example 4 with XStoreAssociationImplementation

use of org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation in project legend-engine by finos.

the class HelperMappingBuilder method processAssociationImplementation.

public static AssociationImplementation processAssociationImplementation(AssociationMapping associationMapping, CompileContext context, Mapping parentMapping) {
    if (associationMapping instanceof XStoreAssociationMapping) {
        XStoreAssociationMapping xStoreAssociationMapping = (XStoreAssociationMapping) associationMapping;
        XStoreAssociationImplementation base = new Root_meta_pure_mapping_xStore_XStoreAssociationImplementation_Impl("");
        final org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.relationship.Association pureAssociation = context.resolveAssociation(xStoreAssociationMapping.association);
        MutableList<Store> stores = ListIterate.collect(xStoreAssociationMapping.stores, context::resolveStore);
        base._association(pureAssociation)._stores(stores)._parent(parentMapping)._propertyMappings(ListIterate.collect(xStoreAssociationMapping.propertyMappings, propertyMapping -> propertyMapping.accept(new PropertyMappingBuilder(context, parentMapping, base, HelperMappingBuilder.getAllClassMappings(parentMapping)))));
        return base;
    }
    return context.getCompilerExtensions().getExtraAssociationMappingProcessors().stream().map(processor -> processor.value(associationMapping, parentMapping, context)).filter(Objects::nonNull).findFirst().orElseThrow(() -> new UnsupportedOperationException("Unsupported association mapping type '" + associationMapping.getClass() + "'"));
}
Also used : AggregationFunctionSpecification(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.aggregationAware.AggregationFunctionSpecification) EngineErrorType(org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType) PurePropertyMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.modelToModel.mapping.PurePropertyMapping) XStoreAssociationImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation) SetIterable(org.eclipse.collections.api.set.SetIterable) Generalization(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.relationship.Generalization) MutableList(org.eclipse.collections.api.list.MutableList) MutableSet(org.eclipse.collections.api.set.MutableSet) Handlers(org.finos.legend.engine.language.pure.compiler.toPureGraph.handlers.Handlers) PropertyMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.PropertyMapping) RichIterable(org.eclipse.collections.api.RichIterable) Variable(org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.Variable) Property(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.property.Property) Store(org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store) EnumValueMappingEnumSourceValue(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.EnumValueMappingEnumSourceValue) Root_meta_pure_metamodel_function_LambdaFunction_Impl(org.finos.legend.pure.generated.Root_meta_pure_metamodel_function_LambdaFunction_Impl) Map(java.util.Map) InstanceSetImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation) Multiplicity(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Multiplicity) AssociationImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.AssociationImplementation) EnumerationMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.EnumerationMapping) MappingClass(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.MappingClass) GroupByFunctionSpecification(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.aggregationAware.GroupByFunctionSpecification) Root_meta_pure_mapping_SubstituteStore_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_SubstituteStore_Impl) MappingTest(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.mappingTest.MappingTest) Root_meta_pure_metamodel_function_property_Property_Impl(org.finos.legend.pure.generated.Root_meta_pure_metamodel_function_property_Property_Impl) LocalMappingPropertyInfo(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.LocalMappingPropertyInfo) Class(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class) Root_meta_pure_mapping_xStore_XStoreAssociationImplementation_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_xStore_XStoreAssociationImplementation_Impl) Collectors(java.util.stream.Collectors) Root_meta_pure_mapping_MappingClass_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_MappingClass_Impl) Objects(java.util.Objects) Root_meta_pure_mapping_aggregationAware_AggregationFunctionSpecification_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_AggregationFunctionSpecification_Impl) List(java.util.List) ClassMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.ClassMapping) Mapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping) Procedure2(org.eclipse.collections.api.block.procedure.Procedure2) GenericType(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.generics.GenericType) Lists(org.eclipse.collections.impl.factory.Lists) EngineException(org.finos.legend.engine.shared.core.operational.errorManagement.EngineException) Optional(java.util.Optional) InputData(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.mappingTest.InputData) EnumValueMappingStringSourceValue(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.EnumValueMappingStringSourceValue) VariableExpression(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.VariableExpression) Lambda(org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda) PropertyMappingsImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyMappingsImplementation) AggregateSpecification(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.aggregationAware.AggregateSpecification) Root_meta_pure_mapping_EnumValueMapping_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_EnumValueMapping_Impl) MappingInclude(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.MappingInclude) AssociationMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.AssociationMapping) XStoreAssociationMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.xStore.XStoreAssociationMapping) EnumValueMappingIntegerSourceValue(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.EnumValueMappingIntegerSourceValue) Root_meta_pure_functions_meta_elementToPath_PackageableElement_1__String_1_(org.finos.legend.pure.generated.platform_pure_corefunctions_meta.Root_meta_pure_functions_meta_elementToPath_PackageableElement_1__String_1_) FastList(org.eclipse.collections.impl.list.mutable.FastList) EnumValueMappingSourceValue(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.EnumValueMappingSourceValue) HelperModelBuilder.getElementFullPath(org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperModelBuilder.getElementFullPath) ObjectInputData(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.modelToModel.mapping.ObjectInputData) Root_meta_pure_mapping_EnumerationMapping_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_EnumerationMapping_Impl) AggregateFunction(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.aggregationAware.AggregateFunction) GroupByFunction(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.aggregationAware.GroupByFunction) Root_meta_pure_metamodel_relationship_Generalization_Impl(org.finos.legend.pure.generated.Root_meta_pure_metamodel_relationship_Generalization_Impl) Root_meta_pure_mapping_MappingInclude_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_MappingInclude_Impl) Root_meta_pure_metamodel_type_generics_GenericType_Impl(org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_generics_GenericType_Impl) PackageableElement(org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement) SourceInformation(org.finos.legend.pure.m4.coreinstance.SourceInformation) Root_meta_pure_metamodel_valuespecification_VariableExpression_Impl(org.finos.legend.pure.generated.Root_meta_pure_metamodel_valuespecification_VariableExpression_Impl) ValueSpecification(org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.ValueSpecification) ListIterate(org.eclipse.collections.impl.utility.ListIterate) SetImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.SetImplementation) LambdaFunction(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction) Root_meta_pure_mapping_aggregationAware_AggregateSpecification_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_AggregateSpecification_Impl) InstanceValue(org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.InstanceValue) Root_meta_pure_mapping_aggregationAware_GroupByFunctionSpecification_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_GroupByFunctionSpecification_Impl) AggregateSetImplementationContainer(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.aggregationAware.AggregateSetImplementationContainer) Sets(org.eclipse.collections.impl.factory.Sets) Root_meta_pure_mapping_aggregationAware_AggregateSetImplementationContainer_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_AggregateSetImplementationContainer_Impl) ImmutableSet(org.eclipse.collections.api.set.ImmutableSet) XStoreAssociationImplementation(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation) Store(org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store) XStoreAssociationMapping(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.xStore.XStoreAssociationMapping) Root_meta_pure_mapping_xStore_XStoreAssociationImplementation_Impl(org.finos.legend.pure.generated.Root_meta_pure_mapping_xStore_XStoreAssociationImplementation_Impl) Objects(java.util.Objects)

Aggregations

RichIterable (org.eclipse.collections.api.RichIterable)3 MutableList (org.eclipse.collections.api.list.MutableList)2 SetIterable (org.eclipse.collections.api.set.SetIterable)2 InstanceSetImplementation (org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation)2 Mapping (org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping)2 MappingClass (org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.MappingClass)2 SetImplementation (org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.SetImplementation)2 Class (org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class)2 GenericType (org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.generics.GenericType)2 VariableExpression (org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.VariableExpression)2 CoreInstance (org.finos.legend.pure.m4.coreinstance.CoreInstance)2 List (java.util.List)1 Map (java.util.Map)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Collectors (java.util.stream.Collectors)1 Procedure2 (org.eclipse.collections.api.block.procedure.Procedure2)1 Lists (org.eclipse.collections.api.factory.Lists)1 Sets (org.eclipse.collections.api.factory.Sets)1 ListIterable (org.eclipse.collections.api.list.ListIterable)1