aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java')
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java
new file mode 100644
index 00000000..29775615
--- /dev/null
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java
@@ -0,0 +1,42 @@
1/*
2 * SPDX-FileCopyrightText: 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.AbstractDomain;
9
10// Singleton pattern, because there is only one domain for truth values.
11@SuppressWarnings("squid:S6548")
12public class CardinalityDomain implements AbstractDomain<CardinalityInterval, Integer> {
13 public static final CardinalityDomain INSTANCE = new CardinalityDomain();
14
15 private CardinalityDomain() {
16 }
17
18 @Override
19 public Class<CardinalityInterval> abstractType() {
20 return CardinalityInterval.class;
21 }
22
23 @Override
24 public Class<Integer> concreteType() {
25 return Integer.class;
26 }
27
28 @Override
29 public CardinalityInterval unknown() {
30 return CardinalityIntervals.SET;
31 }
32
33 @Override
34 public CardinalityInterval error() {
35 return CardinalityIntervals.ERROR;
36 }
37
38 @Override
39 public CardinalityInterval toAbstract(Integer concreteValue) {
40 return CardinalityIntervals.exactly(concreteValue);
41 }
42}