summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-04-18 13:14:04 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2024-04-18 13:14:04 +0200
commit1b5eeb6a730364586dfe7b438140269b2352f36c (patch)
treeb9be240313584bf7238fac04c157e5da4009fbc7 /container-search
parent2230b5937514d9563311b8b9e395672eaa6786a4 (diff)
Move Results to the only place it is used.
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java11
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/Results.java50
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SearchChainResolver.java10
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<>() {