1 // Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Philip Aston 2 // All rights reserved. 3 // 4 // This file is part of The Grinder software distribution. Refer to 5 // the file LICENSE which is part of The Grinder distribution for 6 // licensing details. The Grinder distribution is available on the 7 // Internet at http://grinder.sourceforge.net/ 8 // 9 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 10 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 11 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 12 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 13 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 14 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 15 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 16 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20 // OF THE POSSIBILITY OF SUCH DAMAGE. 21 22 package net.grinder.statistics; 23 24 import java.io.IOException; 25 import java.io.ObjectInput; 26 import java.io.ObjectOutput; 27 28 import net.grinder.util.Serialiser; 29 30 31 /** 32 * Factory for {@link StatisticsSet} objects. 33 * 34 * @author Philip Aston 35 */ 36 public final class StatisticsSetFactory { 37 38 private final Serialiser m_serialiser = new Serialiser(); 39 private final StatisticsIndexMap m_statisticsIndexMap; 40 41 StatisticsSetFactory(StatisticsIndexMap statisticsIndexMap) { 42 m_statisticsIndexMap = statisticsIndexMap; 43 } 44 45 /** 46 * Factory method. 47 * 48 * @return A new <code>StatisticsSet</code>. 49 */ 50 public StatisticsSet create() { 51 return new StatisticsSetImplementation(m_statisticsIndexMap); 52 } 53 54 void writeStatisticsExternal(ObjectOutput out, 55 StatisticsSetImplementation statistics) 56 throws IOException { 57 statistics.writeExternal(out, m_serialiser); 58 } 59 60 StatisticsSet readStatisticsExternal(ObjectInput in) throws IOException { 61 return new StatisticsSetImplementation(m_statisticsIndexMap, 62 in, 63 m_serialiser); 64 } 65 }