net.sourceforge.cobertura.coveragedata

Class ClassData

Implemented Interfaces:
Comparable, HasBeenInstrumented

public class ClassData
extends CoverageDataContainer
implements Comparable, HasBeenInstrumented

ProjectData 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.

Nested Class Summary

Field Summary

private Map
branches
Each key is a line number in this class, stored as an Integer object.
private Set
methodNamesAndDescriptors
private String
name
private static long
serialVersionUID
private String
sourceFileName

Constructor Summary

ClassData(String name)

Method Summary

void
addLine(int lineNumber, String methodName, String methodDescriptor)
int
compareTo(Object o)
This is required because we implement Comparable.
boolean
equals(Object obj)
Returns true if the given object is an instance of the ClassData class, and it contains the same data as this class.
String
getBaseName()
double
getBranchCoverageRate(String methodNameAndDescriptor)
Collection
getBranches()
long
getHitCount(int lineNumber)
double
getLineCoverageRate(String methodNameAndDescriptor)
private LineData
getLineData(int lineNumber)
SortedSet
getLines()
Collection
getLines(String methodNameAndDescriptor)
Set
getMethodNamesAndDescriptors()
String
getName()
int
getNumberOfValidBranches()
String
getPackageName()
String
getSourceFileName()
int
hashCode()
boolean
isBranch(int lineNumber)
boolean
isValidSourceLineNumber(int lineNumber)
Determine if a given line number is a valid line of code.
void
markLineAsBranch(int lineNumber)
void
merge(CoverageData coverageData)
Merge some existing instrumentation with this instrumentation.
void
removeLine(int lineNumber)
void
setSourceFileName(String sourceFileName)
void
touch(int lineNumber)
Increment the number of hits for a particular line of code.

Field Details

branches

private Map branches
Each key is a line number in this class, stored as an Integer object. Each value is information about the line, stored as a LineData object.


methodNamesAndDescriptors

private Set methodNamesAndDescriptors


name

private String name


serialVersionUID

private static final long serialVersionUID

Field Value:
5L


sourceFileName

private String sourceFileName

Constructor Details

ClassData

public ClassData(String name)

Method Details

addLine

public void addLine(int lineNumber,
                    String methodName,
                    String methodDescriptor)


compareTo

public int compareTo(Object o)
This is required because we implement Comparable.


equals

public boolean equals(Object obj)
Returns true if the given object is an instance of the ClassData class, and it contains the same data as this class.


getBaseName

public String getBaseName()


getBranchCoverageRate

public double getBranchCoverageRate(String methodNameAndDescriptor)

Returns:
The branch coverage rate for a particular method.


getBranches

public Collection getBranches()


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(String methodNameAndDescriptor)

Returns:
The line coverage rate for particular method


getLineData

private LineData getLineData(int lineNumber)


getLines

public SortedSet getLines()


getLines

public Collection getLines(String methodNameAndDescriptor)


getMethodNamesAndDescriptors

public Set getMethodNamesAndDescriptors()

Returns:
The method name and descriptor of each method found in the class represented by this instrumentation.


getName

public String getName()


getNumberOfValidBranches

public int getNumberOfValidBranches()

Returns:
The number of branches in this class.


getPackageName

public String getPackageName()


getSourceFileName

public String getSourceFileName()


hashCode

public int hashCode()


isBranch

public boolean isBranch(int lineNumber)

Returns:
True if the line contains a branch statement.


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.


markLineAsBranch

public void markLineAsBranch(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(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.