/** * Initialize a rule given an XML Node that contains one rule * * @return */ public Rule initFromNode(final org.sonar.wsclient.services.Measure ruleNode) { Rule rule = new Rule(); rule.setKey(ruleNode.getRuleKey()); rule.setName(ruleNode.getRuleName()); rule.setViolationsNumber(ruleNode.getValue()); rule.setViolationsNumberFormatted(ruleNode.getFormattedValue()); return rule; }
public Measure getMeasure(String metricKey) { for (Measure measure : getMeasures()) { if (metricKey.equals(measure.getMetricKey())) { return measure; } } return null; }
public MeasureLabel(Measure measure) { if (measure != null) { this.metricName = measure.getMetricName(); this.value = measure.getFormattedValue(); } }
private Measure parseMeasure(Object json) { WSUtils utils = WSUtils.getINSTANCE(); Measure measure = new Measure(); measure .setMetricKey(utils.getString(json, "key")) .setMetricName(utils.getString(json, "name")) .setValue(utils.getDouble(json, "val")) .setFormattedValue(utils.getString(json, "frmt_val")) .setAlertStatus(utils.getString(json, "alert")) .setAlertText(utils.getString(json, "alert_text")) .setTrend(utils.getInteger(json, "trend")) .setVar(utils.getInteger(json, "var")) .setData(utils.getString(json, "data")) .setRuleKey(utils.getString(json, "rule_key")) .setRuleName(utils.getString(json, "rule_name")) .setRuleCategory(utils.getString(json, "rule_category")) .setRuleSeverity(utils.getString(json, "rule_priority")) .setCharacteristicKey(utils.getString(json, "ctic_key")) .setCharacteristicName(utils.getString(json, "ctic_name")) .setVariation1(utils.getDouble(json, "var1")) .setVariation2(utils.getDouble(json, "var2")) .setVariation3(utils.getDouble(json, "var3")) .setVariation4(utils.getDouble(json, "var4")) .setVariation5(utils.getDouble(json, "var5")); return measure; } }
final org.sonar.wsclient.services.Measure measureNode) { Measure measure = new Measure(); measure.setKey(measureNode.getMetricKey()); String formatValueNode = measureNode.getFormattedValue(); if (formatValueNode != null) { measure.setFormatValue(formatValueNode); measure.setValue(String.valueOf(measureNode.getValue())); Integer trendNode = measureNode.getTrend(); if (trendNode != null) { measure.setQualitativeTendency(trendNode); Integer varNode = measureNode.getVar(); if (varNode != null) { measure.setQuantitativeTendency(varNode); Double valueNode = measureNode.getValue(); String dataNode = measureNode.getData();
/** * {@inheritDoc} */ public List<IMeasure> getMeasures() { Map<String, Metric> metricsByKey = index.getMetrics(); Set<String> keys = metricsByKey.keySet(); String[] metricKeys = keys.toArray(new String[keys.size()]); ResourceQuery query = ResourceQuery.createForMetrics(getKey(), metricKeys); Resource resource = index.getSonar().find(query); List<IMeasure> result = Lists.newArrayList(); for (Measure measure : resource.getMeasures()) { final Metric metric = metricsByKey.get(measure.getMetricKey()); final String value = measure.getFormattedValue(); // Hacks around SONAR-1620 if ( !metric.getHidden() && !"DATA".equals(metric.getType()) && StringUtils.isNotBlank(measure.getFormattedValue())) { result.add(new MeasureData().setMetricDef(metric).setValue(value)); } } return result; }
public MeasureLabel(Measure measure, String metricName, String defaultValue) { this.metricName = metricName; if (measure != null) { this.value = measure.getFormattedValue(); } else { this.value = defaultValue; } }
/** * {@inheritDoc} */ public CoverageData getCoverage() { final Resource resource = index.getSonar().find( ResourceQuery.createForMetrics(getKey(), CoverageUtils.COVERAGE_LINE_HITS_DATA_KEY, CoverageUtils.BRANCH_COVERAGE_HITS_DATA_KEY)); final Measure measure = resource.getMeasure(CoverageUtils.COVERAGE_LINE_HITS_DATA_KEY); final Measure measure2 = resource.getMeasure(CoverageUtils.BRANCH_COVERAGE_HITS_DATA_KEY); if (measure2 != null) { return new CoverageData(CoverageUtils.unmarshall(measure.getData()), CoverageUtils.unmarshall(measure2.getData())); } else { return new CoverageData(CoverageUtils.unmarshall(measure.getData()), new HashMap<Integer, String>()); } }
public Double getMeasureValue(String metricKey) { Measure measure = getMeasure(metricKey); if (measure != null) { return measure.getValue(); } return null; }
public String getMeasureFormattedValue(String metricKey, String defaultValue) { Measure measure = getMeasure(metricKey); if (measure != null) { return measure.getFormattedValue(defaultValue); } return defaultValue; }
protected void addCell(Panel panel, Measure... measures) { if (measures != null) { String names = ""; String values = ""; boolean first = true; for (Measure measure : measures) { if (measure != null && measure.getFormattedValue() != null) { if (!first) { names += "<br/>"; values += "<br/>"; } names += "<b>" + measure.getMetricName() + "</b>: "; values += measure.getFormattedValue(); first = false; } } if (!first) { HTML html = new HTML(names); html.setStyleName("metric"); panel.add(html); html = new HTML(values); html.setStyleName("value"); panel.add(html); } } }
/** * {@inheritDoc} */ public List<Duplication> getDuplications() { Logs.INFO.info("Loading duplications for {}", getKey()); final Resource resource = index.getSonar().find(ResourceQuery.createForMetrics(getKey(), DuplicationUtils.DUPLICATIONS_DATA)); final Measure measure = resource.getMeasure(DuplicationUtils.DUPLICATIONS_DATA); if (measure == null) { return Collections.emptyList(); } final List<Duplication> duplications = DuplicationUtils.parse(measure.getData()); Logs.INFO.info("Loaded {} duplications: {}", duplications.size(), duplications); return DuplicationUtils.convertLines(duplications, getDiff()); }
private int initMostViolatedRulesFromNode(final Project project, final Resource mostViolatedNode) throws ReportException, IOException { RuleBuilder ruleBuilder = RuleBuilder.getInstance(credentials, sonar); List<org.sonar.wsclient.services.Measure> measuresNode = mostViolatedNode .getMeasures(); Iterator<org.sonar.wsclient.services.Measure> it = measuresNode.iterator(); if (!it.hasNext()) { LOG.warn("There is not result on select //resources/resource/msr"); } int count = 0; while (it.hasNext()) { org.sonar.wsclient.services.Measure measureNode = it.next(); String formattedValueNode = measureNode.getFormattedValue(); if (!formattedValueNode.equals("0")) { Rule rule = ruleBuilder.initFromNode(measureNode); if ("workbook".equals(pdfRefporter.getReportType())) { ruleBuilder.loadViolatedResources(rule, rule.getKey(), project.getKey()); } project.getMostViolatedRules().add(rule); count++; } } return count; }
/** * A FileInfo object could contain information about violations, ccn or * duplications, this cases are distinguished in function of content param, * and defined by project context. * * @param fileNode * DOM Node that contains file info * @param content * Type of content */ public static void initFromNode(final FileInfo fileInfo, final Resource fileNode, final int content) { fileInfo.setKey(fileNode.getKey()); fileInfo.setName(fileNode.getName()); if (content == FileInfo.VIOLATIONS_CONTENT) { fileInfo.setViolations(fileNode.getMeasure(MetricKeys.VIOLATIONS) .getFormattedValue()); } else if (content == FileInfo.CCN_CONTENT) { fileInfo.setComplexity(fileNode.getMeasure(MetricKeys.COMPLEXITY) .getFormattedValue()); } else if (content == FileInfo.DUPLICATIONS_CONTENT) { fileInfo.setDuplicatedLines(fileNode.getMeasure( MetricKeys.DUPLICATED_LINES).getFormattedValue()); } }