diff options
author | 2024-06-28 19:43:52 +0200 | |
---|---|---|
committer | 2024-06-28 21:44:58 +0200 | |
commit | 6095f6eca9ae96f94d1afdcba9971ac2ec4d8c5b (patch) | |
tree | 1ed444c895dd6b383299397b5a97acc11aea5a33 /subprojects/generator | |
parent | refactor: show semantics even if propagation fails (diff) | |
download | refinery-6095f6eca9ae96f94d1afdcba9971ac2ec4d8c5b.tar.gz refinery-6095f6eca9ae96f94d1afdcba9971ac2ec4d8c5b.tar.zst refinery-6095f6eca9ae96f94d1afdcba9971ac2ec4d8c5b.zip |
refactor: improve propagation traceability
Diffstat (limited to 'subprojects/generator')
3 files changed, 8 insertions, 9 deletions
diff --git a/subprojects/generator/src/main/java/tools/refinery/generator/ModelFacade.java b/subprojects/generator/src/main/java/tools/refinery/generator/ModelFacade.java index 459503cd..15f7b4c4 100644 --- a/subprojects/generator/src/main/java/tools/refinery/generator/ModelFacade.java +++ b/subprojects/generator/src/main/java/tools/refinery/generator/ModelFacade.java | |||
@@ -7,6 +7,7 @@ package tools.refinery.generator; | |||
7 | 7 | ||
8 | import tools.refinery.language.semantics.ProblemTrace; | 8 | import tools.refinery.language.semantics.ProblemTrace; |
9 | import tools.refinery.logic.AbstractValue; | 9 | import tools.refinery.logic.AbstractValue; |
10 | import tools.refinery.store.dse.propagation.PropagationResult; | ||
10 | import tools.refinery.store.model.Model; | 11 | import tools.refinery.store.model.Model; |
11 | import tools.refinery.store.model.ModelStore; | 12 | import tools.refinery.store.model.ModelStore; |
12 | import tools.refinery.store.reasoning.ReasoningAdapter; | 13 | import tools.refinery.store.reasoning.ReasoningAdapter; |
@@ -21,7 +22,7 @@ import tools.refinery.store.reasoning.translator.TranslationException; | |||
21 | public abstract class ModelFacade { | 22 | public abstract class ModelFacade { |
22 | private final ProblemTrace problemTrace; | 23 | private final ProblemTrace problemTrace; |
23 | private final ModelStore store; | 24 | private final ModelStore store; |
24 | private final PropagatedModel propagatedModel; | 25 | private final PropagationResult propagationResult; |
25 | private final Model model; | 26 | private final Model model; |
26 | private final ReasoningAdapter reasoningAdapter; | 27 | private final ReasoningAdapter reasoningAdapter; |
27 | private final Concreteness concreteness; | 28 | private final Concreteness concreteness; |
@@ -30,12 +31,14 @@ public abstract class ModelFacade { | |||
30 | Concreteness concreteness) { | 31 | Concreteness concreteness) { |
31 | this.problemTrace = problemTrace; | 32 | this.problemTrace = problemTrace; |
32 | this.store = store; | 33 | this.store = store; |
34 | PropagatedModel propagatedModel; | ||
33 | try { | 35 | try { |
34 | propagatedModel = store.getAdapter(ReasoningStoreAdapter.class).tryCreateInitialModel(modelSeed); | 36 | propagatedModel = store.getAdapter(ReasoningStoreAdapter.class).tryCreateInitialModel(modelSeed); |
35 | } catch (TranslationException e) { | 37 | } catch (TranslationException e) { |
36 | throw problemTrace.wrapException(e); | 38 | throw problemTrace.wrapException(e); |
37 | } | 39 | } |
38 | model = propagatedModel.model(); | 40 | model = propagatedModel.model(); |
41 | propagationResult = propagatedModel.propagationResult(); | ||
39 | reasoningAdapter = model.getAdapter(ReasoningAdapter.class); | 42 | reasoningAdapter = model.getAdapter(ReasoningAdapter.class); |
40 | this.concreteness = concreteness; | 43 | this.concreteness = concreteness; |
41 | } | 44 | } |
@@ -52,12 +55,8 @@ public abstract class ModelFacade { | |||
52 | return model; | 55 | return model; |
53 | } | 56 | } |
54 | 57 | ||
55 | public boolean isRejected() { | 58 | public PropagationResult getPropagationResult() { |
56 | return propagatedModel.isRejected(); | 59 | return propagationResult; |
57 | } | ||
58 | |||
59 | public void throwIfRejected() { | ||
60 | propagatedModel.throwIfRejected(); | ||
61 | } | 60 | } |
62 | 61 | ||
63 | public Concreteness getConcreteness() { | 62 | public Concreteness getConcreteness() { |
diff --git a/subprojects/generator/src/main/java/tools/refinery/generator/ModelGeneratorFactory.java b/subprojects/generator/src/main/java/tools/refinery/generator/ModelGeneratorFactory.java index 1b222204..0a1b4396 100644 --- a/subprojects/generator/src/main/java/tools/refinery/generator/ModelGeneratorFactory.java +++ b/subprojects/generator/src/main/java/tools/refinery/generator/ModelGeneratorFactory.java | |||
@@ -80,7 +80,7 @@ public final class ModelGeneratorFactory { | |||
80 | var store = storeBuilder.build(); | 80 | var store = storeBuilder.build(); |
81 | var generator = new ModelGenerator(initializer.getProblemTrace(), store, initializer.getModelSeed(), | 81 | var generator = new ModelGenerator(initializer.getProblemTrace(), store, initializer.getModelSeed(), |
82 | solutionSerializerProvider); | 82 | solutionSerializerProvider); |
83 | generator.throwIfRejected(); | 83 | generator.getPropagationResult().throwIfRejected(); |
84 | return generator; | 84 | return generator; |
85 | } | 85 | } |
86 | 86 | ||
diff --git a/subprojects/generator/src/main/java/tools/refinery/generator/ModelSemanticsFactory.java b/subprojects/generator/src/main/java/tools/refinery/generator/ModelSemanticsFactory.java index 20f404f3..77f05a9d 100644 --- a/subprojects/generator/src/main/java/tools/refinery/generator/ModelSemanticsFactory.java +++ b/subprojects/generator/src/main/java/tools/refinery/generator/ModelSemanticsFactory.java | |||
@@ -31,7 +31,7 @@ public final class ModelSemanticsFactory { | |||
31 | 31 | ||
32 | public ModelSemantics createSemantics(Problem problem) { | 32 | public ModelSemantics createSemantics(Problem problem) { |
33 | var semantics = tryCreateSemantics(problem); | 33 | var semantics = tryCreateSemantics(problem); |
34 | semantics.throwIfRejected(); | 34 | semantics.getPropagationResult().throwIfRejected(); |
35 | return semantics; | 35 | return semantics; |
36 | } | 36 | } |
37 | 37 | ||