PackageCoverage.java
1/*******************************************************************************
2 * Copyright (c) 2009 Mountainminds GmbH & Co. KG and others
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Marc R. Hoffmann - initial API and implementation
10 *
11 * $Id: $
12 *******************************************************************************/
13package org.jacoco.core.analysis;
14
15import java.util.Collection;
16
17/**
18 * Coverage data of a Java package. The name of this data node is the package
19 * name in VM notation (slash separated). The name of the default package is the
20 * empty string.
21 *
22 * @author Marc R. Hoffmann
23 * @version $Revision: $
24 */
25public class PackageCoverage extends CoverageNodeImpl {
26
27 private final Collection<ClassCoverage> classes;
28
29 private final Collection<SourceFileCoverage> sourceFiles;
30
31 /**
32 * Creates package node instance for a package with the given name.
33 *
34 * @param name
35 * vm name of the package
36 * @param classes
37 * collection of all classes in this package
38 * @param sourceFiles
39 * collection of all source files in this package
40 */
41 public PackageCoverage(final String name,
42 final Collection<ClassCoverage> classes,
43 final Collection<SourceFileCoverage> sourceFiles) {
44 super(ElementType.PACKAGE, name, false);
45 this.classes = classes;
46 this.sourceFiles = sourceFiles;
47 increment(sourceFiles);
48 for (final ClassCoverage c : classes) {
49 // We need to add only classes without a source file reference.
50 // Classes associated with a source file are already included in the
51 // SourceFileCoverage objects.
52 if (c.getSourceFileName() == null) {
53 increment(c);
54 }
55 }
56 }
57
58 /**
59 * Returns all classes contained in this package.
60 *
61 * @return all classes
62 */
63 public Collection<ClassCoverage> getClasses() {
64 return classes;
65 }
66
67 /**
68 * Returns all source files in this package.
69 *
70 * @return all source files
71 */
72 public Collection<SourceFileCoverage> getSourceFiles() {
73 return sourceFiles;
74 }
75
76}