diff options
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.java | 23 |
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("]"); |