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 | 19 |
1 files changed, 16 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 656f806b..ff8ab437 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 | |||
@@ -1,5 +1,6 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra | 1 | package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
4 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider | 5 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider |
5 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.rules.GoalConstraintProvider | 6 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.rules.GoalConstraintProvider |
@@ -14,6 +15,8 @@ import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher | |||
14 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery | 15 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery |
15 | import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule | 16 | import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule |
16 | import org.eclipse.xtend.lib.annotations.Data | 17 | import org.eclipse.xtend.lib.annotations.Data |
18 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery | ||
19 | import java.util.Set | ||
17 | 20 | ||
18 | class ModelGenerationStatistics { | 21 | class ModelGenerationStatistics { |
19 | public var long transformationExecutionTime = 0 | 22 | public var long transformationExecutionTime = 0 |
@@ -47,13 +50,23 @@ class ModelGenerationMethodProvider { | |||
47 | public def ModelGenerationMethod createModelGenerationMethod( | 50 | public def ModelGenerationMethod createModelGenerationMethod( |
48 | LogicProblem logicProblem, | 51 | LogicProblem logicProblem, |
49 | PartialInterpretation emptySolution, | 52 | PartialInterpretation emptySolution, |
50 | Iterable<PQuery> existingQueries, | ||
51 | ReasonerWorkspace workspace, | 53 | ReasonerWorkspace workspace, |
52 | boolean nameNewElements, | 54 | boolean nameNewElements, |
53 | TypeInferenceMethod typeInferenceMethod | 55 | TypeInferenceMethod typeInferenceMethod, |
56 | DocumentationLevel debugLevel | ||
54 | ) { | 57 | ) { |
55 | val statistics = new ModelGenerationStatistics | 58 | val statistics = new ModelGenerationStatistics |
56 | val queries = patternProvider.generateQueries(logicProblem,emptySolution,statistics,existingQueries,workspace,typeInferenceMethod) | 59 | val writeFiles = (debugLevel === DocumentationLevel.NORMAL || debugLevel === DocumentationLevel.FULL) |
60 | |||
61 | val Set<PQuery> existingQueries = logicProblem | ||
62 | .relations | ||
63 | .map[annotations] | ||
64 | .flatten | ||
65 | .filter(TransfomedViatraQuery) | ||
66 | .map[it.patternPQuery as PQuery] | ||
67 | .toSet | ||
68 | |||
69 | val queries = patternProvider.generateQueries(logicProblem,emptySolution,statistics,existingQueries,workspace,typeInferenceMethod,writeFiles) | ||
57 | 70 | ||
58 | val //LinkedHashMap<Pair<Relation, ? extends Type>, BatchTransformationRule<GenericPatternMatch, ViatraQueryMatcher<GenericPatternMatch>>> | 71 | val //LinkedHashMap<Pair<Relation, ? extends Type>, BatchTransformationRule<GenericPatternMatch, ViatraQueryMatcher<GenericPatternMatch>>> |
59 | objectRefinementRules = refinementRuleProvider.createObjectRefinementRules(queries,nameNewElements,statistics) | 72 | objectRefinementRules = refinementRuleProvider.createObjectRefinementRules(queries,nameNewElements,statistics) |