/******************************************************************************** * CruiseControl, a Continuous Integration Toolkit * Copyright (c) 2004, ThoughtWorks, Inc. * 200 E. Randolph, 25th Floor * Chicago, IL 60601 USA * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * + Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * + Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the * names of its contributors may be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ********************************************************************************/ package net.sourceforge.cruisecontrol; import java.io.Serializable; import java.util.Collections; import java.util.Iterator; import java.util.List; public final class BuildInfoSummary implements Serializable { private static final long serialVersionUID = 994064080136410358L; private final List<BuildInfo> buildInfoList; private final int numBrokenBuilds; private final int numSuccessfulBuilds; public BuildInfoSummary(final List<BuildInfo> buildInfoList) { this.buildInfoList = Collections.unmodifiableList(buildInfoList); int brokenBuildsCounter = 0; int successfulBuildsCounter = 0; for (final BuildInfo buildInfo : buildInfoList) { if (buildInfo.isSuccessful()) { successfulBuildsCounter++; } else { brokenBuildsCounter++; } } numBrokenBuilds = brokenBuildsCounter; numSuccessfulBuilds = successfulBuildsCounter; } /** * @return Returns the buildInfoList. */ public List getBuildInfoList() { return buildInfoList; } /** * @return Returns the numBrokenBuilds. */ public int getNumBrokenBuilds() { return numBrokenBuilds; } /** * @return Returns the numSuccessfulBuilds. */ public int getNumSuccessfulBuilds() { return numSuccessfulBuilds; } public Iterator<BuildInfo> iterator() { return buildInfoList.iterator(); } public int size() { return buildInfoList.size(); } public BuildInfo[] asArray() { return buildInfoList.toArray(new BuildInfo[buildInfoList.size()]); } }