Skip to content

Commit

Permalink
SONAR-8743 Remove MeasureVariations
Browse files Browse the repository at this point in the history
  • Loading branch information
julienlancelot committed Feb 9, 2017
1 parent 444a92e commit 9ca03e2
Show file tree
Hide file tree
Showing 15 changed files with 48 additions and 622 deletions.
Expand Up @@ -65,15 +65,7 @@ && hasNoVariation(measure, metric.getBestValue())
} }


private static boolean hasNoVariation(Measure measure, Double bestValue) { private static boolean hasNoVariation(Measure measure, Double bestValue) {
return !measure.hasVariations() || hasOnlyZeroVariations(measure.getVariations(), bestValue); return !measure.hasVariation() || isVariationEmptyOrBestValue(measure.getVariation(), bestValue);
}

private static boolean hasOnlyZeroVariations(MeasureVariations variations, Double bestValue) {
return (!variations.hasVariation1() || isVariationEmptyOrBestValue(variations.getVariation1(), bestValue))
&& (!variations.hasVariation2() || isVariationEmptyOrBestValue(variations.getVariation2(), bestValue))
&& (!variations.hasVariation3() || isVariationEmptyOrBestValue(variations.getVariation3(), bestValue))
&& (!variations.hasVariation4() || isVariationEmptyOrBestValue(variations.getVariation4(), bestValue))
&& (!variations.hasVariation5() || isVariationEmptyOrBestValue(variations.getVariation5(), bestValue));
} }


private static boolean isVariationEmptyOrBestValue(double variation, Double bestValue) { private static boolean isVariationEmptyOrBestValue(double variation, Double bestValue) {
Expand Down
Expand Up @@ -27,7 +27,6 @@
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.sonar.server.computation.task.projectanalysis.component.Developer; import org.sonar.server.computation.task.projectanalysis.component.Developer;
import org.sonar.server.computation.task.projectanalysis.period.Period;


import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
Expand Down Expand Up @@ -81,24 +80,7 @@ public static Optional<Level> toLevel(@Nullable String level) {
@CheckForNull @CheckForNull
private final QualityGateStatus qualityGateStatus; private final QualityGateStatus qualityGateStatus;
@CheckForNull @CheckForNull
private final MeasureVariations variations; private final Double variation;

/**
* @deprecated {{@link #Measure(ValueType, Developer, Double, String, Level, String, QualityGateStatus, Double)}} should be used instead
*/
@Deprecated
private Measure(ValueType valueType, @Nullable Developer developer,
@Nullable Double value, @Nullable String data, @Nullable Level dataLevel,
@Nullable String description, @Nullable QualityGateStatus qualityGateStatus, @Nullable MeasureVariations variations) {
this.valueType = valueType;
this.developer = developer;
this.value = value;
this.data = data;
this.dataLevel = dataLevel;
this.description = description;
this.qualityGateStatus = qualityGateStatus;
this.variations = variations;
}


private Measure(ValueType valueType, @Nullable Developer developer, private Measure(ValueType valueType, @Nullable Developer developer,
@Nullable Double value, @Nullable String data, @Nullable Level dataLevel, @Nullable Double value, @Nullable String data, @Nullable Level dataLevel,
Expand All @@ -110,7 +92,7 @@ private Measure(ValueType valueType, @Nullable Developer developer,
this.dataLevel = dataLevel; this.dataLevel = dataLevel;
this.description = description; this.description = description;
this.qualityGateStatus = qualityGateStatus; this.qualityGateStatus = qualityGateStatus;
this.variations = variation != null ? createLeakVariation(variation) : null; this.variation = variation;
} }


public static NewMeasureBuilder newMeasureBuilder() { public static NewMeasureBuilder newMeasureBuilder() {
Expand All @@ -125,7 +107,7 @@ public static final class NewMeasureBuilder {
private Developer developer; private Developer developer;
private String description; private String description;
private QualityGateStatus qualityGateStatus; private QualityGateStatus qualityGateStatus;
private MeasureVariations variations; private Double variation;


/** /**
* Sets the developer this measure is associated to. * Sets the developer this measure is associated to.
Expand All @@ -151,38 +133,29 @@ public NewMeasureBuilder setQualityGateStatus(QualityGateStatus qualityGateStatu
return this; return this;
} }


/**
* @deprecated as only one period is now available. Use {@link #hasVariation()} instead
*/
@Deprecated
public NewMeasureBuilder setVariations(MeasureVariations variations) {
this.variations = requireNonNull(variations, "Variations can not be set to null");
return this;
}

public NewMeasureBuilder setVariation(double variation) { public NewMeasureBuilder setVariation(double variation) {
this.variations = createLeakVariation(variation); this.variation = variation;
return this; return this;
} }


public Measure create(boolean value, @Nullable String data) { public Measure create(boolean value, @Nullable String data) {
return new Measure(ValueType.BOOLEAN, developer, value ? 1.0d : 0.0d, data, null, description, qualityGateStatus, variations); return new Measure(ValueType.BOOLEAN, developer, value ? 1.0d : 0.0d, data, null, description, qualityGateStatus, variation);
} }


public Measure create(boolean value) { public Measure create(boolean value) {
return create(value, null); return create(value, null);
} }


public Measure create(int value, @Nullable String data) { public Measure create(int value, @Nullable String data) {
return new Measure(ValueType.INT, developer, (double) value, data, null, description, qualityGateStatus, variations); return new Measure(ValueType.INT, developer, (double) value, data, null, description, qualityGateStatus, variation);
} }


public Measure create(int value) { public Measure create(int value) {
return create(value, null); return create(value, null);
} }


public Measure create(long value, @Nullable String data) { public Measure create(long value, @Nullable String data) {
return new Measure(ValueType.LONG, developer, (double) value, data, null, description, qualityGateStatus, variations); return new Measure(ValueType.LONG, developer, (double) value, data, null, description, qualityGateStatus, variation);
} }


public Measure create(long value) { public Measure create(long value) {
Expand All @@ -192,23 +165,23 @@ public Measure create(long value) {
public Measure create(double value, int decimalScale, @Nullable String data) { public Measure create(double value, int decimalScale, @Nullable String data) {
checkArgument(!Double.isNaN(value), "NaN is not allowed as a Measure value"); checkArgument(!Double.isNaN(value), "NaN is not allowed as a Measure value");
double scaledValue = scale(value, decimalScale); double scaledValue = scale(value, decimalScale);
return new Measure(ValueType.DOUBLE, developer, scaledValue, data, null, description, qualityGateStatus, variations); return new Measure(ValueType.DOUBLE, developer, scaledValue, data, null, description, qualityGateStatus, variation);
} }


public Measure create(double value, int decimalScale) { public Measure create(double value, int decimalScale) {
return create(value, decimalScale, null); return create(value, decimalScale, null);
} }


public Measure create(String value) { public Measure create(String value) {
return new Measure(ValueType.STRING, developer, null, requireNonNull(value), null, description, qualityGateStatus, variations); return new Measure(ValueType.STRING, developer, null, requireNonNull(value), null, description, qualityGateStatus, variation);
} }


public Measure create(Level level) { public Measure create(Level level) {
return new Measure(ValueType.LEVEL, developer, null, null, requireNonNull(level), description, qualityGateStatus, variations); return new Measure(ValueType.LEVEL, developer, null, null, requireNonNull(level), description, qualityGateStatus, variation);
} }


public Measure createNoValue() { public Measure createNoValue() {
return new Measure(ValueType.NO_VALUE, developer, null, null, null, description, qualityGateStatus, variations); return new Measure(ValueType.NO_VALUE, developer, null, null, null, description, qualityGateStatus, variation);
} }


private static double scale(double value, int decimalScale) { private static double scale(double value, int decimalScale) {
Expand All @@ -220,7 +193,7 @@ private static double scale(double value, int decimalScale) {
public static final class UpdateMeasureBuilder { public static final class UpdateMeasureBuilder {
private final Measure source; private final Measure source;
private QualityGateStatus qualityGateStatus; private QualityGateStatus qualityGateStatus;
private MeasureVariations variations; private Double variation;


public UpdateMeasureBuilder(Measure source) { public UpdateMeasureBuilder(Measure source) {
this.source = requireNonNull(source, "Can not create a measure from null"); this.source = requireNonNull(source, "Can not create a measure from null");
Expand All @@ -240,32 +213,16 @@ public UpdateMeasureBuilder setQualityGateStatus(QualityGateStatus qualityGateSt
return this; return this;
} }


/**
* Sets the MeasureVariations of the updated Measure to create.
*
* @throws NullPointerException if the specified {@link MeasureVariations} is {@code null}
* @throws UnsupportedOperationException if the source measure already has a {@link MeasureVariations}
* @deprecated as only one period is now available. Use {@link #setVariation(double)} instead
*/
@Deprecated
public UpdateMeasureBuilder setVariations(MeasureVariations variations) {
if (source.variations != null) {
throw new UnsupportedOperationException("Variations can not be changed if already set on source Measure");
}
this.variations = requireNonNull(variations, "Variations can not be set to null");
return this;
}

/** /**
* Sets the variation of the updated Measure to create. * Sets the variation of the updated Measure to create.
* *
* @throws UnsupportedOperationException if the source measure already has a {@link MeasureVariations} * @throws UnsupportedOperationException if the source measure already has a variation
*/ */
public UpdateMeasureBuilder setVariation(double variation) { public UpdateMeasureBuilder setVariation(double variation) {
if (source.variations != null) { if (source.variation != null) {
throw new UnsupportedOperationException("Variation can not be changed if already set on source Measure"); throw new UnsupportedOperationException("Variation can not be changed if already set on source Measure");
} }
this.variations = createLeakVariation(variation); this.variation = variation;
return this; return this;
} }


Expand All @@ -274,7 +231,7 @@ public Measure create() {
source.value, source.data, source.dataLevel, source.value, source.data, source.dataLevel,
source.description, source.description,
source.qualityGateStatus == null ? qualityGateStatus : source.qualityGateStatus, source.qualityGateStatus == null ? qualityGateStatus : source.qualityGateStatus,
source.variations == null ? variations : source.variations); source.variation == null ? variation : source.variation);
} }
} }


Expand Down Expand Up @@ -388,32 +345,11 @@ public QualityGateStatus getQualityGateStatus() {
return this.qualityGateStatus; return this.qualityGateStatus;
} }


/**
* Any Measure, which ever is its value type, can have a Variations.
* @deprecated as only one period is now available. Use {@link #hasVariation()} instead
*/
@Deprecated
public boolean hasVariations() {
return variations != null;
}

/** /**
* Any Measure, which ever is its value type, can have a variation. * Any Measure, which ever is its value type, can have a variation.
*/ */
public boolean hasVariation() { public boolean hasVariation() {
return hasVariations() && variations.hasVariation1(); return variation != null;
}

/**
* The variations of this measure.
*
* @throws IllegalStateException if the measure has no MeasureVariations
* @deprecated as only one period is now available. Use {@link #getVariation()} instead
*/
@Deprecated
public MeasureVariations getVariations() {
checkState(variations != null, "Measure does not have variations");
return variations;
} }


/** /**
Expand All @@ -422,8 +358,8 @@ public MeasureVariations getVariations() {
* @throws IllegalStateException if the measure has no variation * @throws IllegalStateException if the measure has no variation
*/ */
public double getVariation() { public double getVariation() {
checkState(variations != null, "Measure does not have variation"); checkState(variation != null, "Measure does not have variation");
return variations.getVariation1(); return variation;
} }


/** /**
Expand Down Expand Up @@ -464,12 +400,9 @@ public String toString() {
.add("data", data) .add("data", data)
.add("dataLevel", dataLevel) .add("dataLevel", dataLevel)
.add("qualityGateStatus", qualityGateStatus) .add("qualityGateStatus", qualityGateStatus)
.add("variations", variations) .add("variations", variation)
.add("description", description) .add("description", description)
.toString(); .toString();
} }


private static MeasureVariations createLeakVariation(double variation) {
return MeasureVariations.newMeasureVariationsBuilder().setVariation(new Period(1, "mode", null, 0l, null), variation).build();
}
} }
Expand Up @@ -117,7 +117,7 @@ private static Measure.NewMeasureBuilder setCommonProperties(Measure.NewMeasureB
} }
} }
if (hasAnyVariation(measureDto)) { if (hasAnyVariation(measureDto)) {
builder.setVariations(createVariations(measureDto)); builder.setVariation(measureDto.getVariation());
} }
return builder; return builder;
} }
Expand All @@ -126,8 +126,4 @@ private static boolean hasAnyVariation(MeasureDto measureDto) {
return measureDto.getVariation() != null; return measureDto.getVariation() != null;
} }


private static MeasureVariations createVariations(MeasureDto measureDto) {
return new MeasureVariations(measureDto.getVariation());
}

} }
Expand Up @@ -44,8 +44,8 @@ public MeasureDto toMeasureDto(Measure measure, Metric metric, Component compone
out.setMetricId(metric.getId()); out.setMetricId(metric.getId());
out.setComponentUuid(component.getUuid()); out.setComponentUuid(component.getUuid());
out.setAnalysisUuid(analysisMetadataHolder.getUuid()); out.setAnalysisUuid(analysisMetadataHolder.getUuid());
if (measure.hasVariations()) { if (measure.hasVariation()) {
setVariation(out, measure.getVariations()); out.setVariation(measure.getVariation());
} }
if (measure.hasQualityGateStatus()) { if (measure.hasQualityGateStatus()) {
setAlert(out, measure.getQualityGateStatus()); setAlert(out, measure.getQualityGateStatus());
Expand All @@ -60,10 +60,6 @@ public MeasureDto toMeasureDto(Measure measure, Metric metric, Component compone
return out; return out;
} }


private static void setVariation(MeasureDto measureDto, MeasureVariations variations) {
measureDto.setVariation(variations.hasVariation1() ? variations.getVariation1() : null);
}

private static void setAlert(MeasureDto measureDto, QualityGateStatus qualityGateStatus) { private static void setAlert(MeasureDto measureDto, QualityGateStatus qualityGateStatus) {
measureDto.setAlertStatus(qualityGateStatus.getStatus().name()); measureDto.setAlertStatus(qualityGateStatus.getStatus().name());
measureDto.setAlertText(qualityGateStatus.getText()); measureDto.setAlertText(qualityGateStatus.getText());
Expand Down

0 comments on commit 9ca03e2

Please sign in to comment.