com.yahoo.vespa.model.content.SearchCoverage Maven / Gradle / Ivy
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.content;
import com.google.common.base.Preconditions;
/**
* @author Simon Thoresen Hult
*/
public class SearchCoverage {
private final Double minimum;
private final Double minWaitAfterCoverageFactor;
private final Double maxWaitAfterCoverageFactor;
private SearchCoverage(Builder builder) {
minimum = builder.minimum;
minWaitAfterCoverageFactor = builder.minWaitAfterCoverageFactor;
maxWaitAfterCoverageFactor = builder.maxWaitAfterCoverageFactor;
}
public Double getMinimum() {
return minimum;
}
public Double getMinWaitAfterCoverageFactor() {
return minWaitAfterCoverageFactor;
}
public Double getMaxWaitAfterCoverageFactor() {
return maxWaitAfterCoverageFactor;
}
public static class Builder {
private Double minimum;
private Double minWaitAfterCoverageFactor;
private Double maxWaitAfterCoverageFactor;
public SearchCoverage build() {
return new SearchCoverage(this);
}
public Builder setMinimum(Double value) {
Preconditions.checkArgument(value == null || (value >= 0 && value <= 1),
"Expected value in range [0, 1], got " + value + ".");
minimum = value;
return this;
}
public Builder setMinWaitAfterCoverageFactor(Double value) {
Preconditions.checkArgument(value == null || (value >= 0 && value <= 1),
"Expected value in range [0, 1], got " + value + ".");
Preconditions.checkArgument(value == null || maxWaitAfterCoverageFactor == null ||
value <= maxWaitAfterCoverageFactor,
"Minimum wait (got %s) must be no larger than maximum wait (was %s).",
value, maxWaitAfterCoverageFactor);
minWaitAfterCoverageFactor = value;
return this;
}
public Builder setMaxWaitAfterCoverageFactor(Double value) {
Preconditions.checkArgument(value == null || (value >= 0 && value <= 1),
"Expected value in range [0, 1], got " + value + ".");
Preconditions.checkArgument(value == null || minWaitAfterCoverageFactor == null ||
value >= minWaitAfterCoverageFactor,
"Maximum wait (got %s) must be no smaller than minimum wait (was %s).",
value, minWaitAfterCoverageFactor);
maxWaitAfterCoverageFactor = value;
return this;
}
}
}