From c6affe2ae0c3ff5540781383907192c45f1f213b Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Sat, 1 Jun 2019 17:23:22 -0400 Subject: Inverse references works if opposite reference is pruned away. --- .../src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Framework') diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend index 179690dd..50f088d4 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend @@ -32,7 +32,7 @@ class EReferenceMapper_RelationsOverTypes implements EReferenceMapper{ val extension Ecore2logicannotationsFactory builder2 = Ecore2logicannotationsFactory.eINSTANCE val extension EClassMapper classMapper; - public new(EClassMapper classMapper) { + new(EClassMapper classMapper) { this.classMapper = classMapper } @@ -117,7 +117,7 @@ class EReferenceMapper_RelationsOverTypes implements EReferenceMapper{ def createInverseReferenceConstraints(Ecore2Logic_Trace trace, LogicProblem problem, Iterable references) { trace.referenceMapperTrace.asTrace.inverseEdges = new HashMap for(reference : references) { - if(reference.EOpposite!=null) { + if(reference.EOpposite!==null && references.exists[it === reference.EOpposite]) { val opposite = reference.EOpposite if(trace.referenceMapperTrace.asTrace.inverseEdges.containsKey(opposite)) { trace.referenceMapperTrace.asTrace.inverseEdges.put(reference,trace.referenceMapperTrace.asTrace.inverseEdges.get(opposite)) -- cgit v1.2.3-54-g00ecf