aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java19
1 files changed, 7 insertions, 12 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
index b6d99758c7b..a3c0328290d 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/sourceref/SourcesTarget.java
@@ -16,7 +16,7 @@ import java.util.TreeSet;
public class SourcesTarget extends Target {
- private ComponentRegistry<ComponentAdaptor<SearchChainInvocationSpec>> providerSources = new ComponentRegistry<>() {};
+ private final ComponentRegistry<ComponentAdaptor<SearchChainInvocationSpec>> providerSources = new ComponentRegistry<>() {};
private SearchChainInvocationSpec defaultProviderSource;
@@ -25,10 +25,10 @@ public class SourcesTarget extends Target {
}
@Override
- public SearchChainInvocationSpec responsibleSearchChain(Properties queryProperties) throws UnresolvedSearchChainException {
+ public ResolveResult responsibleSearchChain(Properties queryProperties) {
ComponentSpecification providerSpecification = providerSpecificationForSource(queryProperties);
if (providerSpecification == null) {
- return defaultProviderSource;
+ return new ResolveResult(defaultProviderSource);
} else {
return lookupProviderSource(providerSpecification);
}
@@ -36,11 +36,7 @@ public class SourcesTarget extends Target {
@Override
public String searchRefDescription() {
- StringBuilder builder = new StringBuilder(sourceId().stringValue());
- builder.append("[provider = ").
- append(Joiner.on(", ").join(allProviderIdsStringValue())).
- append("]");
- return builder.toString();
+ return sourceId().stringValue() + "[provider = " + Joiner.on(", ").join(allProviderIdsStringValue()) + "]";
}
private SortedSet<String> allProviderIdsStringValue() {
@@ -51,14 +47,13 @@ public class SourcesTarget extends Target {
return result;
}
- private SearchChainInvocationSpec lookupProviderSource(ComponentSpecification providerSpecification)
- throws UnresolvedSearchChainException {
+ private ResolveResult lookupProviderSource(ComponentSpecification providerSpecification) {
ComponentAdaptor<SearchChainInvocationSpec> providerSource = providerSources.getComponent(providerSpecification);
if (providerSource == null)
- throw UnresolvedProviderException.createForMissingProvider(sourceId(), providerSpecification);
+ return new ResolveResult("No provider '" + sourceId() + "' for source '" + providerSpecification + "'.");
- return providerSource.model;
+ return new ResolveResult(providerSource.model);
}
public void freeze() {