@Override public Class<G> valueType() { return getType().valueType(); } }
/** * @return whether the metric is of type percentage */ public boolean isPercentageType() { return ValueType.PERCENT.equals(type); }
private IssueMetricFormula newRatingLeakFormula(Rating rating) { Metric metric = new Metric.Builder(ratingMetric.getKey(), ratingMetric.getShortName(), Metric.ValueType.valueOf(ratingMetric.getValueType())).create(); return new IssueMetricFormula(metric, true, (ctx, issues) -> { ctx.setLeakValue(rating); }); }
@Test public void override_decimal_scale_of_percent_metric() { Metric metric = new Metric.Builder("foo", "Foo", Metric.ValueType.PERCENT) .setDecimalScale(3) .create(); assertThat(metric.getDecimalScale()).isEqualTo(3); }
private void checkMetrics(Map<String, Metrics> metricsByRepository, Metrics metrics) { for (Metric metric : metrics.getMetrics()) { String metricKey = metric.getKey(); if (CoreMetrics.getMetrics().contains(metric)) { throw new IllegalStateException(String.format("Metric [%s] is already defined by SonarQube", metricKey)); } Metrics anotherRepository = metricsByRepository.get(metricKey); if (anotherRepository != null) { throw new IllegalStateException(String.format("Metric [%s] is already defined by the repository [%s]", metricKey, anotherRepository)); } metricsByRepository.put(metricKey, metrics); } }
@Override public List<Metric> getMetrics() { return Lists.newArrayList( new Metric.Builder(NEW_METRIC_1, "metric1", DATA).create(), new Metric.Builder(NEW_METRIC_2, "metric2", MILLISEC).create(), new Metric.Builder(NEW_METRIC_3, "metric3", INT).create(), new Metric.Builder(NEW_METRIC_4, "metric4", FLOAT).create()); } }
@Test public void non_decimal_metric_has_no_scale() { Metric metric = new Metric.Builder("foo", "Foo", Metric.ValueType.INT) .create(); assertThat(metric.getDecimalScale()).isNull(); } }
@Override public List<Metric> provide() { List<Metric> metrics = Lists.newArrayList(CoreMetrics.getMetrics()); for (Metrics factory : factories) { metrics.addAll(factory.getMetrics()); } return metrics; } }
@Override public String key() { return getKey(); }
public ScannerMediumTester registerCoreMetrics() { for (Metric<?> m : CoreMetrics.getMetrics()) { registerMetric(m); } return this; }
@Override public List<Metric> apply(@Nonnull Metrics input) { return input.getMetrics(); } }
public FakeMetricsRepositoryLoader add(Metric<?> metric) { metric.setId(metricId++); metrics.add(metric); metricId++; return this; }
private IssueMetricFormula newRatingConstantFormula(Rating constant) { Metric metric = new Metric.Builder(ratingMetric.getKey(), ratingMetric.getShortName(), Metric.ValueType.valueOf(ratingMetric.getValueType())).create(); return new IssueMetricFormula(metric, false, (ctx, issues) -> { ctx.setValue(constant); }); }
@Test public void override_decimal_scale_of_float_metric() { Metric metric = new Metric.Builder("foo", "Foo", Metric.ValueType.FLOAT) .setDecimalScale(3) .create(); assertThat(metric.getDecimalScale()).isEqualTo(3); }
@Override public List<Metric> getMetrics() { return Arrays.asList( new Metric.Builder("key1", "name1", Metric.ValueType.INT).create(), new Metric.Builder("key2", "name2", Metric.ValueType.FLOAT).create()); } }
@Override public boolean equals(Object obj) { if (!(obj instanceof Metric)) { return false; } if (this == obj) { return true; } Metric other = (Metric) obj; return key.equals(other.getKey()); }
/** * @return whether the metric is of a numeric type (int, percentage...) */ public boolean isNumericType() { return ValueType.INT.equals(type) || ValueType.FLOAT.equals(type) || ValueType.PERCENT.equals(type) || ValueType.BOOL.equals(type) || ValueType.MILLISEC.equals(type) || ValueType.RATING.equals(type) || ValueType.WORK_DUR.equals(type); }