/* * Sun Public License * * The contents of this file are subject to the Sun Public License Version * 1.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is available at http://www.sun.com/ * * The Original Code is the SLAMD Distributed Load Generation Engine. * The Initial Developer of the Original Code is Neil A. Wilson. * Portions created by Neil A. Wilson are Copyright (C) 2004-2010. * Some preexisting portions Copyright (C) 2002-2006 Sun Microsystems, Inc. * All Rights Reserved. * * Contributor(s): Neil A. Wilson */ package com.slamd.report; import com.slamd.admin.RequestInfo; import com.slamd.job.Job; import com.slamd.job.OptimizingJob; import com.slamd.parameter.ParameterList; /** * This class defines the set of methods that must be implemented by any class * that provides a mechanism for generating reports of SLAMD data. * * * @author Neil A. Wilson */ public interface ReportGenerator { /** * Retrieves a user-friendly name that can be used to indicate the type of * report that will be generated. * * @return The user-friendly name that can be used to indicate the type of * report that will be generated. */ public String getReportGeneratorName(); /** * Retrieves a new instance of this report generator initialized with the * default configuration. * * @return A new instance of this report generator initialized with the * default configuration. */ public ReportGenerator newInstance(); /** * Retrieves a set of parameters that can be used to allow the user to * configure the way that the report is generated. * * @return A set of parameters that can be used to allow the user to * configure the way that the report is generated. */ public ParameterList getReportParameterStubs(); /** * Initializes this reporter based on the parameters customized by the end * user. * * @param reportParameters The set of parameters provided by the end user * that should be used to customize the report. */ public void initializeReporter(ParameterList reportParameters); /** * Indicates that information about the provided job should be included in the * report. * * @param job The job about which to include information in the report. */ public void addJobReport(Job job); /** * Indicates that information about the provided optimizing job should be * included in the report. * * @param optimizingJob The optimizing job about which to include * information in the report. */ public void addOptimizingJobReport(OptimizingJob optimizingJob); /** * Generates the report and sends it to the user over the provided servlet * response. * * @param requestInfo State information about the request being processed. */ public void generateReport(RequestInfo requestInfo); }