aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java')
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
index dcf7611d..8e38ca6b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
@@ -223,7 +223,8 @@ public final class DnfBuilder {
223 } else if (result instanceof ClausePostProcessor.ConstantResult constantResult) { 223 } else if (result instanceof ClausePostProcessor.ConstantResult constantResult) {
224 switch (constantResult) { 224 switch (constantResult) {
225 case ALWAYS_TRUE -> { 225 case ALWAYS_TRUE -> {
226 return List.of(new DnfClause(Set.of(), List.of())); 226 var inputVariables = getInputVariables();
227 return List.of(new DnfClause(inputVariables, List.of()));
227 } 228 }
228 case ALWAYS_FALSE -> { 229 case ALWAYS_FALSE -> {
229 // Skip this clause because it can never match. 230 // Skip this clause because it can never match.
@@ -248,4 +249,14 @@ public final class DnfBuilder {
248 } 249 }
249 return Collections.unmodifiableMap(mutableParameterInfoMap); 250 return Collections.unmodifiableMap(mutableParameterInfoMap);
250 } 251 }
252
253 private Set<Variable> getInputVariables() {
254 var inputParameters = new LinkedHashSet<Variable>();
255 for (var parameter : parameters) {
256 if (parameter.getDirection() == ParameterDirection.IN) {
257 inputParameters.add(parameter.getVariable());
258 }
259 }
260 return Collections.unmodifiableSet(inputParameters);
261 }
251} 262}