diff options
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend')
-rw-r--r-- | Framework/hu.bme.mit.inf.dslreasoner.logic2ecore/src/hu/bme/mit/inf/dslreasoner/logic2ecore/Logic2Ecore.xtend | 24 |
1 files changed, 13 insertions, 11 deletions
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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.logic2ecore | 1 | package hu.bme.mit.inf.dslreasoner.logic2ecore |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | ||
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation |
9 | import java.util.HashSet | 6 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder |
7 | import java.util.Collection | ||
10 | import java.util.HashMap | 8 | import java.util.HashMap |
11 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 9 | import java.util.HashSet |
12 | import org.eclipse.emf.ecore.EClass | 10 | import java.util.List |
13 | import java.util.Set | 11 | import java.util.Set |
12 | import org.eclipse.emf.ecore.EClass | ||
14 | import org.eclipse.emf.ecore.EObject | 13 | import org.eclipse.emf.ecore.EObject |
15 | import java.util.List | ||
16 | import java.util.Collection | ||
17 | import org.eclipse.emf.ecore.EStructuralFeature | 14 | import org.eclipse.emf.ecore.EStructuralFeature |
18 | 15 | ||
16 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | ||
17 | |||
19 | class Logic2Ecore { | 18 | class Logic2Ecore { |
20 | private val extension LogicProblemBuilder problemBuilder = new LogicProblemBuilder | ||
21 | private val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder | 19 | private val extension LogicStructureBuilder structureBuilder = new LogicStructureBuilder |
22 | val Ecore2Logic ecore2Logic; | 20 | val Ecore2Logic ecore2Logic; |
23 | 21 | ||
@@ -85,7 +83,11 @@ class Logic2Ecore { | |||
85 | for(candidate : classes) { | 83 | for(candidate : classes) { |
86 | val subtypeOfAll = classes.forall[it.isSuperTypeOf(candidate)] | 84 | val subtypeOfAll = classes.forall[it.isSuperTypeOf(candidate)] |
87 | if(subtypeOfAll) { | 85 | if(subtypeOfAll) { |
88 | return candidate | 86 | if(candidate.abstract || candidate.isInterface) { |
87 | throw new AssertionError('''Object has abstract concrete type! Types: [«FOR c:classes SEPARATOR ","»«c.name»«ENDFOR»]''') | ||
88 | } else { | ||
89 | return candidate | ||
90 | } | ||
89 | } | 91 | } |
90 | } | 92 | } |
91 | throw new AssertionError('''Object has no unique concrete type! Types: [«FOR c:classes SEPARATOR ","»«c.name»«ENDFOR»]''') | 93 | throw new AssertionError('''Object has no unique concrete type! Types: [«FOR c:classes SEPARATOR ","»«c.name»«ENDFOR»]''') |