diff options
Diffstat (limited to 'subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java')
-rw-r--r-- | subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java index 746d23af..d01c7d20 100644 --- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java +++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java | |||
@@ -1,9 +1,9 @@ | |||
1 | package tools.refinery.store.query.literal; | 1 | package tools.refinery.store.query.literal; |
2 | 2 | ||
3 | import tools.refinery.store.query.DnfUtils; | ||
4 | import tools.refinery.store.query.Variable; | 3 | import tools.refinery.store.query.Variable; |
4 | import tools.refinery.store.query.equality.LiteralEqualityHelper; | ||
5 | import tools.refinery.store.query.substitution.Substitution; | ||
5 | 6 | ||
6 | import java.util.Map; | ||
7 | import java.util.Set; | 7 | import java.util.Set; |
8 | 8 | ||
9 | public record ConstantLiteral(Variable variable, int nodeId) implements Literal { | 9 | public record ConstantLiteral(Variable variable, int nodeId) implements Literal { |
@@ -13,7 +13,21 @@ public record ConstantLiteral(Variable variable, int nodeId) implements Literal | |||
13 | } | 13 | } |
14 | 14 | ||
15 | @Override | 15 | @Override |
16 | public ConstantLiteral substitute(Map<Variable, Variable> substitution) { | 16 | public ConstantLiteral substitute(Substitution substitution) { |
17 | return new ConstantLiteral(DnfUtils.maybeSubstitute(variable, substitution), nodeId); | 17 | return new ConstantLiteral(substitution.getSubstitute(variable), nodeId); |
18 | } | ||
19 | |||
20 | @Override | ||
21 | public boolean equalsWithSubstitution(LiteralEqualityHelper helper, Literal other) { | ||
22 | if (other.getClass() != getClass()) { | ||
23 | return false; | ||
24 | } | ||
25 | var otherConstantLiteral = (ConstantLiteral) other; | ||
26 | return helper.variableEqual(variable, otherConstantLiteral.variable) && nodeId == otherConstantLiteral.nodeId; | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String toString() { | ||
31 | return "%s === @Constant %d".formatted(variable, nodeId); | ||
18 | } | 32 | } |
19 | } | 33 | } |