From 80158bfdf3c75382d023c5d7953efe1645ab7e92 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Wed, 2 Aug 2017 21:08:02 +0200 Subject: attributes and references that not included to a logic problem are excluded from the partial model mapping. --- .../InstanceModel2PartialInterpretation.xtend | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic/src/hu/bme/mit/inf') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretation2logic/InstanceModel2PartialInterpretation.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretation2logic/InstanceModel2PartialInterpretation.xtend index 58c41a49..626e3baa 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretation2logic/InstanceModel2PartialInterpretation.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretation2logic/InstanceModel2PartialInterpretation.xtend @@ -70,9 +70,11 @@ class InstanceModel2PartialInterpretation { object2DefinedElement.put(object, element) } + val referencesUsed = ecore2Logic.allReferencesInScope(ecore2LogicTrace).toSet + val attributesUsed = ecore2Logic.allAttributesInScope(ecore2LogicTrace).toSet for(source : objects) { // Translating the references - for(reference : source.eClass.EAllReferences) { + for(reference : source.eClass.EAllReferences.filter[referencesUsed.contains(it)]) { val type = ecore2Logic.relationOfReference(ecore2LogicTrace,reference) val interpretation = type.lookup(partialInterpretationTrace.relation2Interpretation) val sourceElement = source.lookup(object2DefinedElement) @@ -90,8 +92,9 @@ class InstanceModel2PartialInterpretation { } } } - // Transforming the relations - for(attribute : source.eClass.EAllAttributes) { + + // Transforming the attributes + for(attribute : source.eClass.EAllAttributes.filter[referencesUsed.contains(it)]) { val type = ecore2Logic.relationOfAttribute(ecore2LogicTrace,attribute) val interpretation = type.lookup(partialInterpretationTrace.relation2Interpretation) val sourceElement = source.lookup(object2DefinedElement) -- cgit v1.2.3-54-g00ecf