diff options
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend index e45ec1c8..6fbbc779 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/ModelGenerationMethodProvider.xtend | |||
@@ -27,6 +27,7 @@ import java.util.Set | |||
27 | import org.eclipse.viatra.query.runtime.api.IPatternMatch | 27 | import org.eclipse.viatra.query.runtime.api.IPatternMatch |
28 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification | 28 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification |
29 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher | 29 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher |
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery | 31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery |
31 | import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule | 32 | import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule |
32 | import org.eclipse.xtend.lib.annotations.Data | 33 | import org.eclipse.xtend.lib.annotations.Data |
@@ -83,6 +84,9 @@ class ModelGenerationStatistics { | |||
83 | 84 | ||
84 | Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> invalidWF | 85 | Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> invalidWF |
85 | 86 | ||
87 | Map<PConstraint, IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> mustUnitPropagationPreconditions | ||
88 | Map<PConstraint, IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> currentUnitPropagationPreconditions | ||
89 | |||
86 | Map<String, ModalPatternQueries> modalRelationQueries | 90 | Map<String, ModalPatternQueries> modalRelationQueries |
87 | 91 | ||
88 | Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> allPatterns | 92 | Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> allPatterns |
@@ -120,12 +124,13 @@ class ModelGenerationMethodProvider { | |||
120 | workspace, typeInferenceMethod, scopePropagatorStrategy, relationConstraints, hints, writeFiles) | 124 | workspace, typeInferenceMethod, scopePropagatorStrategy, relationConstraints, hints, writeFiles) |
121 | val scopePropagator = createScopePropagator(scopePropagatorStrategy, emptySolution, hints, queries, statistics) | 125 | val scopePropagator = createScopePropagator(scopePropagatorStrategy, emptySolution, hints, queries, statistics) |
122 | scopePropagator.propagateAllScopeConstraints | 126 | scopePropagator.propagateAllScopeConstraints |
123 | val objectRefinementRules = refinementRuleProvider.createObjectRefinementRules(queries, scopePropagator, | 127 | val objectRefinementRules = refinementRuleProvider.createObjectRefinementRules(logicProblem, emptySolution, |
124 | nameNewElements, statistics) | 128 | queries, scopePropagator, nameNewElements, statistics) |
125 | val relationRefinementRules = refinementRuleProvider.createRelationRefinementRules(queries, scopePropagator, | 129 | val relationRefinementRules = refinementRuleProvider.createRelationRefinementRules(queries, scopePropagator, |
126 | statistics) | 130 | statistics) |
127 | 131 | ||
128 | val unfinishedMultiplicities = goalConstraintProvider.getUnfinishedMultiplicityQueries(queries) | 132 | val unfinishedMultiplicities = goalConstraintProvider.getUnfinishedMultiplicityQueries(logicProblem,queries) |
133 | |||
129 | val unfinishedWF = queries.getUnfinishedWFQueries.values | 134 | val unfinishedWF = queries.getUnfinishedWFQueries.values |
130 | 135 | ||
131 | val modalRelationQueriesBuilder = ImmutableMap.builder | 136 | val modalRelationQueriesBuilder = ImmutableMap.builder |
@@ -138,6 +143,9 @@ class ModelGenerationMethodProvider { | |||
138 | val modalRelationQueries = modalRelationQueriesBuilder.build | 143 | val modalRelationQueries = modalRelationQueriesBuilder.build |
139 | 144 | ||
140 | val invalidWF = queries.getInvalidWFQueries.values | 145 | val invalidWF = queries.getInvalidWFQueries.values |
146 | |||
147 | val mustUnitPropagationPreconditions = queries.getMustUnitPropagationPreconditionPatterns | ||
148 | val currentUnitPropagationPreconditions = queries.getCurrentUnitPropagationPreconditionPatterns | ||
141 | 149 | ||
142 | return new ModelGenerationMethod( | 150 | return new ModelGenerationMethod( |
143 | statistics, | 151 | statistics, |
@@ -146,6 +154,8 @@ class ModelGenerationMethodProvider { | |||
146 | unfinishedMultiplicities, | 154 | unfinishedMultiplicities, |
147 | unfinishedWF, | 155 | unfinishedWF, |
148 | invalidWF, | 156 | invalidWF, |
157 | mustUnitPropagationPreconditions, | ||
158 | currentUnitPropagationPreconditions, | ||
149 | modalRelationQueries, | 159 | modalRelationQueries, |
150 | queries.allQueries | 160 | queries.allQueries |
151 | ) | 161 | ) |