diff options
Diffstat (limited to 'store/src/main/java/org/eclipse/viatra/solver/data/query')
3 files changed, 25 insertions, 14 deletions
diff --git a/store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java b/store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java index 3e5ef88e..439298d0 100644 --- a/store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java +++ b/store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java | |||
@@ -4,52 +4,61 @@ import java.util.List; | |||
4 | import java.util.Map; | 4 | import java.util.Map; |
5 | import java.util.Set; | 5 | import java.util.Set; |
6 | 6 | ||
7 | public class PredicateAtom implements DNFAtom{ | 7 | public class PredicateAtom implements DNFAtom { |
8 | private DNFPredicate referred; | 8 | private DNFPredicate referred; |
9 | private List<Variable> substitution; | 9 | private List<Variable> substitution; |
10 | private boolean positive; | 10 | private boolean positive; |
11 | private boolean transitive; | 11 | private boolean transitive; |
12 | 12 | ||
13 | public PredicateAtom(boolean positive, boolean transitive, DNFPredicate referred, List<Variable> substitution) { | 13 | public PredicateAtom(boolean positive, boolean transitive, DNFPredicate referred, List<Variable> substitution) { |
14 | this.positive = positive; | 14 | this.positive = positive; |
15 | this.referred = referred; | 15 | this.referred = referred; |
16 | this.substitution = substitution; | 16 | this.substitution = substitution; |
17 | this.transitive = transitive; | 17 | this.transitive = transitive; |
18 | } | 18 | } |
19 | |||
19 | public DNFPredicate getReferred() { | 20 | public DNFPredicate getReferred() { |
20 | return referred; | 21 | return referred; |
21 | } | 22 | } |
23 | |||
22 | public void setReferred(DNFPredicate referred) { | 24 | public void setReferred(DNFPredicate referred) { |
23 | this.referred = referred; | 25 | this.referred = referred; |
24 | } | 26 | } |
27 | |||
25 | public List<Variable> getSubstitution() { | 28 | public List<Variable> getSubstitution() { |
26 | return substitution; | 29 | return substitution; |
27 | } | 30 | } |
31 | |||
28 | public void setSubstitution(List<Variable> substitution) { | 32 | public void setSubstitution(List<Variable> substitution) { |
29 | this.substitution = substitution; | 33 | this.substitution = substitution; |
30 | } | 34 | } |
35 | |||
31 | public boolean isPositive() { | 36 | public boolean isPositive() { |
32 | return positive; | 37 | return positive; |
33 | } | 38 | } |
39 | |||
34 | public void setPositive(boolean positive) { | 40 | public void setPositive(boolean positive) { |
35 | this.positive = positive; | 41 | this.positive = positive; |
36 | } | 42 | } |
43 | |||
37 | public boolean isTransitive() { | 44 | public boolean isTransitive() { |
38 | return transitive; | 45 | return transitive; |
39 | } | 46 | } |
47 | |||
40 | public void setTransitive(boolean transitive) { | 48 | public void setTransitive(boolean transitive) { |
41 | this.transitive = transitive; | 49 | this.transitive = transitive; |
42 | } | 50 | } |
51 | |||
43 | @Override | 52 | @Override |
44 | public void unifyVariables(Map<String, Variable> variables) { | 53 | public void unifyVariables(Map<String, Variable> variables) { |
45 | for(int i = 0; i<this.substitution.size(); i++) { | 54 | for (int i = 0; i < this.substitution.size(); i++) { |
46 | final Object term = this.substitution.get(i); | 55 | final Object term = this.substitution.get(i); |
47 | if(term instanceof Variable) { | 56 | if (term instanceof Variable variableReference) { |
48 | Variable variableReference = (Variable) term; | ||
49 | this.substitution.set(i, DNFAtom.unifyVariables(variables, variableReference)); | 57 | this.substitution.set(i, DNFAtom.unifyVariables(variables, variableReference)); |
50 | } | 58 | } |
51 | } | 59 | } |
52 | } | 60 | } |
61 | |||
53 | @Override | 62 | @Override |
54 | public void collectAllVariables(Set<Variable> variables) { | 63 | public void collectAllVariables(Set<Variable> variables) { |
55 | DNFAtom.addToCollection(variables, substitution); | 64 | DNFAtom.addToCollection(variables, substitution); |
diff --git a/store/src/main/java/org/eclipse/viatra/solver/data/query/building/RelationAtom.java b/store/src/main/java/org/eclipse/viatra/solver/data/query/building/RelationAtom.java index f7152bba..adf2f8c7 100644 --- a/store/src/main/java/org/eclipse/viatra/solver/data/query/building/RelationAtom.java +++ b/store/src/main/java/org/eclipse/viatra/solver/data/query/building/RelationAtom.java | |||
@@ -7,37 +7,41 @@ import java.util.Set; | |||
7 | import org.eclipse.viatra.solver.data.query.view.FilteredRelationView; | 7 | import org.eclipse.viatra.solver.data.query.view.FilteredRelationView; |
8 | import org.eclipse.viatra.solver.data.query.view.RelationView; | 8 | import org.eclipse.viatra.solver.data.query.view.RelationView; |
9 | 9 | ||
10 | public class RelationAtom implements DNFAtom{ | 10 | public class RelationAtom implements DNFAtom { |
11 | RelationView<?> view; | 11 | RelationView<?> view; |
12 | List<Variable> substitution; | 12 | List<Variable> substitution; |
13 | 13 | ||
14 | public RelationAtom(RelationView<?> view, List<Variable> substitution) { | 14 | public RelationAtom(RelationView<?> view, List<Variable> substitution) { |
15 | this.view = view; | 15 | this.view = view; |
16 | this.substitution = substitution; | 16 | this.substitution = substitution; |
17 | } | 17 | } |
18 | |||
18 | public RelationView<?> getView() { | 19 | public RelationView<?> getView() { |
19 | return view; | 20 | return view; |
20 | } | 21 | } |
22 | |||
21 | public void setView(FilteredRelationView<?> view) { | 23 | public void setView(FilteredRelationView<?> view) { |
22 | this.view = view; | 24 | this.view = view; |
23 | } | 25 | } |
26 | |||
24 | public List<Variable> getSubstitution() { | 27 | public List<Variable> getSubstitution() { |
25 | return substitution; | 28 | return substitution; |
26 | } | 29 | } |
30 | |||
27 | public void setSubstitution(List<Variable> substitution) { | 31 | public void setSubstitution(List<Variable> substitution) { |
28 | this.substitution = substitution; | 32 | this.substitution = substitution; |
29 | } | 33 | } |
30 | 34 | ||
31 | @Override | 35 | @Override |
32 | public void unifyVariables(Map<String, Variable> variables) { | 36 | public void unifyVariables(Map<String, Variable> variables) { |
33 | for(int i = 0; i<this.substitution.size(); i++) { | 37 | for (int i = 0; i < this.substitution.size(); i++) { |
34 | final Object term = this.substitution.get(i); | 38 | final Object term = this.substitution.get(i); |
35 | if(term instanceof Variable) { | 39 | if (term instanceof Variable variableReference) { |
36 | Variable variableReference = (Variable) term; | ||
37 | this.substitution.set(i, DNFAtom.unifyVariables(variables, variableReference)); | 40 | this.substitution.set(i, DNFAtom.unifyVariables(variables, variableReference)); |
38 | } | 41 | } |
39 | } | 42 | } |
40 | } | 43 | } |
44 | |||
41 | @Override | 45 | @Override |
42 | public void collectAllVariables(Set<Variable> variables) { | 46 | public void collectAllVariables(Set<Variable> variables) { |
43 | DNFAtom.addToCollection(variables, substitution); | 47 | DNFAtom.addToCollection(variables, substitution); |
diff --git a/store/src/main/java/org/eclipse/viatra/solver/data/query/internal/RelationalRuntimeContext.java b/store/src/main/java/org/eclipse/viatra/solver/data/query/internal/RelationalRuntimeContext.java index 7d1682b2..fa6a59ab 100644 --- a/store/src/main/java/org/eclipse/viatra/solver/data/query/internal/RelationalRuntimeContext.java +++ b/store/src/main/java/org/eclipse/viatra/solver/data/query/internal/RelationalRuntimeContext.java | |||
@@ -37,7 +37,6 @@ public class RelationalRuntimeContext implements IQueryRuntimeContext { | |||
37 | return metaContext; | 37 | return metaContext; |
38 | } | 38 | } |
39 | 39 | ||
40 | // | ||
41 | /** | 40 | /** |
42 | * TODO: check {@link NavigationHelperImpl#coalesceTraversals(Callable)} | 41 | * TODO: check {@link NavigationHelperImpl#coalesceTraversals(Callable)} |
43 | */ | 42 | */ |
@@ -57,8 +56,7 @@ public class RelationalRuntimeContext implements IQueryRuntimeContext { | |||
57 | 56 | ||
58 | @Override | 57 | @Override |
59 | public boolean isIndexed(IInputKey key, IndexingService service) { | 58 | public boolean isIndexed(IInputKey key, IndexingService service) { |
60 | if(key instanceof RelationView<?>) { | 59 | if(key instanceof RelationView<?> relationalKey) { |
61 | RelationView<?> relationalKey = (RelationView<?>) key; | ||
62 | return this.relationUpdateListener.containsRelationalView(relationalKey); | 60 | return this.relationUpdateListener.containsRelationalView(relationalKey); |
63 | } else { | 61 | } else { |
64 | return false; | 62 | return false; |