PackageCoverage.java
1/*******************************************************************************
2 * Copyright (c) 2009, 2010 Mountainminds GmbH & Co. KG and Contributors
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 *******************************************************************************/
12package org.jacoco.core.analysis;
13
14import java.util.Collection;
15
16/**
17 * Coverage data of a Java package. The name of this data node is the package
18 * name in VM notation (slash separated). The name of the default package is the
19 * empty string.
20 *
21 * @author Marc R. Hoffmann
22 * @version 0.4.1.20101007204400
23 */
24public class PackageCoverage extends CoverageNodeImpl {
25
26 private final Collection<ClassCoverage> classes;
27
28 private final Collection<SourceFileCoverage> sourceFiles;
29
30 /**
31 * Creates package node instance for a package with the given name.
32 *
33 * @param name
34 * vm name of the package
35 * @param classes
36 * collection of all classes in this package
37 * @param sourceFiles
38 * collection of all source files in this package
39 */
40 public PackageCoverage(final String name,
41 final Collection<ClassCoverage> classes,
42 final Collection<SourceFileCoverage> sourceFiles) {
43 super(ElementType.PACKAGE, name, false);
44 this.classes = classes;
45 this.sourceFiles = sourceFiles;
46 increment(sourceFiles);
47 for (final ClassCoverage c : classes) {
48 // We need to add only classes without a source file reference.
49 // Classes associated with a source file are already included in the
50 // SourceFileCoverage objects.
51 if (c.getSourceFileName() == null) {
52 increment(c);
53 }
54 }
55 }
56
57 /**
58 * Returns all classes contained in this package.
59 *
60 * @return all classes
61 */
62 public Collection<ClassCoverage> getClasses() {
63 return classes;
64 }
65
66 /**
67 * Returns all source files in this package.
68 *
69 * @return all source files
70 */
71 public Collection<SourceFileCoverage> getSourceFiles() {
72 return sourceFiles;
73 }
74
75}