aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java')
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
new file mode 100644
index 00000000..3ba9a6b8
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
@@ -0,0 +1,23 @@
1package tools.refinery.store.query.valuation;
2
3import org.jetbrains.annotations.Nullable;
4import tools.refinery.store.query.substitution.Substitution;
5import tools.refinery.store.query.term.AnyDataVariable;
6import tools.refinery.store.query.term.DataVariable;
7
8import java.util.Set;
9
10public interface Valuation {
11 <T> T getValue(DataVariable<T> variable);
12
13 default Valuation substitute(@Nullable Substitution substitution) {
14 if (substitution == null) {
15 return this;
16 }
17 return new SubstitutedValuation(this, substitution);
18 }
19
20 default Valuation restrict(Set<? extends AnyDataVariable> allowedVariables) {
21 return new RestrictedValuation(this, Set.copyOf(allowedVariables));
22 }
23}