diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2015-06-26 16:59:49 +0200 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2015-06-30 17:28:42 +0200 |
commit | d559e463454aeb629b44897f4c03213bc2ab1d40 (patch) | |
tree | 2b476ee921f209dc4cc71adba57ec9833ababee3 /server/sonar-server | |
parent | 74372f4f92913383931e1742ddaf071216edfcfd (diff) | |
download | sonarqube-d559e463454aeb629b44897f4c03213bc2ab1d40.tar.gz sonarqube-d559e463454aeb629b44897f4c03213bc2ab1d40.zip |
add missing equals() to MeasureVariations
Diffstat (limited to 'server/sonar-server')
-rw-r--r-- | server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureVariations.java | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureVariations.java b/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureVariations.java index 7235deb7ce4..f75914c9ccd 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureVariations.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureVariations.java @@ -21,9 +21,11 @@ package org.sonar.server.computation.measure; import com.google.common.base.Objects; import java.util.Arrays; +import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Predicates.notNull; import static com.google.common.collect.FluentIterable.from; @@ -37,6 +39,30 @@ public final class MeasureVariations { System.arraycopy(variations, 0, this.variations, 0, variations.length); } + public static Builder newMeasureVarationsBuilder() { + return new Builder(); + } + + public static final class Builder { + private final Double[] variations = new Double[5]; + + private Builder() { + // prevents instantiation outside static method + } + + public Builder setVariation(int index, double variation) { + checkArgument(index > 0 && index < 6, "Variation index must be >= 1 and <= 5"); + int arrayIndex = index - 1; + checkState(variations[arrayIndex] == null, String.format("Variation for index %s has already been set", index)); + variations[arrayIndex] = variation; + return this; + } + + public MeasureVariations build() { + return new MeasureVariations(variations); + } + } + public boolean hasVariation1() { return hasVariation(1); } @@ -89,7 +115,7 @@ public final class MeasureVariations { public double getVariation(int i) { checkHasVariation(i); - return variations[i-1]; + return variations[i - 1]; } @Override @@ -102,4 +128,21 @@ public final class MeasureVariations { .add("5", variations[4]) .toString(); } + + @Override + public boolean equals(@Nullable Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeasureVariations that = (MeasureVariations) o; + return Arrays.equals(variations, that.variations); + } + + @Override + public int hashCode() { + return Arrays.hashCode(variations); + } } |