]> source.dussan.org Git - sonarqube.git/commitdiff
API: add methods MeasureUtils.getVariation(...) and MeasureUtils.getVariationAsLong...
authorsimonbrandhof <simon.brandhof@gmail.com>
Mon, 28 Feb 2011 17:03:52 +0000 (18:03 +0100)
committersimonbrandhof <simon.brandhof@gmail.com>
Mon, 28 Feb 2011 17:03:52 +0000 (18:03 +0100)
sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java
sonar-plugin-api/src/test/java/org/sonar/api/measures/MeasureUtilsTest.java

index aca0c1ca364fff0095fdcba719a3aa7b1ffa7eba..f0f892a53252e9c189c1e81ba53b4b4c20386d74 100644 (file)
@@ -57,9 +57,9 @@ public final class MeasureUtils {
   /**
    * Get the value of a measure, or alternatively a default value
    *
-   * @param measure the measure
+   * @param measure      the measure
    * @param defaultValue the default value
-   * @return  <code>defaultValue</code> if measure is null or has no values.
+   * @return <code>defaultValue</code> if measure is null or has no values.
    */
 
   public static Double getValue(Measure measure, Double defaultValue) {
@@ -69,6 +69,38 @@ public final class MeasureUtils {
     return defaultValue;
   }
 
+  public static Long getValueAsLong(Measure measure, Long defaultValue) {
+    if (MeasureUtils.hasValue(measure)) {
+      return measure.getValue().longValue();
+    }
+    return defaultValue;
+  }
+
+
+  public static Double getVariation(Measure measure, int periodIndex) {
+    return getVariation(measure, periodIndex, null);
+  }
+
+  public static Double getVariation(Measure measure, int periodIndex, Double defaultValue) {
+    Double result = null;
+    if (measure != null) {
+      result = measure.getVariation(periodIndex);
+    }
+    return (result != null ? result : defaultValue);
+  }
+
+  public static Long getVariationAsLong(Measure measure, int periodIndex) {
+    return getVariationAsLong(measure, periodIndex, null);
+  }
+
+  public static Long getVariationAsLong(Measure measure, int periodIndex, Long defaultValue) {
+    Double result = null;
+    if (measure != null) {
+      result = measure.getVariation(periodIndex);
+    }
+    return result == null ? defaultValue : Long.valueOf(result.longValue());
+  }
+
   /**
    * Tests if a measure has a value
    *
@@ -93,7 +125,7 @@ public final class MeasureUtils {
    * Sums a series of measures
    *
    * @param zeroIfNone whether to return 0 or null in case measures is null
-   * @param measures the series of measures
+   * @param measures   the series of measures
    * @return the sum of the measure series
    */
   public static Double sum(boolean zeroIfNone, Collection<Measure> measures) {
@@ -107,7 +139,7 @@ public final class MeasureUtils {
    * Sums a series of measures
    *
    * @param zeroIfNone whether to return 0 or null in case measures is null
-   * @param measures the series of measures
+   * @param measures   the series of measures
    * @return the sum of the measure series
    */
   public static Double sum(boolean zeroIfNone, Measure... measures) {
index 81faf56e385dd7cfdfc724e247b87df684bf7e47..1e1d33e42eb3ccd6c429b42c38ba63e955351fc0 100644 (file)
@@ -80,7 +80,7 @@ public class MeasureUtilsTest {
   }
 
   @Test
-  public void haveValues() {
+  public void shouldHaveValues() {
     assertThat(MeasureUtils.haveValues(), is(false));
     assertThat(MeasureUtils.haveValues(null, null), is(false));
     assertThat(MeasureUtils.haveValues(new Measure(CoreMetrics.CLASSES, (Double) null)), is(false));
@@ -88,4 +88,27 @@ public class MeasureUtilsTest {
     assertThat(MeasureUtils.haveValues(new Measure(CoreMetrics.CLASSES, 3.2), new Measure(CoreMetrics.COMPLEXITY, "foo")), is(false));
     assertThat(MeasureUtils.haveValues(new Measure(CoreMetrics.CLASSES, 3.2), new Measure(CoreMetrics.COMPLEXITY, 2.5)), is(true));
   }
+
+  @Test
+  public void shouldGetVariation() {
+    assertThat(MeasureUtils.getVariation(null, 2, 3.14), is(3.14));
+    assertThat(MeasureUtils.getVariation(null, 2), nullValue());
+
+    assertThat(MeasureUtils.getVariation(new Measure(), 2, 3.14), is(3.14));
+    assertThat(MeasureUtils.getVariation(new Measure(), 2), nullValue());
+
+    assertThat(MeasureUtils.getVariation(new Measure().setVariation2(1.618), 2, 3.14), is(1.618));
+  }
+
+  @Test
+  public void shouldGetVariationAsLong() {
+    assertThat(MeasureUtils.getVariationAsLong(null, 2, 3L), is(3L));
+    assertThat(MeasureUtils.getVariationAsLong(null, 2), nullValue());
+
+    assertThat(MeasureUtils.getVariationAsLong(new Measure(), 2, 3L), is(3L));
+    assertThat(MeasureUtils.getVariationAsLong(new Measure(), 2), nullValue());
+
+    assertThat(MeasureUtils.getVariationAsLong(new Measure().setVariation2(222.0), 2, 3L), is(222L));
+  }
+
 }