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 a specific file. * @author Stephen Connolly */ public class FileCoverage extends AbstractClassAggregatedMetrics { private List<ClassCoverage> classCoverages = new ArrayList<ClassCoverage>(); public List<ClassCoverage> getChildren() { return getClassCoverages(); } public ClassCoverage getDynamic(String token, StaplerRequest req, StaplerResponse rsp) throws IOException { return findClassCoverage(token); } public boolean addClassCoverage(ClassCoverage result) { return classCoverages.add(result); } public List<ClassCoverage> getClassCoverages() { return classCoverages; } public ClassCoverage findClassCoverage(String name) { for (ClassCoverage i : classCoverages) { if (name.equals(i.getName())) return i; } return null; } 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.findFileCoverage(getName()); } public void setOwner(AbstractBuild owner) { super.setOwner(owner); //To change body of overridden methods use File | Settings | File Templates. for (ClassCoverage classCoverage : classCoverages) { classCoverage.setOwner(owner); } } }