diff options
author | Kristóf Marussy <kristof@marussy.com> | 2023-09-03 14:11:29 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2023-09-03 14:11:29 +0200 |
commit | 5ab558ad2d7c3a8e47bdd21b1dbe7190d430125c (patch) | |
tree | e9f10f5a8450aba6a151ef42ac7d40a1e986f17e /subprojects/store-reasoning/src/main | |
parent | chore(build): replce deprecated Gradle API use (diff) | |
download | refinery-5ab558ad2d7c3a8e47bdd21b1dbe7190d430125c.tar.gz refinery-5ab558ad2d7c3a8e47bdd21b1dbe7190d430125c.tar.zst refinery-5ab558ad2d7c3a8e47bdd21b1dbe7190d430125c.zip |
feat: type scope propagator
Diffstat (limited to 'subprojects/store-reasoning/src/main')
2 files changed, 25 insertions, 1 deletions
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementResult.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementResult.java new file mode 100644 index 00000000..1bc537d1 --- /dev/null +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementResult.java | |||
@@ -0,0 +1,24 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | ||
3 | * | ||
4 | * SPDX-License-Identifier: EPL-2.0 | ||
5 | */ | ||
6 | package tools.refinery.store.reasoning.refinement; | ||
7 | |||
8 | public enum RefinementResult { | ||
9 | UNCHANGED, | ||
10 | REFINED, | ||
11 | REJECTED; | ||
12 | |||
13 | public RefinementResult andThen(RefinementResult next) { | ||
14 | return switch (this) { | ||
15 | case UNCHANGED -> next; | ||
16 | case REFINED -> next == REJECTED ? REJECTED : REFINED; | ||
17 | case REJECTED -> REJECTED; | ||
18 | }; | ||
19 | } | ||
20 | |||
21 | public boolean isRejected() { | ||
22 | return this == REJECTED; | ||
23 | } | ||
24 | } | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java index c62557d7..735896fa 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java | |||
@@ -29,7 +29,7 @@ import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityT | |||
29 | import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.greaterEq; | 29 | import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.greaterEq; |
30 | 30 | ||
31 | public class MultiObjectTranslator implements ModelStoreConfiguration { | 31 | public class MultiObjectTranslator implements ModelStoreConfiguration { |
32 | private static final Symbol<CardinalityInterval> COUNT_STORAGE = Symbol.of("COUNT", 1, CardinalityInterval.class, | 32 | public static final Symbol<CardinalityInterval> COUNT_STORAGE = Symbol.of("COUNT", 1, CardinalityInterval.class, |
33 | null); | 33 | null); |
34 | public static final AnySymbolView LOWER_CARDINALITY_VIEW = new LowerCardinalityView(COUNT_STORAGE); | 34 | public static final AnySymbolView LOWER_CARDINALITY_VIEW = new LowerCardinalityView(COUNT_STORAGE); |
35 | public static final AnySymbolView UPPER_CARDINALITY_VIEW = new UpperCardinalityView(COUNT_STORAGE); | 35 | public static final AnySymbolView UPPER_CARDINALITY_VIEW = new UpperCardinalityView(COUNT_STORAGE); |