/** * Creates package node instance for a package with the given name. * * @param name * vm name of the package * @param classes * collection of all classes in this package * @param sourceFiles * collection of all source files in this package */ public PackageCoverageImpl(final String name, final Collection<IClassCoverage> classes, final Collection<ISourceFileCoverage> sourceFiles) { super(ElementType.PACKAGE, name); this.classes = classes; this.sourceFiles = sourceFiles; increment(sourceFiles); for (final IClassCoverage c : classes) { // We need to add only classes without a source file reference. // Classes associated with a source file are already included in the // SourceFileCoverage objects. if (c.getSourceFileName() == null) { increment(c); } } }
/** * Creates a 'class' element. * * @param coverage * class coverage node to write out * @return 'class' element * @throws IOException * in case of problems with the underlying output */ public ReportElement classElement(final IClassCoverage coverage) throws IOException { final ReportElement element = namedElement("class", coverage.getName()); element.attr("sourcefilename", coverage.getSourceFileName()); return element; }
public void visit(IClassFile classfile) throws JavaModelException { final String vmname = classfile.getType().getFullyQualifiedName() .replace('.', '/'); final IClassCoverage coverage = nodes.getClassCoverage(vmname); if (coverage != null) { modelcoverage.putClassFile(classfile, coverage); // Add source file coverage manually in case of binary roots // as we will not see compilation units: final ISourceFileCoverage source = nodes.getSourceFileCoverage( coverage.getPackageName(), coverage.getSourceFileName()); if (source != null) { sources.add(source); } } }
public void visitCoverage(final IClassCoverage coverage) { final String name = coverage.getName(); final IClassCoverage dup = classes.put(name, coverage); if (dup != null) { if (dup.getId() != coverage.getId()) { throw new IllegalStateException( "Can't add different class with same name: " + name); } } else { final String source = coverage.getSourceFileName(); if (source != null) { final SourceFileCoverageImpl sourceFile = getSourceFile(source, coverage.getPackageName()); sourceFile.increment(coverage); } } }
private void renderClasses() throws IOException { for (final IClassCoverage c : getNode().getClasses()) { if (!c.containsCode()) { continue; } final ILinkable sourceFilePage = packageSourcePage .getSourceFilePage(c.getSourceFileName()); final ClassPage page = new ClassPage(c, this, sourceFilePage, folder, context); page.render(); addItem(page); } }
classReport.setName(classCov.getName()); classReport.setParent(packageReport); classReport.setSrcFileInfo(classCov, executionFileLoader.getSrcDir() + "/" + packageCov.getName() + "/" + classCov.getSourceFileName());
@Override protected void content(HTMLElement body) throws IOException { if (getNode().isNoMatch()) { body.p().text( "A different version of class was executed at runtime."); } if (getNode().getLineCounter().getTotalCount() == 0) { body.p().text( "Class files must be compiled with debug information to show line coverage."); } final String sourceFileName = getNode().getSourceFileName(); if (sourceFileName == null) { body.p().text( "Class files must be compiled with debug information to link with source files."); } else if (sourcePage == null) { final String sourcePath; if (getNode().getPackageName().length() != 0) { sourcePath = getNode().getPackageName() + "/" + sourceFileName; } else { sourcePath = sourceFileName; } body.p().text("Source file \"" + sourcePath + "\" was not found during generation of report."); } super.content(body); }