/** * * Creates a measure with a metric and a data field * * @param metric the metric * @param data the data field */ public Measure(Metric metric, String data) { this.metric = metric; this.metricKey = metric.getKey(); setData(data); }
/** * Creates a measure with a metric, a value and a data field * * @param metric the metric * @param value the value * @param data the data field */ public Measure(Metric metric, Double value, String data) { this.metric = metric; this.metricKey = metric.getKey(); setValue(value); setData(data); }
@Override public void save() { for (Map.Entry<String, Map<Integer, Object>> entry : map.entrySet()) { String metricKey = entry.getKey(); Map<Integer, Object> lines = entry.getValue(); if (shouldSave(lines)) { String data = KeyValueFormat.format(lines); Measure measure = new Measure(metricKey) .setPersistenceMode(PersistenceMode.DATABASE) .setData(data); index.addMeasure(resource, measure); entry.setValue(ImmutableMap.copyOf(lines)); } } }
@Override public void save() { for (Map.Entry<String, Map<Integer, Object>> entry : map.entrySet()) { String metricKey = entry.getKey(); Map<Integer, Object> lines = entry.getValue(); if (shouldSave(lines)) { String data = KeyValueFormat.format(lines); Measure measure = new Measure(metricKey) .setPersistenceMode(PersistenceMode.DATABASE) .setData(data); index.addMeasure(resource, measure); entry.setValue(ImmutableMap.copyOf(lines)); } } }
private Measure createCoveredConditionsByLine() { return new Measure(CoreMetrics.COVERED_CONDITIONS_BY_LINE) .setData(KeyValueFormat.format(coveredConditionsByLine)) .setPersistenceMode(PersistenceMode.DATABASE); }
private Measure createConditionsByLine() { return new Measure(CoreMetrics.CONDITIONS_BY_LINE) .setData(KeyValueFormat.format(conditionsByLine)) .setPersistenceMode(PersistenceMode.DATABASE); }
private Measure createRatingMeasure(int rating) { return new Measure(CoreMetrics.SQALE_RATING).setIntValue(rating).setData(toRatingLetter(rating)); }
private void setValueAccordingToMetricType(Measure<?> measure, org.sonar.api.measures.Metric<?> m, org.sonar.api.measures.Measure measureToSave) { switch (m.getType()) { case BOOL: measureToSave.setValue(Boolean.TRUE.equals(measure.value()) ? 1.0 : 0.0); break; case INT: case MILLISEC: case WORK_DUR: case FLOAT: case PERCENT: case RATING: measureToSave.setValue(((Number) measure.value()).doubleValue()); break; case STRING: case LEVEL: case DATA: case DISTRIB: measureToSave.setData((String) measure.value()); break; default: throw new UnsupportedOperationException("Unsupported type :" + m.getType()); } }
public Collection<Measure> createMeasures() { Collection<Measure> measures = Lists.newArrayList(); if (getLinesToCover() > 0) { measures.add(new Measure(CoreMetrics.LINES_TO_COVER, (double) getLinesToCover())); measures.add(new Measure(CoreMetrics.UNCOVERED_LINES, (double) (getLinesToCover() - getCoveredLines()))); measures.add(new Measure(CoreMetrics.COVERAGE_LINE_HITS_DATA).setData(KeyValueFormat.format(hitsByLine)).setPersistenceMode(PersistenceMode.DATABASE)); } if (getConditions() > 0) { measures.add(new Measure(CoreMetrics.CONDITIONS_TO_COVER, (double) getConditions())); measures.add(new Measure(CoreMetrics.UNCOVERED_CONDITIONS, (double) (getConditions() - getCoveredConditions()))); measures.add(createConditionsByLine()); measures.add(createCoveredConditionsByLine()); } return measures; }
private Measure copy(ManualMeasure manualMeasure) { Metric metric = metricFinder.findById(manualMeasure.getMetricId()); checkState(metric != null, "Unable to find manual metric with id: " + manualMeasure.getMetricId()); Measure measure = new Measure(metric); measure.setValue(manualMeasure.getValue(), 5); measure.setData(manualMeasure.getTextValue()); measure.setDescription(manualMeasure.getDescription()); return measure; }
private void setValueAccordingToMetricType(Measure<?> measure, org.sonar.api.measures.Metric<?> m, org.sonar.api.measures.Measure measureToSave) { switch (m.getType()) { case BOOL: measureToSave.setValue(Boolean.TRUE.equals(measure.value()) ? 1.0 : 0.0); break; case INT: case MILLISEC: measureToSave.setValue(Double.valueOf((Integer) measure.value())); break; case FLOAT: case PERCENT: case RATING: measureToSave.setValue((Double) measure.value()); break; case STRING: case LEVEL: case DATA: case DISTRIB: measureToSave.setData((String) measure.value()); break; case WORK_DUR: measureToSave.setValue(Double.valueOf((Long) measure.value())); break; default: throw new UnsupportedOperationException("Unsupported type :" + m.getType()); } }
@Override public void store(DefaultCoverage defaultCoverage) { File file = getFile(defaultCoverage.inputFile()); if (coverageExclusions.hasMatchingPattern(file)) { return; } CoverageType type = defaultCoverage.type(); if (defaultCoverage.linesToCover() > 0) { saveMeasure(file, new org.sonar.api.measures.Measure(type.linesToCover(), (double) defaultCoverage.linesToCover())); saveMeasure(file, new org.sonar.api.measures.Measure(type.uncoveredLines(), (double) (defaultCoverage.linesToCover() - defaultCoverage.coveredLines()))); saveMeasure(file, new org.sonar.api.measures.Measure(type.lineHitsData()).setData(KeyValueFormat.format(defaultCoverage.hitsByLine()))); } if (defaultCoverage.conditions() > 0) { saveMeasure(file, new org.sonar.api.measures.Measure(type.conditionsToCover(), (double) defaultCoverage.conditions())); saveMeasure(file, new org.sonar.api.measures.Measure(type.uncoveredConditions(), (double) (defaultCoverage.conditions() - defaultCoverage.coveredConditions()))); saveMeasure(file, new org.sonar.api.measures.Measure(type.coveredConditionsByLine()).setData(KeyValueFormat.format(defaultCoverage.coveredConditionsByLine()))); saveMeasure(file, new org.sonar.api.measures.Measure(type.conditionsByLine()).setData(KeyValueFormat.format(defaultCoverage.conditionsByLine()))); } }
static Measure toMeasure(MeasureModel model, Metric metric, @Nullable Characteristic characteristic) { // NOTE: measures on rule are not supported Measure measure = new Measure(metric); measure.setDescription(model.getDescription()); measure.setValue(model.getValue()); measure.setData(model.getData(metric)); measure.setAlertStatus(model.getAlertStatus()); measure.setAlertText(model.getAlertText()); measure.setTendency(model.getTendency()); measure.setVariation1(model.getVariationValue1()); measure.setVariation2(model.getVariationValue2()); measure.setVariation3(model.getVariationValue3()); measure.setVariation4(model.getVariationValue4()); measure.setVariation5(model.getVariationValue5()); measure.setUrl(model.getUrl()); measure.setCharacteristic(characteristic); measure.setPersonId(model.getPersonId()); return measure; } }
@Override public Object get(Value value, Class clazz, CoderContext context) { Measure<?> m = new Measure(); String metricKey = value.getString(); org.sonar.api.batch.measure.Metric metric = metricFinder.findByKey(metricKey); if (metric == null) { throw new IllegalStateException("Unknow metric with key " + metricKey); } m.setMetric((org.sonar.api.measures.Metric) metric); m.setRawValue(value.isNull(true) ? null : value.getDouble()); m.setData(value.getString()); m.setDescription(value.getString()); m.setAlertStatus(value.isNull(true) ? null : Metric.Level.valueOf(value.getString())); m.setAlertText(value.getString()); m.setDate(value.getDate()); m.setVariation1(value.isNull(true) ? null : value.getDouble()); m.setVariation2(value.isNull(true) ? null : value.getDouble()); m.setVariation3(value.isNull(true) ? null : value.getDouble()); m.setVariation4(value.isNull(true) ? null : value.getDouble()); m.setVariation5(value.isNull(true) ? null : value.getDouble()); m.setUrl(value.getString()); m.setPersonId(value.isNull(true) ? null : value.getInt()); m.setPersistenceMode(value.isNull(true) ? null : PersistenceMode.valueOf(value.getString())); return m; } }
@Override public Object get(Value value, Class clazz, CoderContext context) { Measure<?> m = new Measure(); String metricKey = value.getString(); org.sonar.api.batch.measure.Metric metric = metricFinder.findByKey(metricKey); if (metric == null) { throw new IllegalStateException("Unknow metric with key " + metricKey); } m.setMetric((org.sonar.api.measures.Metric) metric); m.setRawValue(value.isNull(true) ? null : value.getDouble()); m.setData(value.getString()); m.setDescription(value.getString()); m.setAlertStatus(value.isNull(true) ? null : Metric.Level.valueOf(value.getString())); m.setAlertText(value.getString()); m.setTendency(value.isNull(true) ? null : value.getInt()); m.setDate(value.getDate()); m.setVariation1(value.isNull(true) ? null : value.getDouble()); m.setVariation2(value.isNull(true) ? null : value.getDouble()); m.setVariation3(value.isNull(true) ? null : value.getDouble()); m.setVariation4(value.isNull(true) ? null : value.getDouble()); m.setVariation5(value.isNull(true) ? null : value.getDouble()); m.setUrl(value.getString()); m.setCharacteristic(value.isNull(true) ? null : techDebtModel.characteristicById(value.getInt())); m.setRequirement(value.isNull(true) ? null : techDebtModel.requirementsById(value.getInt())); m.setPersonId(value.isNull(true) ? null : value.getInt()); m.setPersistenceMode(value.isNull(true) ? null : PersistenceMode.valueOf(value.getString())); return m; } }