Selaa lähdekoodia

SONAR-9531 Fix computation of variation when value is 0

Also remove default value behavior as it's not used anymore by GOV
tags/6.6-RC1
Julien Lancelot 6 vuotta sitten
vanhempi
commit
8a1c5e3c1b

+ 3
- 26
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/formula/VariationSumFormula.java Näytä tiedosto

@@ -20,8 +20,6 @@
package org.sonar.server.computation.task.projectanalysis.formula;

import com.google.common.base.Optional;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.server.computation.task.projectanalysis.component.CrawlerDepthLimit;
import org.sonar.server.computation.task.projectanalysis.formula.counter.DoubleValue;
import org.sonar.server.computation.task.projectanalysis.measure.Measure;
@@ -35,21 +33,14 @@ import static org.sonar.server.computation.task.projectanalysis.measure.Measure.
*/
public class VariationSumFormula implements Formula<VariationSumFormula.VariationSumCounter> {
private final String metricKey;
@CheckForNull
private final Double defaultInputValue;

public VariationSumFormula(String metricKey) {
this(metricKey, null);
}

public VariationSumFormula(String metricKey, @Nullable Double defaultInputValue) {
this.metricKey = requireNonNull(metricKey, "Metric key cannot be null");
this.defaultInputValue = defaultInputValue;
}

@Override
public VariationSumCounter createNewCounter() {
return new VariationSumCounter(metricKey, defaultInputValue);
return new VariationSumCounter(metricKey);
}

@Override
@@ -66,14 +57,11 @@ public class VariationSumFormula implements Formula<VariationSumFormula.Variatio
}

public static final class VariationSumCounter implements Counter<VariationSumCounter> {
@CheckForNull
private final Double defaultInputValue;
private final DoubleValue doubleValue = new DoubleValue();
private final String metricKey;

private VariationSumCounter(String metricKey, @Nullable Double defaultInputValue) {
private VariationSumCounter(String metricKey) {
this.metricKey = metricKey;
this.defaultInputValue = defaultInputValue;
}

@Override
@@ -85,22 +73,11 @@ public class VariationSumFormula implements Formula<VariationSumFormula.Variatio
public void initialize(CounterInitializationContext context) {
Optional<Measure> measure = context.getMeasure(metricKey);
if (!measure.isPresent() || !measure.get().hasVariation()) {
initializeWithDefaultInputValue();
return;
}
double variation = measure.get().getVariation();
if (variation > 0) {
doubleValue.increment(variation);
} else if (defaultInputValue != null) {
doubleValue.increment(defaultInputValue);
}
doubleValue.increment(variation);
}

private void initializeWithDefaultInputValue() {
if (defaultInputValue == null) {
return;
}
doubleValue.increment(defaultInputValue);
}
}
}

Loading…
Peruuta
Tallenna