hudson.plugins.clover.results.ProjectCoverage Maven / Gradle / Ivy
package hudson.plugins.clover.results;
import hudson.model.AbstractBuild;
import hudson.model.Run;
import hudson.plugins.clover.CloverBuildAction;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
/**
* Clover Coverage results for the entire project.
* @author Stephen Connolly
*/
public class ProjectCoverage extends AbstractPackageAggregatedMetrics {
private List packageCoverages = new ArrayList();
public boolean addPackageCoverage(PackageCoverage result) {
return packageCoverages.add(result);
}
public List getPackageCoverages() {
return packageCoverages;
}
public List getChildren() {
return getPackageCoverages();
}
public PackageCoverage findPackageCoverage(String name) {
for (PackageCoverage i : packageCoverages) {
if (name.equals(i.getName())) return i;
}
return null;
}
public FileCoverage findFileCoverage(String name) {
for (PackageCoverage i : packageCoverages) {
FileCoverage j = i.findFileCoverage(name);
if (j != null) return j;
}
return null;
}
public ClassCoverage findClassCoverage(String name) {
for (PackageCoverage i : packageCoverages) {
final String prefix = i.getName() + '.';
if (name.startsWith(prefix)) {
ClassCoverage j = i.findClassCoverage(name);
if (j != null) return j;
}
}
return null;
}
public PackageCoverage getDynamic(String token, StaplerRequest req, StaplerResponse rsp) throws IOException {
return findPackageCoverage(token);
}
public AbstractCloverMetrics getPreviousResult() {
if (owner == null) return null;
Run prevBuild = owner.getPreviousBuild();
if (prevBuild == null) return null;
CloverBuildAction action = prevBuild.getAction(CloverBuildAction.class);
if (action == null) return null;
return action.getResult();
}
@Override
public void setOwner(AbstractBuild owner) {
super.setOwner(owner); //To change body of overridden methods use File | Settings | File Templates.
for (PackageCoverage p: packageCoverages) {
p.setOwner(owner);
}
}
}