From e19d57dd3a15e77882b471fa15f27f97e72a092b Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Wed, 7 Mar 2018 12:46:50 -0500 Subject: Validation for abstract dynamic types --- .../inf/dslreasoner/logic2ecore/Logic2Ecore.xtend | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf') diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend index fb8c9d66..1aedaf7b 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend @@ -1,23 +1,21 @@ package hu.bme.mit.inf.dslreasoner.logic2ecore -import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace -import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation -import java.util.HashSet +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder +import java.util.Collection import java.util.HashMap -import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* -import org.eclipse.emf.ecore.EClass +import java.util.HashSet +import java.util.List import java.util.Set +import org.eclipse.emf.ecore.EClass import org.eclipse.emf.ecore.EObject -import java.util.List -import java.util.Collection import org.eclipse.emf.ecore.EStructuralFeature +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* + class Logic2Ecore { - private val extension LogicProblemBuilder problemBuilder = new LogicProblemBuilder private val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder val Ecore2Logic ecore2Logic; @@ -85,7 +83,11 @@ class Logic2Ecore { for(candidate : classes) { val subtypeOfAll = classes.forall[it.isSuperTypeOf(candidate)] if(subtypeOfAll) { - return candidate + if(candidate.abstract || candidate.isInterface) { + throw new AssertionError('''Object has abstract concrete type! Types: [«FOR c:classes SEPARATOR ","»«c.name»«ENDFOR»]''') + } else { + return candidate + } } } throw new AssertionError('''Object has no unique concrete type! Types: [«FOR c:classes SEPARATOR ","»«c.name»«ENDFOR»]''') -- cgit v1.2.3-54-g00ecf