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