diff options
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.xtend | 18 |
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 | ||
21 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 21 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
22 | import java.util.Collection | 22 | import java.util.Collection |
23 | import 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, |