From db2c24f023c8ab6dfbd473269086c61847720dea Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Tue, 19 Oct 2010 15:31:17 +0000 Subject: [PATCH] SONAR-1830 new metric type 'rating' --- .../main/java/org/sonar/batch/indexer/DefaultSonarIndex.java | 2 +- .../src/main/java/org/sonar/api/measures/Metric.java | 5 +++-- .../main/webapp/WEB-INF/app/helpers/application_helper.rb | 2 +- sonar-server/src/main/webapp/WEB-INF/app/models/drilldown.rb | 2 +- sonar-server/src/main/webapp/WEB-INF/app/models/metric.rb | 3 ++- .../src/main/webapp/WEB-INF/app/models/project_measure.rb | 2 ++ 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/indexer/DefaultSonarIndex.java b/sonar-batch/src/main/java/org/sonar/batch/indexer/DefaultSonarIndex.java index 14b6f015d4a..b49d877b590 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/indexer/DefaultSonarIndex.java +++ b/sonar-batch/src/main/java/org/sonar/batch/indexer/DefaultSonarIndex.java @@ -311,7 +311,7 @@ public class DefaultSonarIndex extends SonarIndex { ResourceUtils.isEntity(resource) && metric.isOptimizedBestValue() == Boolean.TRUE && metric.getBestValue() != null && - metric.getBestValue().equals(measure.getValue()) && + Double.compare(metric.getBestValue(), measure.getValue())==0 && !measure.hasOptionalData()); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java index 27dcf62e07a..87ff5bd61dc 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java @@ -47,7 +47,7 @@ public class Metric extends BaseIdentifiable implements ServerExtension, BatchEx public final static int DIRECTION_NONE = 0; public enum ValueType { - INT, FLOAT, PERCENT, BOOL, STRING, MILLISEC, DATA, LEVEL, DISTRIB + INT, FLOAT, PERCENT, BOOL, STRING, MILLISEC, DATA, LEVEL, DISTRIB, RATING } public enum Level { @@ -441,7 +441,8 @@ public class Metric extends BaseIdentifiable implements ServerExtension, BatchEx || ValueType.FLOAT.equals(type) || ValueType.PERCENT.equals(type) || ValueType.BOOL.equals(type) - || ValueType.MILLISEC.equals(type); + || ValueType.MILLISEC.equals(type) + || ValueType.RATING.equals(type); } /** diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb index d728ba39ec7..266997f087e 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb @@ -129,7 +129,7 @@ module ApplicationHelper end html="#{html}" end - no_tendency_img=true if (measure.metric.val_type==Metric::VALUE_TYPE_LEVEL || measure.metric.val_type==Metric::VALUE_TYPE_BOOLEAN) + no_tendency_img=true if (measure.metric.val_type==Metric::VALUE_TYPE_LEVEL || measure.metric.val_type==Metric::VALUE_TYPE_BOOLEAN || measure.metric.val_type==Metric::VALUE_TYPE_RATING) html="#{html} #{tendency_icon(measure, small, no_tendency_img)} #{suffix}" end html diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/drilldown.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/drilldown.rb index 59943c0a7cf..7b761c6ddd3 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/drilldown.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/drilldown.rb @@ -91,7 +91,7 @@ class DrilldownColumn end @measures=ProjectMeasure.find(:all, - :select => 'project_measures.id,project_measures.metric_id,project_measures.value,project_measures.snapshot_id', + :select => 'project_measures.id,project_measures.metric_id,project_measures.value,project_measures.text_value,project_measures.snapshot_id', :joins => :snapshot, :conditions => [conditions,values], :order => order, diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/metric.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/metric.rb index 9ccca7d3f1e..fe23e7eb177 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/metric.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/metric.rb @@ -30,6 +30,7 @@ class Metric < ActiveRecord::Base VALUE_TYPE_MILLISEC = 'MILLISEC' VALUE_TYPE_LEVEL = 'LEVEL' VALUE_TYPE_DISTRIB = 'DISTRIB' + VALUE_TYPE_RATING = 'RATING' TYPE_LEVEL_OK = 'OK' TYPE_LEVEL_WARN = 'WARN' @@ -78,7 +79,7 @@ class Metric < ActiveRecord::Base end def numeric? - val_type==VALUE_TYPE_INT || val_type==VALUE_TYPE_FLOAT || val_type==VALUE_TYPE_PERCENT || val_type==VALUE_TYPE_MILLISEC + val_type==VALUE_TYPE_INT || val_type==VALUE_TYPE_FLOAT || val_type==VALUE_TYPE_PERCENT || val_type==VALUE_TYPE_MILLISEC || val_type==VALUE_TYPE_RATING end def data? diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/project_measure.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/project_measure.rb index 860a8258ce9..ffbea749e58 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/project_measure.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/project_measure.rb @@ -94,6 +94,8 @@ class ProjectMeasure < ActiveRecord::Base text_value when Metric::VALUE_TYPE_STRING text_value + when Metric::VALUE_TYPE_RATING + text_value || value.to_i.to_s else value().to_s end -- 2.39.5