aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java23
1 files changed, 11 insertions, 12 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java b/container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java
index f247eab1649..548576e3a15 100644
--- a/container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java
+++ b/container-search/src/main/java/com/yahoo/search/ranking/SimpleEvaluator.java
@@ -1,4 +1,4 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.ranking;
import ai.vespa.models.evaluation.FunctionEvaluator;
@@ -10,24 +10,23 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.function.Supplier;
class SimpleEvaluator implements Evaluator {
private final FunctionEvaluator evaluator;
- private final Set<String> neededInputs;
-
- public SimpleEvaluator(FunctionEvaluator prototype) {
- this.evaluator = prototype;
- this.neededInputs = new HashSet<String>(prototype.function().arguments());
+
+ static Supplier<Evaluator> wrap(Supplier<FunctionEvaluator> supplier) {
+ return () -> new SimpleEvaluator(supplier.get());
}
- @Override
- public Collection<String> needInputs() { return List.copyOf(neededInputs); }
+ SimpleEvaluator(FunctionEvaluator prototype) {
+ this.evaluator = prototype;
+ }
@Override
- public SimpleEvaluator bind(String name, Tensor value) {
- if (value != null) evaluator.bind(name, value);
- neededInputs.remove(name);
+ public Evaluator bind(String name, Tensor value) {
+ evaluator.bind(name, value);
return this;
}
@@ -42,7 +41,7 @@ class SimpleEvaluator implements Evaluator {
buf.append("SimpleEvaluator(");
buf.append(evaluator.function().toString());
buf.append(")[");
- for (String arg : neededInputs) {
+ for (String arg : evaluator.function().arguments()) {
buf.append("{").append(arg).append("}");
}
buf.append("]");