From 5ab558ad2d7c3a8e47bdd21b1dbe7190d430125c Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 3 Sep 2023 14:11:29 +0200 Subject: feat: type scope propagator --- .../reasoning/refinement/RefinementResult.java | 24 ++++++++++++++++++++++ .../multiobject/MultiObjectTranslator.java | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementResult.java (limited to 'subprojects/store-reasoning') 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 @@ +/* + * SPDX-FileCopyrightText: 2023 The Refinery Authors + * + * SPDX-License-Identifier: EPL-2.0 + */ +package tools.refinery.store.reasoning.refinement; + +public enum RefinementResult { + UNCHANGED, + REFINED, + REJECTED; + + public RefinementResult andThen(RefinementResult next) { + return switch (this) { + case UNCHANGED -> next; + case REFINED -> next == REJECTED ? REJECTED : REFINED; + case REJECTED -> REJECTED; + }; + } + + public boolean isRejected() { + return this == REJECTED; + } +} 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 import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.greaterEq; public class MultiObjectTranslator implements ModelStoreConfiguration { - private static final Symbol COUNT_STORAGE = Symbol.of("COUNT", 1, CardinalityInterval.class, + public static final Symbol COUNT_STORAGE = Symbol.of("COUNT", 1, CardinalityInterval.class, null); public static final AnySymbolView LOWER_CARDINALITY_VIEW = new LowerCardinalityView(COUNT_STORAGE); public static final AnySymbolView UPPER_CARDINALITY_VIEW = new UpperCardinalityView(COUNT_STORAGE); -- cgit v1.2.3-54-g00ecf