Class JRCalculator
- java.lang.Object
-
- net.sf.jasperreports.engine.fill.JRCalculator
-
- All Implemented Interfaces:
JRFillExpressionEvaluator
public class JRCalculator extends Object implements JRFillExpressionEvaluator
Evaluates JasperReports expressions.The expressions calculator is the entity inside JasperReports that evaluates expressions and increments variables or datasets at report-filling time. When a report template is compiled, the report compiler produces and stores in the compiled report template (
JasperReport
object) information that it will use at report-filling time to build an instance of theJRCalculator
class.The Java-based report compilers generate a Java source file and compile it on the fly. This generated class is a subclass of the
JRCalculator
, and the bytecode produced by compiling it is stored inside theJasperReport
object. At report-filling time, this bytecode is loaded and the resulting class is instantiated to obtain the calculator object needed for expression evaluation.Only the report compiler creates the calculator instance because only the report compiler can make sense of the information it stored in the compiled report template at report compilation time.
- Author:
- Teodor Danciu (teodord@users.sourceforge.net)
-
-
Field Summary
Fields Modifier and Type Field Description protected JRFillDataset
dataset
protected JRFillElementDataset[]
datasets
protected Map<String,JRFillField>
fldsm
protected JRFillGroup[]
groups
protected Map<String,JRFillGroup>
grpsm
protected Map<String,JRFillParameter>
parsm
protected JRFillVariable[]
variables
protected Map<String,JRFillVariable>
varsm
-
Constructor Summary
Constructors Modifier Constructor Description protected
JRCalculator(DatasetExpressionEvaluator evaluator)
Creates a calculator using an expression evaluator.protected
JRCalculator(JREvaluator evaluator)
Creates a calculator using an expression evaluator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
calculateVariables(boolean incrementDatasets)
void
estimateGroupRuptures()
Determines group breaks based on estimated report values.void
estimateVariables()
Object
evaluate(JRExpression expression)
Object
evaluate(JRExpression expression, byte evaluationType)
Evaluates an expression.Object
evaluateEstimated(JRExpression expression)
Object
evaluateOld(JRExpression expression)
JRFillVariable
getColumnNumber()
JRFillDataset
getFillDataset()
Returns the dataset used by the expression evaluator.JRFillVariable
getPageNumber()
protected void
init(JRFillDataset dataset)
Initializes the calculator.void
initializeVariables(ResetTypeEnum resetType, IncrementTypeEnum incrementType)
protected void
recalculateVariables()
-
-
-
Field Detail
-
dataset
protected JRFillDataset dataset
-
parsm
protected Map<String,JRFillParameter> parsm
-
fldsm
protected Map<String,JRFillField> fldsm
-
varsm
protected Map<String,JRFillVariable> varsm
-
grpsm
protected Map<String,JRFillGroup> grpsm
-
variables
protected JRFillVariable[] variables
-
groups
protected JRFillGroup[] groups
-
datasets
protected JRFillElementDataset[] datasets
-
-
Constructor Detail
-
JRCalculator
protected JRCalculator(DatasetExpressionEvaluator evaluator)
Creates a calculator using an expression evaluator.- Parameters:
evaluator
- the expression evaluator
-
JRCalculator
protected JRCalculator(JREvaluator evaluator)
Creates a calculator using an expression evaluator.- Parameters:
evaluator
- the expression evaluator
-
-
Method Detail
-
init
protected void init(JRFillDataset dataset) throws JRException
Initializes the calculator.- Parameters:
dataset
- the dataset this calculator is used for- Throws:
JRException
-
getPageNumber
public JRFillVariable getPageNumber()
-
getColumnNumber
public JRFillVariable getColumnNumber()
-
calculateVariables
public void calculateVariables(boolean incrementDatasets) throws JRException
- Throws:
JRException
-
recalculateVariables
protected void recalculateVariables() throws JRException
- Throws:
JRException
-
estimateVariables
public void estimateVariables() throws JRException
- Throws:
JRException
-
estimateGroupRuptures
public void estimateGroupRuptures() throws JRException
Determines group breaks based on estimated report values.estimateVariables()
needs to be called prior to this method.- Throws:
JRException
-
initializeVariables
public void initializeVariables(ResetTypeEnum resetType, IncrementTypeEnum incrementType) throws JRException
- Throws:
JRException
-
evaluate
public Object evaluate(JRExpression expression, byte evaluationType) throws JRException
Description copied from interface:JRFillExpressionEvaluator
Evaluates an expression.- Specified by:
evaluate
in interfaceJRFillExpressionEvaluator
- Parameters:
expression
- the expression to evaluateevaluationType
- one ofJRExpression.EVALUATION_DEFAULT
,JRExpression.EVALUATION_OLD
,JRExpression.EVALUATION_ESTIMATED
- Returns:
- the result
- Throws:
JRException
-
evaluateOld
public Object evaluateOld(JRExpression expression) throws JRExpressionEvalException
- Throws:
JRExpressionEvalException
-
evaluateEstimated
public Object evaluateEstimated(JRExpression expression) throws JRExpressionEvalException
- Throws:
JRExpressionEvalException
-
evaluate
public Object evaluate(JRExpression expression) throws JRExpressionEvalException
- Throws:
JRExpressionEvalException
-
getFillDataset
public JRFillDataset getFillDataset()
Description copied from interface:JRFillExpressionEvaluator
Returns the dataset used by the expression evaluator.- Specified by:
getFillDataset
in interfaceJRFillExpressionEvaluator
-
-