From 076c185acf13a5a98d54ffb8b9bcffe4d82e437e Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 11 Dec 2012 13:14:26 +0100 Subject: [PATCH] Fix some quality flaws --- .../plugins/core/sensors/AlertUtils.java | 55 ++++++++++++------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java index 450d31ac4c5..80c5da9dc28 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AlertUtils.java @@ -57,7 +57,7 @@ public final class AlertUtils { return false; } - private static boolean doesReachThresholds(Comparable measureValue, Comparable criteriaValue, Alert alert){ + private static boolean doesReachThresholds(Comparable measureValue, Comparable criteriaValue, Alert alert) { int comparison = measureValue.compareTo(criteriaValue); return !(isNotEquals(comparison, alert) || isGreater(comparison, alert) @@ -65,19 +65,19 @@ public final class AlertUtils { || isEquals(comparison, alert)); } - private static boolean isNotEquals(int comparison, Alert alert){ + private static boolean isNotEquals(int comparison, Alert alert) { return alert.isNotEqualsOperator() && comparison == 0; } - private static boolean isGreater(int comparison, Alert alert){ + private static boolean isGreater(int comparison, Alert alert) { return alert.isGreaterOperator() && comparison != 1; } - private static boolean isSmaller(int comparison, Alert alert){ + private static boolean isSmaller(int comparison, Alert alert) { return alert.isSmallerOperator() && comparison != -1; } - private static boolean isEquals(int comparison, Alert alert){ + private static boolean isEquals(int comparison, Alert alert) { return alert.isEqualsOperator() && comparison != 0; } @@ -107,11 +107,25 @@ public final class AlertUtils { throw new NotImplementedException(metric.getType().toString()); } - private static Comparable parseInteger(String value){ + private static Comparable parseInteger(String value) { return value.contains(".") ? Integer.parseInt(value.substring(0, value.indexOf('.'))) : Integer.parseInt(value); } private static Comparable getMeasureValue(Alert alert, Measure measure) { + Metric metric = alert.getMetric(); + Comparable numberValue = getNumberValue(alert, measure); + if (numberValue != null) { + return numberValue; + } else if (alert.getPeriod() == null) { + Comparable value = getStringOrBooleanValue(alert, measure); + if (value != null) { + return value; + } + } + throw new NotImplementedException(metric.getType().toString()); + } + + private static Comparable getNumberValue(Alert alert, Measure measure) { Metric metric = alert.getMetric(); if (isADouble(metric)) { return getValue(alert, measure); @@ -119,39 +133,42 @@ public final class AlertUtils { if (isAInteger(metric)) { return parseInteger(alert, measure); } - if (alert.getPeriod() == null) { - if (isAString(metric)) { - return measure.getData(); - } - if (isABoolean(metric)) { - return measure.getValue().intValue(); - } + return null; + } + + private static Comparable getStringOrBooleanValue(Alert alert, Measure measure) { + Metric metric = alert.getMetric(); + if (isAString(metric)) { + return measure.getData(); } - throw new NotImplementedException(metric.getType().toString()); + if (isABoolean(metric)) { + return measure.getValue().intValue(); + } + return null; } - private static Comparable parseInteger(Alert alert, Measure measure){ + private static Comparable parseInteger(Alert alert, Measure measure) { Double value = getValue(alert, measure); return value != null ? value.intValue() : null; } - private static boolean isADouble(Metric metric){ + private static boolean isADouble(Metric metric) { return metric.getType() == Metric.ValueType.FLOAT || metric.getType() == Metric.ValueType.PERCENT || metric.getType() == Metric.ValueType.RATING; } - private static boolean isAInteger(Metric metric){ + private static boolean isAInteger(Metric metric) { return metric.getType() == Metric.ValueType.INT || metric.getType() == Metric.ValueType.MILLISEC; } - private static boolean isAString(Metric metric){ + private static boolean isAString(Metric metric) { return metric.getType() == Metric.ValueType.STRING || metric.getType() == Metric.ValueType.LEVEL; } - private static boolean isABoolean(Metric metric){ + private static boolean isABoolean(Metric metric) { return metric.getType() == Metric.ValueType.BOOL; } -- 2.39.5