diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-04-18 13:14:04 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-04-18 13:14:04 +0200 |
commit | 1b5eeb6a730364586dfe7b438140269b2352f36c (patch) | |
tree | b9be240313584bf7238fac04c157e5da4009fbc7 /container-search | |
parent | 2230b5937514d9563311b8b9e395672eaa6786a4 (diff) |
Move Results to the only place it is used.
Diffstat (limited to 'container-search')
3 files changed, 55 insertions, 16 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java index 72184c5ea32..8aca45ef900 100644 --- a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java +++ b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java @@ -9,8 +9,7 @@ import com.yahoo.component.chain.Chain; import com.yahoo.component.chain.dependencies.After; import com.yahoo.component.chain.dependencies.Provides; import com.yahoo.component.provider.ComponentRegistry; -import com.yahoo.errorhandling.Results; -import com.yahoo.errorhandling.Results.Builder; +import com.yahoo.search.federation.Results.Builder; import com.yahoo.processing.IllegalInputException; import com.yahoo.processing.request.CompoundName; import com.yahoo.search.Query; @@ -88,7 +87,7 @@ public class FederationSearcher extends ForkingSearcher { @Inject public FederationSearcher(FederationConfig config, SchemaInfo schemaInfo, - ComponentRegistry<TargetSelector> targetSelectors) { + ComponentRegistry<TargetSelector<?>> targetSelectors) { this(createResolver(config), createVirtualSourceResolver(config), resolveSelector(config.targetSelector(), targetSelectors), @@ -103,7 +102,7 @@ public class FederationSearcher extends ForkingSearcher { private FederationSearcher(SearchChainResolver searchChainResolver, VirtualSourceResolver virtualSourceResolver, - TargetSelector targetSelector, + TargetSelector<?> targetSelector, Map<String, List<String>> schema2Clusters) { this.searchChainResolver = searchChainResolver; sourceRefResolver = new SourceRefResolver(searchChainResolver, schema2Clusters); @@ -115,8 +114,8 @@ public class FederationSearcher extends ForkingSearcher { return VirtualSourceResolver.of(config.target().stream().map(FederationConfig.Target::id).collect(Collectors.toUnmodifiableSet())); } - private static TargetSelector resolveSelector(String selectorId, - ComponentRegistry<TargetSelector> targetSelectors) { + private static TargetSelector<?> resolveSelector(String selectorId, + ComponentRegistry<TargetSelector<?>> targetSelectors) { if (selectorId.isEmpty()) return null; return checkNotNull(targetSelectors.getComponent(selectorId), "Missing target selector with id '" + selectorId + "'"); diff --git a/container-search/src/main/java/com/yahoo/search/federation/Results.java b/container-search/src/main/java/com/yahoo/search/federation/Results.java new file mode 100644 index 00000000000..b27769413e3 --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/federation/Results.java @@ -0,0 +1,50 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.search.federation; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @author Tony Vaagenes + */ +public class Results<DATA, ERROR> { + + private final List<DATA> data; + private final List<ERROR> errors; + + private Results(List<DATA> data, List<ERROR> errors) { + this.data = List.copyOf(data); + this.errors = List.copyOf(errors); + } + + public List<DATA> data() { + return data; + } + + public List<ERROR> errors() { + return errors; + } + + public static class Builder<DATA, ERROR> { + private final List<DATA> data = new ArrayList<>(); + private final List<ERROR> errors = new ArrayList<>(); + + public void addData(DATA d) { + data.add(d); + } + + public void addAllData(Collection<? extends DATA> d) { + data.addAll(d); + } + + public void addError(ERROR e) { + errors.add(e); + } + + public Results<DATA, ERROR> build() { + return new Results<>(data, errors); + } + } + +} diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java index 7dc65c819e4..5101c08a265 100644 --- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java +++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java @@ -46,16 +46,6 @@ public class SearchChainResolver { public static class Builder { - public interface InvocationSpecFactory { - SearchChainInvocationSpec create(ComponentId searchChainId, FederationOptions federationOptions, List<String> schemas); - } - - private class DefaultInvocationSpecFactory implements InvocationSpecFactory { - public SearchChainInvocationSpec create(ComponentId searchChainId, FederationOptions federationOptions, List<String> schemas) { - return new SearchChainInvocationSpec(searchChainId, federationOptions, schemas); - } - } - private final SortedSet<Target> defaultTargets = new TreeSet<>(); private final ComponentRegistry<Target> targets = new ComponentRegistry<>() { |