01: /*
02: * @(#)FunctionMeasure.java
03: *
04: * Copyright (C) 2003 Matt Albrecht
05: * groboclown@users.sourceforge.net
06: * http://groboutils.sourceforge.net
07: *
08: * Permission is hereby granted, free of charge, to any person obtaining a
09: * copy of this software and associated documentation files (the "Software"),
10: * to deal in the Software without restriction, including without limitation
11: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12: * and/or sell copies of the Software, and to permit persons to whom the
13: * Software is furnished to do so, subject to the following conditions:
14: *
15: * The above copyright notice and this permission notice shall be included in
16: * all copies or substantial portions of the Software.
17: *
18: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24: * DEALINGS IN THE SOFTWARE.
25: */
26:
27: package net.sourceforge.groboutils.codecoverage.v2.module;
28:
29: import net.sourceforge.groboutils.codecoverage.v2.IAnalysisMetaData;
30: import net.sourceforge.groboutils.codecoverage.v2.IAnalysisModule;
31: import net.sourceforge.groboutils.codecoverage.v2.IMethodCode;
32:
33: /**
34: * Processes methods for function coverage analysis, which checks that each
35: * method/function has been invoked. Currently, this
36: * does not support localization.
37: *
38: * @author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
39: * @version $Date: 2004/04/15 05:48:26 $
40: * @since February 17, 2003
41: * @see IAnalysisMetaData
42: */
43: public class FunctionMeasure implements IAnalysisModule {
44: /**
45: * Returns the human-readable name of the measure.
46: */
47: public String getMeasureName() {
48: return "Function";
49: }
50:
51: /**
52: * Returns the unit name for this particular coverage measure.
53: */
54: public String getMeasureUnit() {
55: return "functions";
56: }
57:
58: /**
59: * Returns the text format used in meta-data formatted text. This should
60: * be the mime encoding type, such as "text/plain" or "text/html".
61: */
62: public String getMimeEncoding() {
63: return "text/plain";
64: }
65:
66: /**
67: * Perform the analysis on the method.
68: */
69: public void analyze(IMethodCode method) {
70: IAnalysisMetaData amd = createAnalysisMetaData(method
71: .getClassName(), method.getMethodName());
72: method.markInstruction(0, amd);
73: }
74:
75: private IAnalysisMetaData createAnalysisMetaData(String clazz,
76: String method) {
77: return new DefaultAnalysisMetaData("Method " + method
78: + " in class " + clazz, "Didn't ever invoke method "
79: + method + " in class " + clazz + ".", (byte) 0);
80: }
81: }
|