diff options
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend index 395aba85..2dd01343 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/TypeAnalysis.xtend | |||
@@ -1,21 +1,21 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra | 1 | package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra |
2 | 2 | ||
3 | import org.eclipse.xtend.lib.annotations.Data | 3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement |
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | ||
7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.DontHaveDefinedSupertype | ||
8 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementMayTypeNegativeConstraint | ||
9 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeConstructor | ||
10 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementNegativeConstraint | ||
11 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementTarget | ||
12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
13 | import java.util.ArrayList | ||
5 | import java.util.List | 14 | import java.util.List |
6 | import java.util.Map | 15 | import java.util.Map |
7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | ||
9 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine | 16 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine |
10 | import org.eclipse.viatra.query.runtime.emf.EMFScope | 17 | import org.eclipse.viatra.query.runtime.emf.EMFScope |
11 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeConstructorMatcher | 18 | import org.eclipse.xtend.lib.annotations.Data |
12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementTargetMatcher | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementTypeRefinementNegativeConstraintMatcher | ||
14 | import java.util.ArrayList | ||
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.DontHaveDefinedSupertypeMatcher | ||
16 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration | ||
17 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.queries.NewElementMayTypeNegativeConstraintMatcher | ||
19 | 19 | ||
20 | @Data class TypeRefinementPrecondition { | 20 | @Data class TypeRefinementPrecondition { |
21 | Type targetType | 21 | Type targetType |
@@ -60,11 +60,11 @@ class TypeAnalysis { | |||
60 | 60 | ||
61 | def TypeAnalysisResult performTypeAnalysis(LogicProblem problem, PartialInterpretation interpretation) { | 61 | def TypeAnalysisResult performTypeAnalysis(LogicProblem problem, PartialInterpretation interpretation) { |
62 | val viatraEngine = ViatraQueryEngine.on(new EMFScope(problem)) | 62 | val viatraEngine = ViatraQueryEngine.on(new EMFScope(problem)) |
63 | val negativeMatcher = NewElementTypeRefinementNegativeConstraintMatcher.on(viatraEngine) | 63 | val negativeMatcher = NewElementTypeRefinementNegativeConstraint.Matcher.on(viatraEngine) |
64 | 64 | ||
65 | val possibleNewDynamicTypes = NewElementTypeConstructorMatcher.on(viatraEngine).allValuesOftype | 65 | val possibleNewDynamicTypes = NewElementTypeConstructor.Matcher.on(viatraEngine).allValuesOftype |
66 | 66 | ||
67 | val possibleNewTypeRefinementTargets = NewElementTypeRefinementTargetMatcher.on(viatraEngine).allValuesOfrefined | 67 | val possibleNewTypeRefinementTargets = NewElementTypeRefinementTarget.Matcher.on(viatraEngine).allValuesOfrefined |
68 | val possibleNewTypeRefinements = new ArrayList | 68 | val possibleNewTypeRefinements = new ArrayList |
69 | for(possibleNewTypeRefinementTarget : possibleNewTypeRefinementTargets) { | 69 | for(possibleNewTypeRefinementTarget : possibleNewTypeRefinementTargets) { |
70 | val inhibitorTypes = negativeMatcher.getAllValuesOfinhibitor(possibleNewTypeRefinementTarget) | 70 | val inhibitorTypes = negativeMatcher.getAllValuesOfinhibitor(possibleNewTypeRefinementTarget) |
@@ -73,8 +73,8 @@ class TypeAnalysis { | |||
73 | inhibitorTypes.toList) | 73 | inhibitorTypes.toList) |
74 | } | 74 | } |
75 | 75 | ||
76 | val possibleTypes = DontHaveDefinedSupertypeMatcher.on(viatraEngine).allValuesOftype | 76 | val possibleTypes = DontHaveDefinedSupertype.Matcher.on(viatraEngine).allValuesOftype |
77 | val newElementMayTypeMatcher = NewElementMayTypeNegativeConstraintMatcher.on(viatraEngine) | 77 | val newElementMayTypeMatcher = NewElementMayTypeNegativeConstraint.Matcher.on(viatraEngine) |
78 | 78 | ||
79 | val mayNewTypePreconditions = possibleTypes.toInvertedMap[type | | 79 | val mayNewTypePreconditions = possibleTypes.toInvertedMap[type | |
80 | val inhibitorTypes = newElementMayTypeMatcher.getAllValuesOfinhibitor(type as TypeDeclaration) | 80 | val inhibitorTypes = newElementMayTypeMatcher.getAllValuesOfinhibitor(type as TypeDeclaration) |