package hudson.plugins.PerfPublisher.matrixBuild; import hudson.plugins.PerfPublisher.Report.ReportContainer; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * This class encapsulates all the sub-builds results in it. * * @author gbossert * */ public class PerfPublisherMatrixBuild { /** * Number of the matrix build */ private int nbBuild; /** * A list of all the sub-builds */ private List<PerfPublisherMatrixSubBuild> children; /** * Create a new matrix build based on its build number * @param nbBuild number of the build */ public PerfPublisherMatrixBuild(int nbBuild) { this.nbBuild = nbBuild; children = new ArrayList<PerfPublisherMatrixSubBuild>(); } /** * Getter for the list of sub-builds * @return the list of sub-builds */ public List<PerfPublisherMatrixSubBuild> getSubBuilds() { return this.children; } /** * Add a sub-build to this matrix * @param child the sub-build to add */ public void addSubBuild(PerfPublisherMatrixSubBuild child) { children.add(child); } /** * Return the appropriate report for a list of combination * @param combination List of combination * @return the tests report */ public ReportContainer getReportForCombination(Map<String,String> combination) { ReportContainer result = null; for (int i=0; i<children.size(); i++) { if (children.get(i).hasCombination(combination)) { return children.get(i).getReport(); } } return result; } /** * Return all the different axis of this Matrix Build * @return a list of all the axis */ public List<String> getAxis() { List<String> result = new ArrayList<String>(); for (int i=0; i<children.size(); i++) { for (int j=0; j<children.get(i).getAxis().size(); j++) { if (!result.contains(children.get(i).getAxis().get(j))) { result.add(children.get(i).getAxis().get(j)); } } } return result; } public List<String> getAxisValues(String axe) { List<String> result = new ArrayList<String>(); for (int i=0; i<children.size(); i++) { for (int j=0; j<children.get(i).getAxisValues(axe).size(); j++) { if (!result.contains(children.get(i).getAxisValues(axe).get(j))) { result.add(children.get(i).getAxisValues(axe).get(j)); } } } return result; } public int getNbCombinations() { return this.children.size(); } public int getNbAxis() { return this.getAxis().size(); } }