/* * This library is part of OpenCms - * the Open Source Content Management System * * Copyright (c) Alkacon Software GmbH (http://www.alkacon.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * For further information about Alkacon Software GmbH, please see the * company website: http://www.alkacon.com * * For further information about OpenCms, please see the * project website: http://www.opencms.org * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package org.opencms.report; import org.opencms.i18n.CmsMessageContainer; import java.util.List; import java.util.Locale; /** * This is the interface for the report classes which are used for the output * during operations that run on a spearate Thread in OpenCms, * like publish, import, export etc.<p> * * @since 6.0.0 */ public interface I_CmsReport { /** Indicates default formatting. */ int FORMAT_DEFAULT = 0; /** Indicates error formatting. */ int FORMAT_ERROR = 5; /** Indicates headline formatting. */ int FORMAT_HEADLINE = 2; /** Indicates note formatting. */ int FORMAT_NOTE = 3; /** Indicates OK formatting. */ int FORMAT_OK = 4; /** Indicates warning formatting. */ int FORMAT_WARNING = 1; /** Request parameter value that this report should create an "extended" output. */ String REPORT_TYPE_EXTENDED = "extended"; /** Request parameter value that this report should create a "simple" output. */ String REPORT_TYPE_SIMPLE = "simple"; /** * Adds an error object to the list of errors that occurred during the report.<p> * * @param obj the error object */ void addError(Object obj); /** * Adds a warning object to the list of warnings that occurred during the report.<p> * * @param obj the error object */ void addWarning(Object obj); /** * Formats the runtime formatted as "hh:mm:ss".<p> * * @return the runtime formatted as "hh:mm:ss" */ String formatRuntime(); /** * Returns a list of all errors that occurred during the report.<p> * * @return an error list that occurred during the report */ List<Object> getErrors(); /** * Returns the time of last report entry.<p> * * Will return zero if no entry has been written.<p> * * @return time of last report entry */ long getLastEntryTime(); /** * Returns the locale this report was initialized with.<p> * * @return the locale this report was initialized with */ Locale getLocale(); /** * Updates this report, this processes all new output added since * the last call to this method.<p> * * This is only required in case the output is written to a HTML page, * if the shell output is used, this will just return an empty String.<p> * * @return new elements that have been added to the report and not yet processed. */ String getReportUpdate(); /** * Returns the time this report has been running.<p> * * @return the time this report has been running */ long getRuntime(); /** * Returns the original site root of the user who started this report, * or <code>null</code> if the original site root has not been set.<p> * * @return the original site root of the user who started this report */ String getSiteRoot(); /** * Returns a list of all warnings that occurred during the report.<p> * * @return a warning list that occurred during the report */ List<Object> getWarnings(); /** * Returns if the report generated an error output.<p> * * @return true if the report generated an error, otherwise false */ boolean hasError(); /** * Returns if the report generated a warning output.<p> * * @return true if the report generated a warning, otherwise false */ boolean hasWarning(); /** * Prints a localized message to the report.<p> * * @param container the String to add */ void print(CmsMessageContainer container); /** * Prints a localized message to the report, using the indicated formatting.<p> * * Use the contants starting with <code>FORMAT</code> from this interface * to indicate which formatting to use.<p> * * @param container the String to add * @param format the formatting to use for the output */ void print(CmsMessageContainer container, int format); /** * Adds a line break to the report.<p> */ void println(); /** * Prints a localized message to the report.<p> * * @param container the message container to add */ void println(CmsMessageContainer container); /** * Prints a localized message to the report, using the indicated formatting.<p> * * Use the contants starting with <code>FORMAT</code> from this interface * to indicate which formatting to use.<p> * * @param container the message container to add * @param format the formatting to use for the output */ void println(CmsMessageContainer container, int format); /** * Adds an Exception to the report, ensuring that the Exception content is * processed to generate a valid output esp. for HTML pages.<p> * * The exception will be stored and the output will later be processed * in a special way.<p> * * @param t the exception to add */ void println(Throwable t); /** * Prints a localized message followed by a parametera and dots to the report.<p> * * @param container the Message to add * @param param the Parameter to add */ void printMessageWithParam(CmsMessageContainer container, Object param); /** * Convenience method to print a localized message, followed by a parameter and dots to the report.<p> * * The output follows the pattern: ( 3 / 8 ) Deleting filename.txt ... * * @param m the number of the report output * @param n the total number of report outputs * @param container the Message to add * @param param the Parameter to add * */ void printMessageWithParam(int m, int n, CmsMessageContainer container, Object param); /** * Removes the report site root prefix from the absolute path in the resource name, * that is adjusts the resource name for the report site root.<p> * * If the site root for this report has not been set, * or the resource name does not start with the report site root, * the name it is left untouched.<p> * * @param resourcename the resource name (full path) * * @return the resource name adjusted for the report site root * * @see org.opencms.file.CmsRequestContext#removeSiteRoot(String) */ String removeSiteRoot(String resourcename); /** * Resets the runtime to 0 milliseconds.<p> */ void resetRuntime(); }