aboutsummaryrefslogtreecommitdiffstats
path: root/store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java
diff options
context:
space:
mode:
Diffstat (limited to 'store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java')
-rw-r--r--store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java57
1 files changed, 57 insertions, 0 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
new file mode 100644
index 00000000..3e5ef88e
--- /dev/null
+++ b/store/src/main/java/org/eclipse/viatra/solver/data/query/building/PredicateAtom.java
@@ -0,0 +1,57 @@
1package org.eclipse.viatra.solver.data.query.building;
2
3import java.util.List;
4import java.util.Map;
5import java.util.Set;
6
7public class PredicateAtom implements DNFAtom{
8 private DNFPredicate referred;
9 private List<Variable> substitution;
10 private boolean positive;
11 private boolean transitive;
12
13 public PredicateAtom(boolean positive, boolean transitive, DNFPredicate referred, List<Variable> substitution) {
14 this.positive = positive;
15 this.referred = referred;
16 this.substitution = substitution;
17 this.transitive = transitive;
18 }
19 public DNFPredicate getReferred() {
20 return referred;
21 }
22 public void setReferred(DNFPredicate referred) {
23 this.referred = referred;
24 }
25 public List<Variable> getSubstitution() {
26 return substitution;
27 }
28 public void setSubstitution(List<Variable> substitution) {
29 this.substitution = substitution;
30 }
31 public boolean isPositive() {
32 return positive;
33 }
34 public void setPositive(boolean positive) {
35 this.positive = positive;
36 }
37 public boolean isTransitive() {
38 return transitive;
39 }
40 public void setTransitive(boolean transitive) {
41 this.transitive = transitive;
42 }
43 @Override
44 public void unifyVariables(Map<String, Variable> variables) {
45 for(int i = 0; i<this.substitution.size(); i++) {
46 final Object term = this.substitution.get(i);
47 if(term instanceof Variable) {
48 Variable variableReference = (Variable) term;
49 this.substitution.set(i, DNFAtom.unifyVariables(variables, variableReference));
50 }
51 }
52 }
53 @Override
54 public void collectAllVariables(Set<Variable> variables) {
55 DNFAtom.addToCollection(variables, substitution);
56 }
57}