aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend18
1 files changed, 8 insertions, 10 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
index cc8860b4..0e13a5e1 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend
@@ -20,6 +20,7 @@ import org.eclipse.xtend.lib.annotations.Data
20 20
21import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* 21import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
22import java.util.Collection 22import java.util.Collection
23import java.util.Set
23 24
24@Data class GeneratedPatterns { 25@Data class GeneratedPatterns {
25 public Map<Relation, IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> invalidWFQueries 26 public Map<Relation, IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> invalidWFQueries
@@ -39,10 +40,11 @@ class PatternProvider {
39 LogicProblem problem, 40 LogicProblem problem,
40 PartialInterpretation emptySolution, 41 PartialInterpretation emptySolution,
41 ModelGenerationStatistics statistics, 42 ModelGenerationStatistics statistics,
42 Iterable<PQuery> existingQueries, 43 Set<PQuery> existingQueries,
43 ReasonerWorkspace workspace, 44 ReasonerWorkspace workspace,
44 TypeInferenceMethod typeInferenceMethod 45 TypeInferenceMethod typeInferenceMethod,
45 ) { 46 boolean writeToFile)
47 {
46 val fqn2Query = existingQueries.toMap[it.fullyQualifiedName] 48 val fqn2Query = existingQueries.toMap[it.fullyQualifiedName]
47 val PatternGenerator patternGenerator = new PatternGenerator(typeInferenceMethod) 49 val PatternGenerator patternGenerator = new PatternGenerator(typeInferenceMethod)
48 val typeAnalysisResult = if(patternGenerator.requiresTypeAnalysis) { 50 val typeAnalysisResult = if(patternGenerator.requiresTypeAnalysis) {
@@ -55,19 +57,15 @@ class PatternProvider {
55 null 57 null
56 } 58 }
57 val baseIndexerFile = patternGenerator.transformBaseProperties(problem,emptySolution,fqn2Query,typeAnalysisResult) 59 val baseIndexerFile = patternGenerator.transformBaseProperties(problem,emptySolution,fqn2Query,typeAnalysisResult)
58 writeQueries(baseIndexerFile,"GeneratedQueries",workspace) 60 if(writeToFile) {
61 workspace.writeText('''generated3valued.vql_deactivated''',baseIndexerFile)
62 }
59 val ParseUtil parseUtil = new ParseUtil 63 val ParseUtil parseUtil = new ParseUtil
60 val generatedQueries = parseUtil.parse(baseIndexerFile) 64 val generatedQueries = parseUtil.parse(baseIndexerFile)
61 val runtimeQueries = calclulateRuntimeQueries(patternGenerator,problem,emptySolution,typeAnalysisResult,generatedQueries); 65 val runtimeQueries = calclulateRuntimeQueries(patternGenerator,problem,emptySolution,typeAnalysisResult,generatedQueries);
62 return runtimeQueries 66 return runtimeQueries
63 } 67 }
64 68
65 private def writeQueries(CharSequence content, String name,ReasonerWorkspace workspace) {
66 if(workspace!=null) {
67 workspace.writeText('''«name».vql_deactivated''',content)
68 }
69 }
70
71 private def GeneratedPatterns calclulateRuntimeQueries( 69 private def GeneratedPatterns calclulateRuntimeQueries(
72 PatternGenerator patternGenerator, 70 PatternGenerator patternGenerator,
73 LogicProblem problem, 71 LogicProblem problem,