/* * JasperReports - Free Java Reporting Library. * Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved. * http://www.jaspersoft.com * * Unless you have purchased a commercial license agreement from Jaspersoft, * the following license terms apply: * * This program is part of JasperReports. * * JasperReports 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 3 of the License, or * (at your option) any later version. * * JasperReports 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. * * You should have received a copy of the GNU Lesser General Public License * along with JasperReports. If not, see <http://www.gnu.org/licenses/>. */ package net.sf.jasperreports.engine; import net.sf.jasperreports.engine.util.FileResolver; /** * @author Teodor Danciu (teodord@users.sourceforge.net) * @version $Id: JRParameter.java 3033 2009-08-27 11:46:22Z teodord $ */ public interface JRParameter extends JRPropertiesHolder, JRCloneable { /** * A <tt>Map</tt> containing report parameters passed by users at fill time. */ public static final String REPORT_PARAMETERS_MAP = "REPORT_PARAMETERS_MAP"; /** * A <tt>net.sf.jasperreports.engine.JasperReport</tt> instance representing the current report template. */ public static final String JASPER_REPORT = "JASPER_REPORT"; /** * A <tt>java.sql.Connection</tt> needed to run the default report query. */ public static final String REPORT_CONNECTION = "REPORT_CONNECTION"; /** * An integer allowing users to limit the datasource size. */ public static final String REPORT_MAX_COUNT = "REPORT_MAX_COUNT"; /** * A {@link JRDataSource} instance representing the report data source. JasperReports defines some convenience implementations * of <tt>JRDataSource</tt>, but users may create their own data sources for specific needs. */ public static final String REPORT_DATA_SOURCE = "REPORT_DATA_SOURCE"; /** * A {@link JRAbstractScriptlet} containing an instance of the report scriptlet provided by the user. */ public static final String REPORT_SCRIPTLET = "REPORT_SCRIPTLET"; /** * A <tt>java.util.Locale</tt> instance containing the resource bundle desired locale. This parameter should be used in * conjunction with REPORT_RESOURCE_BUNDLE. */ public static final String REPORT_LOCALE = "REPORT_LOCALE"; /** * The <tt>java.util.ResourceBundle</tt> containing localized messages. If the resource bundle base name is specified at * design time, the engine will try to load the resource bundle using specified name and locale. */ public static final String REPORT_RESOURCE_BUNDLE = "REPORT_RESOURCE_BUNDLE"; /** * A <tt>java.util.TimeZone</tt> instance to use for date formatting. */ public static final String REPORT_TIME_ZONE = "REPORT_TIME_ZONE"; /** * The {@link JRVirtualizer JRVirtualizer} to be used for page virtualization. This parameter is optional. */ public static final String REPORT_VIRTUALIZER = "REPORT_VIRTUALIZER"; /** * A <tt>java.lang.ClassLoader</tt> instance to be used during the report filling process to load resources such * as images, fonts and subreport templates. */ public static final String REPORT_CLASS_LOADER = "REPORT_CLASS_LOADER"; /** * A <tt>java.net.URLStreamHandlerFactory</tt> instance to be used during the report filling process to * handle custom URL protocols for loading resources such as images, fonts and subreport templates. */ public static final String REPORT_URL_HANDLER_FACTORY = "REPORT_URL_HANDLER_FACTORY"; /** * A {@link FileResolver} instance to be used during the report filling process to * handle locate files on disk using relative paths. */ public static final String REPORT_FILE_RESOLVER = "REPORT_FILE_RESOLVER"; /** * A {@link net.sf.jasperreports.engine.util.FormatFactory FormatFactory} instance to be used * during the report filling process to create instances of <tt>java.text.DateFormat<tt> to format date text * fields and instances of <tt>java.text.NumberFormat<tt> to format numeric text fields. */ public static final String REPORT_FORMAT_FACTORY = "REPORT_FORMAT_FACTORY"; /** * Whether to use pagination. * <p> * If set to <code>true</code> the report will be generated on one long page. */ public static final String IS_IGNORE_PAGINATION = "IS_IGNORE_PAGINATION"; /** * A {@link java.util.Collection collection} of {@link JRTemplate templates} passed to the * report at fill time. * <p/> * These templates add to the ones specified in the report (see {@link JRReport#getTemplates()}). * In the final templates list they are placed after the report templates; therefore styles from * these templates can use and override styles in the report templates. * They are, however, placed before the report styles hence report styles can use and override * styles from these templates. */ public static final String REPORT_TEMPLATES = "REPORT_TEMPLATES"; /** * */ public String getName(); /** * */ public String getDescription(); /** * */ public void setDescription(String description); /** * */ public Class getValueClass(); /** * */ public String getValueClassName(); /** * */ public boolean isSystemDefined(); /** * */ public boolean isForPrompting(); /** * */ public JRExpression getDefaultValueExpression(); /** * Returns the parameter nested value type. * * <p> * The parameter nested value type is used when the parameter value class * is not sufficient in determining the expected type of the parameter values. * The most common such scenario is when the parameter value class is * {@link java.util.Collection} or a derived class, in which case the nested * type specifies the type of values which are to be placed inside the collection. * * @return the nested value type for this parameter, * or <code>null</code> if none set * * @see #getValueClass() */ public Class getNestedType(); /** * Returns the name of the parameter nested value type. * * @return the name of the nested value type for this parameter, * or <code>null</code> if none set * * @see #getNestedType() */ public String getNestedTypeName(); }