aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/GenericTarget.java
blob: f68d8d2be6cf11cc9116bf10c146318a80429a23 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.container.search.searchchain;

import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.search.searchchain.model.federation.FederationOptions;

/**
 * A search chain that is intended to be used for federation (i.e. providers, sources)
 *
 * @author Tony Vaagenes
 */
abstract public class GenericTarget extends SearchChain {

    private final FederationOptions federationOptions;

    public GenericTarget(ChainSpecification specWithoutInnerSearchers, FederationOptions federationOptions) {
        super(specWithoutInnerSearchers);
        this.federationOptions = federationOptions;
    }

    @Override
    public FederationOptions federationOptions() {
        FederationOptions defaultOptions = new FederationOptions().setUseByDefault(useByDefault());
        return federationOptions.inherit(defaultOptions);
    }

    /** The value for useByDefault in case the user have not specified any **/
    abstract protected boolean useByDefault();

}