aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/DnfCallLiteral.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/store-query/src/main/java/tools/refinery/store/query/literal/DnfCallLiteral.java')
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/DnfCallLiteral.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/DnfCallLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/DnfCallLiteral.java
new file mode 100644
index 00000000..de6c6005
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/DnfCallLiteral.java
@@ -0,0 +1,29 @@
1package tools.refinery.store.query.literal;
2
3import tools.refinery.store.query.Dnf;
4import tools.refinery.store.query.Variable;
5
6import java.util.List;
7import java.util.Map;
8
9public final class DnfCallLiteral extends CallLiteral<Dnf> implements PolarLiteral<DnfCallLiteral> {
10 public DnfCallLiteral(CallPolarity polarity, Dnf target, List<Variable> arguments) {
11 super(polarity, target, arguments);
12 }
13
14 @Override
15 public DnfCallLiteral substitute(Map<Variable, Variable> substitution) {
16 return new DnfCallLiteral(getPolarity(), getTarget(), substituteArguments(substitution));
17 }
18
19 @Override
20 public DnfCallLiteral negate() {
21 return new DnfCallLiteral(getPolarity().negate(), getTarget(), getArguments());
22 }
23
24 @Override
25 public LiteralReduction getReduction() {
26 var dnfReduction = getTarget().getReduction();
27 return getPolarity().isPositive() ? dnfReduction : dnfReduction.negate();
28 }
29}