/** * {@inheritDoc} */ public Collection<SourceCode> getProjects() { ArrayList<SourceCode> result = Lists.newArrayList(); for (Resource resource : sonar.findAll(new ResourceQuery())) { result.add(new RemoteSourceCode(resource.getKey(), resource.getName()).setRemoteSonarIndex(this)); } return result; }
public Double getMeasureValue(String metricKey) { Measure measure = getMeasure(metricKey); if (measure != null) { return measure.getValue(); } return null; }
private void addAllMeasuresFromDocument(final Measures measures, final Resource resource) { List<org.sonar.wsclient.services.Measure> allNodes = resource.getMeasures(); Iterator<org.sonar.wsclient.services.Measure> it = allNodes.iterator(); while (it.hasNext()) { addMeasureFromNode(measures, it.next()); } try { Date dateNode = resource.getDate(); if (dateNode != null) { measures.setDate(dateNode); } String versionNode = resource.getVersion(); if (versionNode != null) { measures.setVersion(versionNode); } } catch (ParseException e) { LOG.error("Can not parse date", e); } }
/** * 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()); } }
public Measure getMeasure(String metricKey) { for (Measure measure : getMeasures()) { if (metricKey.equals(measure.getMetricKey())) { return measure; } } return null; }
/** * Initialize project object and his childs (except categories violations). */ private void initFromNode(final Project project, final Resource resourceNode) { project.setName(resourceNode.getName()); project.setDescription(resourceNode.getDescription()); project.setLinks(new LinkedList<String>()); project.setSubprojects(new LinkedList<Project>()); project.setMostViolatedRules(new LinkedList<Rule>()); project.setMostComplexFiles(new LinkedList<FileInfo>()); project.setMostDuplicatedFiles(new LinkedList<FileInfo>()); project.setMostViolatedFiles(new LinkedList<FileInfo>()); }
private void loadMeasures(Resource resource) { ResourceQuery query = ResourceQuery.createForMetrics(resource.getKey(), metrics).setVerbose(true); Sonar.getInstance().find(query, new AbstractCallback<Resource>() { @Override protected void doOnResponse(Resource resource) { display(header, resource); } }); }
public static ResourceQuery createForResource(Resource resource, String... metricKeys) { Integer id = resource.getId(); if (id == null) { throw new IllegalArgumentException("id must be set"); } return new ResourceQuery(id.toString()) .setMetrics(metricKeys); }
public Integer getMeasureIntValue(String metricKey) { Double d = getMeasureValue(metricKey); if (d != null) { return d.intValue(); } return null; }
@Override protected Resource parse(Object json) { Resource resource = new Resource(); parseResourceFields(json, resource); parseMeasures(json, resource); return resource; }
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; }
public static TimeMachineQuery createForMetrics(Resource resource, String... metricKeys) { Integer id = resource.getId(); if (id == null) { throw new IllegalArgumentException("id must be set"); } return new TimeMachineQuery(id.toString()).setMetrics(metricKeys); }
/** * {@inheritDoc} */ public Set<SourceCode> getChildren() { if (children == null) { ResourceQuery query = new ResourceQuery().setDepth(1).setResourceKeyOrId(getKey()); Collection<Resource> resources = index.getSonar().findAll(query); children = new HashSet<SourceCode>(); for (Resource resource : resources) { children.add(new RemoteSourceCode(resource.getKey(), resource.getName()).setRemoteSonarIndex(index)); } } return children; }
public String getMeasureFormattedValue(String metricKey, String defaultValue) { Measure measure = getMeasure(metricKey); if (measure != null) { return measure.getFormattedValue(defaultValue); } return defaultValue; }
/** * {@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; }
/** * {@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()); }
/** * {@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>()); } }