net.sf.jasperreports.engine.component.FillContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jasperreports Show documentation
Show all versions of jasperreports Show documentation
Free Java Reporting Library
/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2019 TIBCO Software Inc. 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 .
*/
package net.sf.jasperreports.engine.component;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.TimeZone;
import net.sf.jasperreports.engine.JRComponentElement;
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JROrigin;
import net.sf.jasperreports.engine.JRPrintElement;
import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.fill.FillContainerContext;
import net.sf.jasperreports.engine.fill.JRBaseFiller;
import net.sf.jasperreports.engine.fill.JRFillExpressionEvaluator;
import net.sf.jasperreports.engine.fill.PrintElementOriginator;
import net.sf.jasperreports.engine.type.EvaluationTimeEnum;
/**
* A fill context provides access to data and functionality related to a
* report component fill.
*
* @author Lucian Chirita ([email protected])
*/
public interface FillContext extends JRFillExpressionEvaluator
{
/**
* Returns the component element that wraps the component.
*
* @return the current component element
*/
JRComponentElement getComponentElement();
/**
* Returns the fill element Id associated to the component element.
*
* @return the Id of the component fill element
* @see JRPrintElement#getSourceElementId()
* @see #getPrintElementOriginator()
*/
int getElementSourceId();
/**
* Returns a generator for print Ids for the component element.
*
* @return a generator for print Ids
* @see JRPrintElement#getSourceElementId()
* @see JRPrintElement#getPrintElementId()
*/
PrintElementOriginator getPrintElementOriginator();
/**
* Evaluates an expression in the main report dataset.
*
* @param expression the expression to evaluate
* @param evaluation the evaluation type; usually directly passed from
* {@link FillComponent#evaluate(byte)}
* @return the result of the evaluation
* @throws JRException
*/
@Override
Object evaluate(JRExpression expression, byte evaluation) throws JRException;
/**
* Returns the default style provider for the generated report.
*
* @return the default style provider of the generated report
*/
JRDefaultStyleProvider getDefaultStyleProvider();
/**
* Returns the origin of the current component element.
*
* @return the origin of the component element
*/
JROrigin getElementOrigin();
/**
* Returns the position on the vertical axis where the component element
* starts printing.
*
* @return the position on the vertical axis of the component element
*/
int getElementPrintY();
/**
* Returns the current style of the component element.
*
* @return the current style of the component element
*/
JRStyle getElementStyle();
/**
* Registers a delayed evaluation for a print element.
*
* @param printElement the print element
* @param evaluationTime the delayed evaluation time; one of
*
* - {@link EvaluationTimeEnum#BAND}
*
- {@link EvaluationTimeEnum#COLUMN}
*
- {@link EvaluationTimeEnum#PAGE}
*
- {@link EvaluationTimeEnum#GROUP}
*
- {@link EvaluationTimeEnum#REPORT}
*
* @param evaluationGroup the evaluation group name, if
* evaluationTime
is {@link EvaluationTimeEnum#GROUP}
* @see FillComponent#evaluateDelayedElement(JRPrintElement, byte)
*/
void registerDelayedEvaluation(JRPrintElement printElement,
EvaluationTimeEnum evaluationTime, String evaluationGroup);
/**
* Returns the resource bundle used for the current report.
*
* @return the report resource bundle
* @see net.sf.jasperreports.engine.JRReport#getResourceBundle()
* @see net.sf.jasperreports.engine.JRParameter#REPORT_RESOURCE_BUNDLE
*/
ResourceBundle getReportResourceBundle();
/**
* Returns the locale used to fill the current report.
*
* @return the report locale
* @see net.sf.jasperreports.engine.JRParameter#REPORT_LOCALE
*/
Locale getReportLocale();
/**
* Returns the time zone used to fill the current report.
*
* @return the report time zone
* @see net.sf.jasperreports.engine.JRParameter#REPORT_TIME_ZONE
*/
TimeZone getReportTimezone();
/**
* Returns the filler object.
*
* @return the filler object
*/
JRBaseFiller getFiller();
FillContainerContext getFillContainerContext();
//TODO access to params/fields/vars?
}