aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java')
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java
new file mode 100644
index 00000000..29a7f69d
--- /dev/null
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java
@@ -0,0 +1,74 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.logic.term.cardinalityinterval;
7
8import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
9import tools.refinery.logic.term.uppercardinality.UpperCardinality;
10
11// Singleton implementation, because there is only a single empty interval.
12@SuppressWarnings("squid:S6548")
13public final class EmptyCardinalityInterval implements CardinalityInterval {
14 static final EmptyCardinalityInterval INSTANCE = new EmptyCardinalityInterval();
15
16 private EmptyCardinalityInterval() {
17 // Singleton constructor.
18 }
19
20 @Override
21 public int lowerBound() {
22 return 1;
23 }
24
25 @Override
26 public boolean isEmpty() {
27 return true;
28 }
29
30 @Override
31 public UpperCardinality upperBound() {
32 return UpperCardinalities.ZERO;
33 }
34
35 @Override
36 public CardinalityInterval min(CardinalityInterval other) {
37 return this;
38 }
39
40 @Override
41 public CardinalityInterval max(CardinalityInterval other) {
42 return this;
43 }
44
45 @Override
46 public CardinalityInterval add(CardinalityInterval other) {
47 return this;
48 }
49
50 @Override
51 public CardinalityInterval take(int count) {
52 return this;
53 }
54
55 @Override
56 public CardinalityInterval multiply(CardinalityInterval other) {
57 return this;
58 }
59
60 @Override
61 public CardinalityInterval meet(CardinalityInterval other) {
62 return this;
63 }
64
65 @Override
66 public CardinalityInterval join(CardinalityInterval other) {
67 return other;
68 }
69
70 @Override
71 public String toString() {
72 return "error";
73 }
74}