Class JRAbstractCompiler
java.lang.Object
net.sf.jasperreports.engine.design.JRAbstractCompiler
- All Implemented Interfaces:
JRCompiler
- Direct Known Subclasses:
JavaScriptCompilerBase,JRAbstractJavaCompiler
Base class for report compilers.
- Author:
- Lucian Chirita (lucianc@users.sourceforge.net)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected final JasperReportsContextprotected ReportClassFilterFields inherited from interface net.sf.jasperreports.engine.design.JRCompiler
COMPILER_CLASS, COMPILER_CLASSPATH, COMPILER_KEEP_JAVA_FILE, COMPILER_PREFIX, COMPILER_TEMP_DIR -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJRAbstractCompiler(JasperReportsContext jasperReportsContext, boolean needsSourceFiles) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidcheckLanguage(String language) Checks that the report language is supported by the compiler.final JasperReportcompileReport(JasperDesign jasperDesign) Compiles a report design.protected abstract StringcompileUnits(JRCompilationUnit[] units, String classpath, File tempDirFile) Compiles several expression evaluator units.protected ReportExpressionEvaluationDataprotected JREvaluatorcreateEvaluator(Serializable compileData, String unitName) protected DirectExpressionValueFilterprotected DirectExpressionValueFilterprotected abstract JRCompilationSourceCodegenerateSourceCode(JRSourceCompileTask sourceTask) Generates expression evaluator code.protected Stringprotected FilegetSourceFile(File saveSourceDir, String unitName, JRCompilationSourceCode sourceCode) protected abstract StringgetSourceFileName(String unitName) Returns the name of the source file where generated source code for an unit is saved.static StringgetUnitName(JasperReport report, JRCrosstab crosstab) Returns the name of the expression evaluator unit for a crosstab of a report.static StringgetUnitName(JasperReport report, JRDataset dataset) Returns the name of the expression evaluator unit for a dataset of a report.protected static StringgetUnitName(JRReport report, int crosstabId, String nameSuffix) protected static StringgetUnitName(JRReport report, JRCrosstab crosstab, JRExpressionCollector expressionCollector, String nameSuffix) protected static StringgetUnitName(JRReport report, JRDataset dataset, String nameSuffix) protected abstract JREvaluatorloadEvaluator(Serializable compileData, String unitName) Creates an expression evaluator instance from data saved when the report was compiled.loadEvaluator(JasperReport jasperReport) Loads the evaluator for a report's main dataset.loadEvaluator(JasperReport jasperReport, JRCrosstab crosstab) Loads a expression evaluator class for a crosstab of a report.loadEvaluator(JasperReport jasperReport, JRDataset dataset) Loads a expression evaluator class for a dataset of a report.
-
Field Details
-
EXCEPTION_MESSAGE_KEY_CROSSTAB_ID_NOT_FOUND
- See Also:
-
EXCEPTION_MESSAGE_KEY_DESIGN_COMPILE_ERROR
- See Also:
-
EXCEPTION_MESSAGE_KEY_LANGUAGE_NOT_SUPPORTED
- See Also:
-
EXCEPTION_MESSAGE_KEY_REPORT_EXPRESSIONS_COMPILE_ERROR
- See Also:
-
EXCEPTION_MESSAGE_KEY_TEMP_DIR_NOT_FOUND
- See Also:
-
jasperReportsContext
-
reportClassFilter
-
-
Constructor Details
-
JRAbstractCompiler
Constructor.- Parameters:
needsSourceFiles- whether the compiler needs source files or is able to do in memory compilationIf true, the generated code is saved in source files to be used by the compiler.
-
-
Method Details
-
getUnitName
Returns the name of the expression evaluator unit for a dataset of a report.- Parameters:
report- the reportdataset- the dataset- Returns:
- the generated expression evaluator unit name
-
getUnitName
-
getUnitName
Returns the name of the expression evaluator unit for a crosstab of a report.- Parameters:
report- the reportcrosstab- the crosstab- Returns:
- the generated expression evaluator unit name
-
getUnitName
protected static String getUnitName(JRReport report, JRCrosstab crosstab, JRExpressionCollector expressionCollector, String nameSuffix) -
getUnitName
-
compileReport
Description copied from interface:JRCompilerCompiles a report design.The compilation consists of verification of the design, generation of expression evaluators and construction of a serializable read-only version of the report.
A report compiler should usually extend
JRAbstractCompiler.- Specified by:
compileReportin interfaceJRCompiler- Parameters:
jasperDesign- the report design- Returns:
- the compiled report
- Throws:
JRException
-
createCompileData
-
getCompilerClass
-
getSourceFile
protected File getSourceFile(File saveSourceDir, String unitName, JRCompilationSourceCode sourceCode) -
loadEvaluator
Description copied from interface:JRCompilerLoads the evaluator for a report's main dataset.- Specified by:
loadEvaluatorin interfaceJRCompiler- Parameters:
jasperReport- the report- Returns:
- the evaluator for the report's main dataset
- Throws:
JRException
-
loadEvaluator
Description copied from interface:JRCompilerLoads a expression evaluator class for a dataset of a report.- Specified by:
loadEvaluatorin interfaceJRCompiler- Parameters:
jasperReport- the reportdataset- the dataset- Returns:
- an instance of the dataset evaluator class
- Throws:
JRException
-
loadEvaluator
Description copied from interface:JRCompilerLoads a expression evaluator class for a crosstab of a report.- Specified by:
loadEvaluatorin interfaceJRCompiler- Parameters:
jasperReport- the reportcrosstab- the crosstab- Returns:
- an instance of the dataset evaluator class
- Throws:
JRException
-
createEvaluator
- Throws:
JRException
-
effectiveDirectValueFilter
-
directValueFilter
-
loadEvaluator
protected abstract JREvaluator loadEvaluator(Serializable compileData, String unitName) throws JRException Creates an expression evaluator instance from data saved when the report was compiled.- Parameters:
compileData- the data saved when the report was compiledunitName- the evaluator unit name- Returns:
- an expression evaluator instance
- Throws:
JRException
-
checkLanguage
Checks that the report language is supported by the compiler.- Parameters:
language- the report language- Throws:
JRException
-
generateSourceCode
protected abstract JRCompilationSourceCode generateSourceCode(JRSourceCompileTask sourceTask) throws JRException Generates expression evaluator code.- Parameters:
sourceTask- the source code generation information- Returns:
- generated expression evaluator code
- Throws:
JRException
-
compileUnits
protected abstract String compileUnits(JRCompilationUnit[] units, String classpath, File tempDirFile) throws JRException Compiles several expression evaluator units.The result of the compilation should be set by calling
setCompileDataon all compile units.- Parameters:
units- the compilation unitsclasspath- the compilation classpathtempDirFile- temporary directory- Returns:
- a string containing compilation errors, or null if the compilation was successfull
- Throws:
JRException
-
getSourceFileName
Returns the name of the source file where generated source code for an unit is saved.If the compiler needs source files for compilation or
COMPILER_KEEP_JAVA_FILEis set, the generated source will be saved in a file having the name returned by this method.- Parameters:
unitName- the unit name- Returns:
- the source file name
-