summaryrefslogtreecommitdiffstats
path: root/server/sonar-server
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-06-26 16:59:49 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-06-30 17:28:42 +0200
commitd559e463454aeb629b44897f4c03213bc2ab1d40 (patch)
tree2b476ee921f209dc4cc71adba57ec9833ababee3 /server/sonar-server
parent74372f4f92913383931e1742ddaf071216edfcfd (diff)
downloadsonarqube-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.java45
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);
+ }
}