summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DelegatingBuildService.java
blob: d2159841c9dff606e0f5549989a69ae77d0ca921 (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
package com.yahoo.vespa.hosted.controller.deployment;

import com.yahoo.vespa.hosted.controller.api.integration.BuildService;

/**
 * Sends build jobs to an internal build system whenever it accepts them, or to an external one otherwise.
 *
 * @author jonmv
 */
public class DelegatingBuildService implements BuildService {

    private final BuildService external;
    private final BuildService internal;

    public DelegatingBuildService(BuildService external, BuildService internal) {
        this.external = external;
        this.internal = internal;
    }

    @Override
    public void trigger(BuildJob buildJob) {
        (internal.builds(buildJob) ? internal : external).trigger(buildJob);
    }

    @Override
    public JobState stateOf(BuildJob buildJob) {
        return (internal.builds(buildJob) ? internal : external).stateOf(buildJob);
    }

}