diff options
author | Kristóf Marussy <marussy@mit.bme.hu> | 2024-04-07 15:16:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-07 15:16:53 +0200 |
commit | daa787eddc786b49528ee6962515f37720fdf579 (patch) | |
tree | c11c8df3dca1653643b3941de19e5dbb0cef85b1 /subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java | |
parent | fix(test): Windows line endings comparison (diff) | |
parent | refactor(logic): abstract domain interface (diff) | |
download | refinery-daa787eddc786b49528ee6962515f37720fdf579.tar.gz refinery-daa787eddc786b49528ee6962515f37720fdf579.tar.zst refinery-daa787eddc786b49528ee6962515f37720fdf579.zip |
Merge pull request #57 from kris7t/logic-extract
Refactor logic expressions
Diffstat (limited to 'subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java')
-rw-r--r-- | subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java index 74a5be07..5585f5f2 100644 --- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java +++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java | |||
@@ -1,11 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.query.view; | 6 | package tools.refinery.store.query.view; |
7 | 7 | ||
8 | import tools.refinery.store.query.term.*; | 8 | import tools.refinery.logic.term.*; |
9 | import tools.refinery.store.representation.Symbol; | 9 | import tools.refinery.store.representation.Symbol; |
10 | 10 | ||
11 | import java.util.ArrayList; | 11 | import java.util.ArrayList; |
@@ -33,4 +33,18 @@ public final class FunctionView<T> extends AbstractFunctionView<T> { | |||
33 | public <R> AssignedValue<R> aggregate(Aggregator<R, T> aggregator, NodeVariable... arguments) { | 33 | public <R> AssignedValue<R> aggregate(Aggregator<R, T> aggregator, NodeVariable... arguments) { |
34 | return aggregate(aggregator, List.of(arguments)); | 34 | return aggregate(aggregator, List.of(arguments)); |
35 | } | 35 | } |
36 | |||
37 | public AssignedValue<T> leftJoin(T defaultValue, List<NodeVariable> arguments) { | ||
38 | return targetVariable -> { | ||
39 | var placeholderVariable = Variable.of(getSymbol().valueType()); | ||
40 | var argumentsWithPlaceholder = new ArrayList<Variable>(arguments.size() + 1); | ||
41 | argumentsWithPlaceholder.addAll(arguments); | ||
42 | argumentsWithPlaceholder.add(placeholderVariable); | ||
43 | return leftJoinBy(placeholderVariable, defaultValue, argumentsWithPlaceholder).toLiteral(targetVariable); | ||
44 | }; | ||
45 | } | ||
46 | |||
47 | public AssignedValue<T> leftJoin(T defaultValue, NodeVariable... arguments) { | ||
48 | return leftJoin(defaultValue, List.of(arguments)); | ||
49 | } | ||
36 | } | 50 | } |