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.java87
1 files changed, 87 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..8892b278
--- /dev/null
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java
@@ -0,0 +1,87 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.logic.term.cardinalityinterval;
7
8import org.jetbrains.annotations.Nullable;
9import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
10import tools.refinery.logic.term.uppercardinality.UpperCardinality;
11
12// Singleton implementation, because there is only a single empty interval.
13@SuppressWarnings("squid:S6548")
14public final class EmptyCardinalityInterval implements CardinalityInterval {
15 static final EmptyCardinalityInterval INSTANCE = new EmptyCardinalityInterval();
16
17 private EmptyCardinalityInterval() {
18 // Singleton constructor.
19 }
20
21 @Override
22 @Nullable
23 public Integer getConcrete() {
24 return null;
25 }
26
27 @Override
28 @Nullable
29 public Integer getArbitrary() {
30 return null;
31 }
32
33 @Override
34 public boolean isRefinementOf(CardinalityInterval other) {
35 return true;
36 }
37
38 @Override
39 public int lowerBound() {
40 return 1;
41 }
42
43 @Override
44 public UpperCardinality upperBound() {
45 return UpperCardinalities.ZERO;
46 }
47
48 @Override
49 public CardinalityInterval min(CardinalityInterval other) {
50 return this;
51 }
52
53 @Override
54 public CardinalityInterval max(CardinalityInterval other) {
55 return this;
56 }
57
58 @Override
59 public CardinalityInterval add(CardinalityInterval other) {
60 return this;
61 }
62
63 @Override
64 public CardinalityInterval take(int count) {
65 return this;
66 }
67
68 @Override
69 public CardinalityInterval multiply(CardinalityInterval other) {
70 return this;
71 }
72
73 @Override
74 public CardinalityInterval meet(CardinalityInterval other) {
75 return this;
76 }
77
78 @Override
79 public CardinalityInterval join(CardinalityInterval other) {
80 return other;
81 }
82
83 @Override
84 public String toString() {
85 return "error";
86 }
87}