From eedc0ac8c20710e20095e0c19269601c2719543a Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 6 Dec 2022 16:13:55 +0100 Subject: refactor(store): remove CountPolarity We will have to implement counting in DNF queries in another way. --- .../refinery/store/query/atom/CallPolarity.java | 27 +++++++++++++++---- .../store/query/atom/ComparisonOperator.java | 22 --------------- .../store/query/atom/CountNotEqualsAtom.java | 31 ---------------------- .../store/query/atom/CountingPolarity.java | 13 --------- .../refinery/store/query/atom/SimplePolarity.java | 26 ------------------ 5 files changed, 22 insertions(+), 97 deletions(-) delete mode 100644 subprojects/store/src/main/java/tools/refinery/store/query/atom/ComparisonOperator.java delete mode 100644 subprojects/store/src/main/java/tools/refinery/store/query/atom/CountNotEqualsAtom.java delete mode 100644 subprojects/store/src/main/java/tools/refinery/store/query/atom/CountingPolarity.java delete mode 100644 subprojects/store/src/main/java/tools/refinery/store/query/atom/SimplePolarity.java (limited to 'subprojects/store/src') diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallPolarity.java b/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallPolarity.java index 2ab2b6d2..957e9b7b 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallPolarity.java +++ b/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallPolarity.java @@ -1,11 +1,28 @@ package tools.refinery.store.query.atom; -public sealed interface CallPolarity permits SimplePolarity, CountingPolarity { - boolean isPositive(); +public enum CallPolarity { + POSITIVE(true, false), + NEGATIVE(false, false), + TRANSITIVE(true, true); - boolean isTransitive(); + private final boolean positive; - static CallPolarity fromBoolean(boolean positive) { - return positive ? SimplePolarity.POSITIVE : SimplePolarity.NEGATIVE; + private final boolean transitive; + + CallPolarity(boolean positive, boolean transitive) { + this.positive = positive; + this.transitive = transitive; + } + + public boolean isPositive() { + return positive; + } + + public boolean isTransitive() { + return transitive; + } + + public static CallPolarity fromBoolean(boolean positive) { + return positive ? POSITIVE : NEGATIVE; } } diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/atom/ComparisonOperator.java b/subprojects/store/src/main/java/tools/refinery/store/query/atom/ComparisonOperator.java deleted file mode 100644 index ca113181..00000000 --- a/subprojects/store/src/main/java/tools/refinery/store/query/atom/ComparisonOperator.java +++ /dev/null @@ -1,22 +0,0 @@ -package tools.refinery.store.query.atom; - -public enum ComparisonOperator { - EQUALS, - NOT_EQUALS, - LESS, - LESS_EQUALS, - GREATER, - GREATER_EQUALS; - - @Override - public String toString() { - return switch (this) { - case EQUALS -> "=="; - case NOT_EQUALS -> "!="; - case LESS -> "<"; - case LESS_EQUALS -> "<="; - case GREATER -> ">"; - case GREATER_EQUALS -> ">="; - }; - } -} diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CountNotEqualsAtom.java b/subprojects/store/src/main/java/tools/refinery/store/query/atom/CountNotEqualsAtom.java deleted file mode 100644 index 312e5fb8..00000000 --- a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CountNotEqualsAtom.java +++ /dev/null @@ -1,31 +0,0 @@ -package tools.refinery.store.query.atom; - -import tools.refinery.store.model.RelationLike; -import tools.refinery.store.query.Variable; - -import java.util.List; -import java.util.Set; - -public record CountNotEqualsAtom(boolean must, int threshold, T mayTarget, T mustTarget, - List substitution) implements DNFAtom { - public CountNotEqualsAtom { - if (substitution.size() != mayTarget.getArity()) { - throw new IllegalArgumentException("%s needs %d arguments, but got %s".formatted(mayTarget.getName(), - mayTarget.getArity(), substitution.size())); - } - if (substitution.size() != mustTarget.getArity()) { - throw new IllegalArgumentException("%s needs %d arguments, but got %s".formatted(mustTarget.getName(), - mustTarget.getArity(), substitution.size())); - } - } - - public CountNotEqualsAtom(boolean must, int threshold, T mayTarget, T mustTarget, Variable... substitution) { - this(must, threshold, mayTarget, mustTarget, List.of(substitution)); - } - - @Override - public void collectAllVariables(Set variables) { - // No variables to collect, because all variables should either appear in other clauses, - // or are quantified by this clause. - } -} diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CountingPolarity.java b/subprojects/store/src/main/java/tools/refinery/store/query/atom/CountingPolarity.java deleted file mode 100644 index 08a62f4f..00000000 --- a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CountingPolarity.java +++ /dev/null @@ -1,13 +0,0 @@ -package tools.refinery.store.query.atom; - -public record CountingPolarity(ComparisonOperator operator, int threshold) implements CallPolarity { - @Override - public boolean isPositive() { - return false; - } - - @Override - public boolean isTransitive() { - return false; - } -} diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/atom/SimplePolarity.java b/subprojects/store/src/main/java/tools/refinery/store/query/atom/SimplePolarity.java deleted file mode 100644 index d243bf26..00000000 --- a/subprojects/store/src/main/java/tools/refinery/store/query/atom/SimplePolarity.java +++ /dev/null @@ -1,26 +0,0 @@ -package tools.refinery.store.query.atom; - -public enum SimplePolarity implements CallPolarity { - POSITIVE(true, false), - NEGATIVE(false, false), - TRANSITIVE(true, true); - - private final boolean positive; - - private final boolean transitive; - - SimplePolarity(boolean positive, boolean transitive) { - this.positive = positive; - this.transitive = transitive; - } - - @Override - public boolean isPositive() { - return positive; - } - - @Override - public boolean isTransitive() { - return transitive; - } -} -- cgit v1.2.3-70-g09d2