NodePage.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.report.html;
13
14import java.io.IOException;
15
16import org.jacoco.core.analysis.ICoverageNode;
17import org.jacoco.report.IReportVisitor;
18import org.jacoco.report.ISourceFileLocator;
19import org.jacoco.report.ReportOutputFolder;
20import org.jacoco.report.html.resources.Resources;
21import org.jacoco.report.html.table.ITableItem;
22
23/**
24 * Report page that represents a coverage node.
25 *
26 * @author Marc R. Hoffmann
27 * @version 0.4.1.20101007204400
28 */
29public abstract class NodePage extends ReportPage implements IReportVisitor,
30 ITableItem {
31
32 private ICoverageNode node;
33
34 /**
35 * Creates a new node page.
36 *
37 * @param node
38 * corresponding node
39 * @param parent
40 * optional hierarchical parent
41 * @param folder
42 * base folder to create this report in
43 * @param context
44 * settings context
45 */
46 protected NodePage(final ICoverageNode node, final ReportPage parent,
47 final ReportOutputFolder folder, final IHTMLReportContext context) {
48 super(parent, folder, context);
49 this.node = node;
50 }
51
52 public String getLinkStyle() {
53 return Resources.getElementStyle(node.getElementType());
54 }
55
56 public void visitEnd(final ISourceFileLocator sourceFileLocator)
57 throws IOException {
58 renderDocument();
59 this.node = node.getPlainCopy();
60 }
61
62 // === ICoverageTableItem ===
63
64 public String getLinkLabel() {
65 return node.getName();
66 }
67
68 public ICoverageNode getNode() {
69 return node;
70 }
71
72}