diff options
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.java | 29 |
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 @@ | |||
1 | package tools.refinery.store.query.literal; | ||
2 | |||
3 | import tools.refinery.store.query.Dnf; | ||
4 | import tools.refinery.store.query.Variable; | ||
5 | |||
6 | import java.util.List; | ||
7 | import java.util.Map; | ||
8 | |||
9 | public 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 | } | ||