net.sourceforge.cobertura.coverage
Class CoverageData

java.lang.Object
  extended bynet.sourceforge.cobertura.coverage.CoverageData
All Implemented Interfaces:
HasBeenInstrumented, java.io.Serializable

public class CoverageData
extends java.lang.Object
implements HasBeenInstrumented, java.io.Serializable

CoverageData information is typically serialized to a file. An instance of this class records coverage information for a single class that has been instrumented.

This class implements HasBeenInstrumented so that when cobertura instruments itself, it will omit this class. It does this to avoid an infinite recursion problem because instrumented classes make use of this class.

See Also:
Serialized Form

Field Summary
private  java.util.Map conditionals
          Each key is a line number in this class, stored as an Integer object.
private  java.util.Map lines
          Each key is a line number in this class, stored as an Integer object.
private  java.util.Set methodNamesAndDescriptors
           
private static long serialVersionUID
           
private  java.lang.String sourceFileName
           
 
Constructor Summary
CoverageData()
           
 
Method Summary
 void addLine(int lineNumber, java.lang.String methodName, java.lang.String methodDescriptor)
           
 double getBranchCoverageRate()
           
 double getBranchCoverageRate(java.lang.String methodNameAndDescriptor)
           
 java.util.Set getConditionals()
           
 long getHitCount(int lineNumber)
           
 double getLineCoverageRate()
           
 double getLineCoverageRate(java.lang.String methodNameAndDescriptor)
           
private  LineInformation getLineInformation(int lineNumber)
           
 java.util.Set getMethodNamesAndDescriptors()
           
 int getNumberOfCoveredBranches()
           
 int getNumberOfCoveredLines()
           
 int getNumberOfValidBranches()
           
 int getNumberOfValidLines()
           
 java.lang.String getSourceFileName()
           
 java.util.Set getValidLineNumbers()
           
 boolean isValidSourceLineNumber(int lineNumber)
          Determine if a given line number is a valid line of code.
 void markLineAsConditional(int lineNumber)
           
 void merge(CoverageData coverageData)
          Merge some existing instrumentation with this instrumentation.
 void removeLine(int lineNumber)
           
 void setSourceFileName(java.lang.String sourceFileName)
           
 void touch(int lineNumber)
          Increment the number of hits for a particular line of code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

conditionals

private java.util.Map conditionals
Each key is a line number in this class, stored as an Integer object. Each value is information about the line, stored as a LineInformation object.


lines

private java.util.Map lines
Each key is a line number in this class, stored as an Integer object. Each value is information about the line, stored as a LineInformation object.


methodNamesAndDescriptors

private java.util.Set methodNamesAndDescriptors

sourceFileName

private java.lang.String sourceFileName
Constructor Detail

CoverageData

public CoverageData()
Method Detail

addLine

public void addLine(int lineNumber,
                    java.lang.String methodName,
                    java.lang.String methodDescriptor)

getBranchCoverageRate

public double getBranchCoverageRate()
Returns:
The branch coverage rate for the class.

getBranchCoverageRate

public double getBranchCoverageRate(java.lang.String methodNameAndDescriptor)
Returns:
The branch coverage rate for a particular method.

getConditionals

public java.util.Set getConditionals()

getHitCount

public long getHitCount(int lineNumber)
Parameters:
lineNumber - The source code line number.
Returns:
The number of hits a particular line of code has.

getLineCoverageRate

public double getLineCoverageRate()
Returns:
The line coverage rate for the class

getLineCoverageRate

public double getLineCoverageRate(java.lang.String methodNameAndDescriptor)
Returns:
The line coverage rate for particular method

getLineInformation

private LineInformation getLineInformation(int lineNumber)

getMethodNamesAndDescriptors

public java.util.Set getMethodNamesAndDescriptors()
Returns:
The method name and descriptor of each method found in the class represented by this instrumentation.

getNumberOfCoveredBranches

public int getNumberOfCoveredBranches()
Returns:
The number of branches in this class covered by testing.

getNumberOfCoveredLines

public int getNumberOfCoveredLines()
Returns:
The number of lines in this class covered by testing.

getNumberOfValidBranches

public int getNumberOfValidBranches()
Returns:
The number of branches in this class.

getNumberOfValidLines

public int getNumberOfValidLines()
Returns:
The number of lines in this class.

getSourceFileName

public java.lang.String getSourceFileName()

getValidLineNumbers

public java.util.Set getValidLineNumbers()
Returns:
The set of valid source line numbers

isValidSourceLineNumber

public boolean isValidSourceLineNumber(int lineNumber)
Determine if a given line number is a valid line of code.

Returns:
True if the line contains executable code. False if the line is empty, or a comment, etc.

markLineAsConditional

public void markLineAsConditional(int lineNumber)

merge

public void merge(CoverageData coverageData)
Merge some existing instrumentation with this instrumentation.

Parameters:
coverageData - Some existing coverage data.

removeLine

public void removeLine(int lineNumber)

setSourceFileName

public void setSourceFileName(java.lang.String sourceFileName)

touch

public void touch(int lineNumber)
Increment the number of hits for a particular line of code.

Parameters:
lineNumber - the line of code to increment the number of hits.