diff options
Diffstat (limited to 'subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java')
-rw-r--r-- | subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java b/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java index 40baf9a5..f81ee9a4 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java +++ b/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java | |||
@@ -36,6 +36,10 @@ public enum TruthValue { | |||
36 | return this != UNKNOWN; | 36 | return this != UNKNOWN; |
37 | } | 37 | } |
38 | 38 | ||
39 | public boolean isConcrete() { | ||
40 | return this == TRUE || this == FALSE; | ||
41 | } | ||
42 | |||
39 | public boolean must() { | 43 | public boolean must() { |
40 | return this == TRUE || this == ERROR; | 44 | return this == TRUE || this == ERROR; |
41 | } | 45 | } |
@@ -55,9 +59,18 @@ public enum TruthValue { | |||
55 | public TruthValue merge(TruthValue other) { | 59 | public TruthValue merge(TruthValue other) { |
56 | return switch (this) { | 60 | return switch (this) { |
57 | case TRUE -> other == UNKNOWN || other == TRUE ? TRUE : ERROR; | 61 | case TRUE -> other == UNKNOWN || other == TRUE ? TRUE : ERROR; |
58 | case FALSE -> other == TruthValue.UNKNOWN || other == TruthValue.FALSE ? FALSE : ERROR; | 62 | case FALSE -> other == UNKNOWN || other == FALSE ? FALSE : ERROR; |
59 | case UNKNOWN -> other; | 63 | case UNKNOWN -> other; |
60 | default -> ERROR; | 64 | case ERROR -> ERROR; |
65 | }; | ||
66 | } | ||
67 | |||
68 | public TruthValue join(TruthValue other) { | ||
69 | return switch (this) { | ||
70 | case TRUE -> other == ERROR || other == TRUE ? TRUE : UNKNOWN; | ||
71 | case FALSE -> other == ERROR || other == FALSE ? FALSE : UNKNOWN; | ||
72 | case UNKNOWN -> UNKNOWN; | ||
73 | case ERROR -> other; | ||
61 | }; | 74 | }; |
62 | } | 75 | } |
63 | } | 76 | } |