aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend
diff options
context:
space:
mode:
authorLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-11 02:22:15 +0200
committerLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-11 02:22:15 +0200
commit91b772506f00ce2e317027dd384b82dc7a1295fd (patch)
tree19fd1b945cae52a4b32357f48ee2da3aa7ca1d5b /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend
parentautomated containment and attribute addition for subclasses (diff)
downloadVIATRA-Generator-91b772506f00ce2e317027dd384b82dc7a1295fd.tar.gz
VIATRA-Generator-91b772506f00ce2e317027dd384b82dc7a1295fd.tar.zst
VIATRA-Generator-91b772506f00ce2e317027dd384b82dc7a1295fd.zip
separated must and current UP rules to support non-prop neg finds
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend12
1 files changed, 10 insertions, 2 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend
index d5ebe318..219f99e9 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternGenerator.xtend
@@ -26,6 +26,14 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery
26import org.eclipse.xtend.lib.annotations.Accessors 26import org.eclipse.xtend.lib.annotations.Accessors
27 27
28import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* 28import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
29import org.eclipse.xtend.lib.annotations.Data
30import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint
31
32@Data class PatternGeneratorResult {
33 CharSequence patternText
34 HashMap<PConstraint,String> constraint2MustPreconditionName
35 HashMap<PConstraint,String> constraint2CurrentPreconditionName
36}
29 37
30class PatternGenerator { 38class PatternGenerator {
31 @Accessors(PUBLIC_GETTER) val TypeIndexer typeIndexer //= new TypeIndexer(this) 39 @Accessors(PUBLIC_GETTER) val TypeIndexer typeIndexer //= new TypeIndexer(this)
@@ -149,7 +157,7 @@ class PatternGenerator {
149 problem.allTypeReferences.exists[it instanceof StringTypeReference] 157 problem.allTypeReferences.exists[it instanceof StringTypeReference]
150 } 158 }
151 159
152 public def transformBaseProperties( 160 public def PatternGeneratorResult transformBaseProperties(
153 LogicProblem problem, 161 LogicProblem problem,
154 PartialInterpretation emptySolution, 162 PartialInterpretation emptySolution,
155 Map<String,PQuery> fqn2PQuery, 163 Map<String,PQuery> fqn2PQuery,
@@ -398,6 +406,6 @@ class PatternGenerator {
398 ''' 406 '''
399 val up = unitPropagationPreconditionGenerator.generateUnitPropagationRules(problem,problem.relations.filter(RelationDefinition),fqn2PQuery) 407 val up = unitPropagationPreconditionGenerator.generateUnitPropagationRules(problem,problem.relations.filter(RelationDefinition),fqn2PQuery)
400 val second = up.definitions 408 val second = up.definitions
401 return (first+second) -> up.constraint2PreconditionName 409 return new PatternGeneratorResult(first+second,up.constraint2MustPreconditionName,up.constraint2CurrentPreconditionName)
402 } 410 }
403} 411}