Class JRFillDataset

java.lang.Object
net.sf.jasperreports.engine.fill.JRFillDataset
All Implemented Interfaces:
Cloneable, DatasetFillContext, JRCloneable, JRDataset, JRIdentifiable, JRPropertiesHolder

public class JRFillDataset extends Object implements JRDataset, DatasetFillContext
Author:
Lucian Chirita (lucianc@users.sourceforge.net)
  • Field Details

  • Constructor Details

    • JRFillDataset

      public JRFillDataset(BaseReportFiller filler, JRDataset dataset, JRFillObjectFactory factory)
      Creates a fill dataset object.
      Parameters:
      filler - the filler
      dataset - the template dataset
      factory - the fill object factory
  • Method Details

    • getFiller

      public BaseReportFiller getFiller()
    • createCalculator

      public void createCalculator(JasperReport jasperReport) throws JRException
      Creates the calculator
      Parameters:
      jasperReport - the report
      Throws:
      JRException
    • setCalculator

      protected void setCalculator(JRCalculator calculator)
    • createCalculator

      protected static JRCalculator createCalculator(JasperReportsContext jasperReportsContext, JasperReport jasperReport, JRDataset dataset) throws JRException
      Throws:
      JRException
    • initCalculator

      public void initCalculator() throws JRException
      Initializes the calculator.
      Throws:
      JRException
    • inheritFromMain

      public void inheritFromMain()
      Inherits properties from the report.
    • createScriptlets

      protected List<JRAbstractScriptlet> createScriptlets(Map<String,Object> parameterValues) throws JRException
      Creates the scriptlets.
      Returns:
      the scriptlets list
      Throws:
      JRException
    • initElementDatasets

      protected void initElementDatasets(JRFillObjectFactory factory)
      Initializes the element datasets.
      Parameters:
      factory - the fill object factory used by the filler
    • filterElementDatasets

      protected void filterElementDatasets(JRFillElementDataset elementDataset)
      Filters the element datasets, leaving only one.

      This method is used when a dataset is instantiated by a chart or crosstab.

      Parameters:
      elementDataset - the element dataset that should remain
    • restoreElementDatasets

      protected void restoreElementDatasets()
      Restores the original element datasets.

      This method should be called after filterElementDatasets.

    • loadResourceBundle

      protected ResourceBundle loadResourceBundle()
      Loads the resource bundle corresponding to the resource bundle base name and locale.
    • setParameterValues

      public void setParameterValues(Map<String,Object> parameterValues) throws JRException
      Reads built-in parameter values from the value map.
      Parameters:
      parameterValues - the parameter values
      Throws:
      JRException
    • defaultLocale

      protected Locale defaultLocale()
    • defaultTimeZone

      protected TimeZone defaultTimeZone()
    • initDatasource

      public void initDatasource() throws JRException
      Initializes the data source which will be used by this dataset. If the dataset includes a query, this involves invoking the appropriate query executer to execute the query and create a data source from the results.
      Throws:
      JRException
    • isSortingData

      public boolean isSortingData()
    • getFillPosition

      public FillDatasetPosition getFillPosition()
    • setFillPosition

      public void setFillPosition(FillDatasetPosition fillPosition)
    • setCacheSkipped

      public void setCacheSkipped(boolean cacheSkipped)
    • cacheInit

      protected void cacheInit() throws DataSnapshotException
      Throws:
      DataSnapshotException
    • cacheInitSnapshot

      protected void cacheInitSnapshot() throws DataSnapshotException
      Throws:
      DataSnapshotException
    • cacheInitRecording

      protected void cacheInitRecording()
    • isIncludedInDataCache

      protected boolean isIncludedInDataCache(JRFillParameter parameter)
    • getDefaultParameterEvaluationTime

      protected ParameterEvaluationTimeEnum getDefaultParameterEvaluationTime()
    • getDefaultPropertyEvaluationTime

      protected PropertyEvaluationTimeEnum getDefaultPropertyEvaluationTime()
    • cacheRecord

      protected void cacheRecord()
    • cacheEnd

      protected void cacheEnd()
    • evaluateFieldProperties

      public void evaluateFieldProperties() throws JRException
      Throws:
      JRException
    • contributeParameters

      public void contributeParameters(Map<String,Object> parameterValues) throws JRException
      Throws:
      JRException
    • setJasperReportsContext

      public void setJasperReportsContext(JasperReportsContext jasperReportsContext)
    • setRepositoryContext

      public void setRepositoryContext(RepositoryContext repositoryContext)
    • getJasperReportsContext

      public JasperReportsContext getJasperReportsContext()
    • getRepositoryContext

      public RepositoryContext getRepositoryContext()
    • disposeParameterContributors

      public void disposeParameterContributors()
    • getParameterValuesMap

      protected Map<String,Object> getParameterValuesMap()
      Returns the map of parameter values.
      Returns:
      the map of parameter values
    • reset

      protected void reset()
    • setDatasourceParameterValue

      public void setDatasourceParameterValue(Map<String,Object> parameterValues, JRDataSource ds)
      Sets the data source to be used.
      Parameters:
      parameterValues - the parameter values
      ds - the data source
    • setConnectionParameterValue

      public void setConnectionParameterValue(Map<String,Object> parameterValues, Connection conn)
      Sets the JDBC connection to be used.
      Parameters:
      parameterValues - the parameter values
      conn - the connection
    • closeDatasource

      public void closeDatasource()
      Closes the data source used by this dataset if this data source was obtained via a query executer.
      See Also:
    • closeQueryExecuter

      protected void closeQueryExecuter()
    • start

      public void start()
      Starts the iteration on the data source.
    • resetVariables

      protected void resetVariables()
    • next

      public boolean next() throws JRException
      Moves to the next record in the data source.
      Returns:
      true if the data source was not exhausted
      Throws:
      JRException
    • next

      protected boolean next(boolean sorting) throws JRException
      Moves to the next record in the data source.
      Parameters:
      sorting - whether the method is called as part of the data sorting phase
      Returns:
      true if the data source was not exhausted
      Throws:
      JRException
    • advanceCacheRecordIndexes

      protected void advanceCacheRecordIndexes()
    • setOldValues

      protected void setOldValues() throws JRException
      Throws:
      JRException
    • revertToOldValues

      protected void revertToOldValues()
    • revertVariablesToOldValues

      protected void revertVariablesToOldValues()
    • advanceDataSource

      protected boolean advanceDataSource(boolean limit) throws JRException
      Throws:
      JRException
    • setParameter

      public void setParameter(String parameterName, Object value) throws JRException
      Sets the value of a parameter.
      Parameters:
      parameterName - the parameter name
      value - the value
      Throws:
      JRException
    • setParameter

      protected void setParameter(JRFillParameter parameter, Object value) throws JRException
      Sets the value of the parameter.
      Parameters:
      parameter - the parameter
      value - the value
      Throws:
      JRException
    • getVariable

      public JRFillVariable getVariable(String variableName)
    • getVariableValue

      public Object getVariableValue(String variableName)
      Returns the value of a variable.
      Parameters:
      variableName - the variable name
      Returns:
      the variable value
    • getVariableValue

      public Object getVariableValue(String variableName, EvaluationType evaluation)
      Description copied from interface: DatasetFillContext
      Returns the value of a variable.
      Specified by:
      getVariableValue in interface DatasetFillContext
      Parameters:
      variableName - the variable name
      evaluation - the evaluation type
      Returns:
      the variable value
    • getFillVariable

      public JRFillVariable getFillVariable(String variableName)
    • getParameterValue

      public Object getParameterValue(String parameterName)
      Returns the value of a parameter.
      Specified by:
      getParameterValue in interface DatasetFillContext
      Parameters:
      parameterName - the parameter name
      Returns:
      the parameter value
    • getParameterValue

      public Object getParameterValue(String parameterName, boolean ignoreMissing)
      Returns the value of a parameter.
      Parameters:
      parameterName - the parameter name
      ignoreMissing - if set, null will be returned for inexisting parameters
      Returns:
      the parameter value
    • getFieldValue

      public Object getFieldValue(String fieldName)
      Returns the value of a field.
      Parameters:
      fieldName - the field name
      Returns:
      the field value
    • getFieldValue

      public Object getFieldValue(String fieldName, EvaluationType evaluation)
      Description copied from interface: DatasetFillContext
      Returns the value of a field.
      Specified by:
      getFieldValue in interface DatasetFillContext
      Parameters:
      fieldName - the field name
      evaluation - the evaluation type
      Returns:
      the field value
    • getFillField

      public JRFillField getFillField(String fieldName)
    • addVariableCalculationReq

      protected void addVariableCalculationReq(String variableName, CalculationEnum calculation)
      Adds a variable calculation requirement.
      Parameters:
      variableName - the variable name
      calculation - the required calculation
    • checkVariableCalculationReqs

      protected void checkVariableCalculationReqs(JRFillObjectFactory factory)
      Checks if there are variable calculation requirements and creates the required variables.
      Parameters:
      factory - the fill object factory
    • getUUID

      public UUID getUUID()
      Specified by:
      getUUID in interface JRIdentifiable
    • getName

      public String getName()
      Description copied from interface: JRDataset
      Returns the dataset name.
      Specified by:
      getName in interface JRDataset
      Returns:
      the name of the dataset
    • getScriptletClass

      public String getScriptletClass()
      Description copied from interface: JRDataset
      The name of the scriptlet class to be used when iterating this dataset.
      Specified by:
      getScriptletClass in interface JRDataset
      Returns:
      the scriplet class name
    • getScriptlets

      public JRScriptlet[] getScriptlets()
      Description copied from interface: JRDataset
      Returns the dataset's scriptlets.
      Specified by:
      getScriptlets in interface JRDataset
      Returns:
      the dataset's scriptlets
    • getParameters

      public JRParameter[] getParameters()
      Description copied from interface: JRDataset
      Returns the dataset's parameters.
      Specified by:
      getParameters in interface JRDataset
      Returns:
      the dataset's parameters
    • getParametersMap

      public Map<String,JRFillParameter> getParametersMap()
    • getQuery

      public JRQuery getQuery()
      Description copied from interface: JRDataset
      Returns the query of the dataset.

      The query is used by passing a connection is passed to the dataset when instantiating.

      Specified by:
      getQuery in interface JRDataset
      Returns:
      the query of the dataset
    • getFields

      public JRField[] getFields()
      Description copied from interface: JRDataset
      Returns the dataset's fields.
      Specified by:
      getFields in interface JRDataset
      Returns:
      the dataset's fields
    • getFieldsMap

      public Map<String,JRFillField> getFieldsMap()
    • getSortFields

      public JRSortField[] getSortFields()
      Description copied from interface: JRDataset
      Returns the dataset's sort fields.
      Specified by:
      getSortFields in interface JRDataset
      Returns:
      the dataset's sort fields
    • getVariables

      public JRVariable[] getVariables()
      Description copied from interface: JRDataset
      Returns the dataset's variables.
      Specified by:
      getVariables in interface JRDataset
      Returns:
      the dataset's variables
    • getVariablesMap

      public Map<String,JRFillVariable> getVariablesMap()
    • getGroups

      public JRGroup[] getGroups()
      Description copied from interface: JRDataset
      Returns the dataset's groups.
      Specified by:
      getGroups in interface JRDataset
      Returns:
      the dataset's groups
    • isMainDataset

      public boolean isMainDataset()
      Description copied from interface: JRDataset
      Decides whether this dataset is the main report dataset or a sub dataset.
      Specified by:
      isMainDataset in interface JRDataset
      Returns:
      true if and only if this dataset is the main report dataset
    • getResourceBundle

      public String getResourceBundle()
      Description copied from interface: JRDataset
      Returns the resource bundle base name.

      The resource bundle is used when evaluating expressions.

      Specified by:
      getResourceBundle in interface JRDataset
      Returns:
      the resource bundle base name
    • getWhenResourceMissingType

      public WhenResourceMissingTypeEnum getWhenResourceMissingType()
      Description copied from interface: JRDataset
      Returns the resource missing handling type.
      Specified by:
      getWhenResourceMissingType in interface JRDataset
      Returns:
      the resource missing handling type
    • setWhenResourceMissingType

      public void setWhenResourceMissingType(WhenResourceMissingTypeEnum whenResourceMissingType)
      Description copied from interface: JRDataset
      Sets the resource missing handling type.
      Specified by:
      setWhenResourceMissingType in interface JRDataset
      Parameters:
      whenResourceMissingType - the resource missing handling type
    • hasProperties

      public boolean hasProperties()
      Description copied from interface: JRPropertiesHolder
      Checks whether the object has any properties.
      Specified by:
      hasProperties in interface JRPropertiesHolder
      Returns:
      whether the object has any properties
    • getPropertiesMap

      public JRPropertiesMap getPropertiesMap()
      Description copied from interface: JRPropertiesHolder
      Returns this object's properties map.
      Specified by:
      getPropertiesMap in interface JRPropertiesHolder
      Returns:
      this object's properties map
    • getParentProperties

      public JRPropertiesHolder getParentProperties()
      Description copied from interface: JRPropertiesHolder
      Returns the parent properties holder, whose properties are used as defaults for this object.
      Specified by:
      getParentProperties in interface JRPropertiesHolder
      Returns:
      the parent properties holder, or null if no parent
    • getPropertyExpressions

      public DatasetPropertyExpression[] getPropertyExpressions()
      Description copied from interface: JRDataset
      Returns the list of dynamic/expression-based properties for this dataset.
      Specified by:
      getPropertyExpressions in interface JRDataset
      Returns:
      an array containing the expression-based properties of this dataset
    • evaluateProperties

      protected void evaluateProperties(PropertyEvaluationTimeEnum evaluationTime) throws JRException
      Throws:
      JRException
    • getFilterExpression

      public JRExpression getFilterExpression()
      Description copied from interface: JRDataset
      Returns the dataset filter expression.

      This expression is used to filter the rows of the data source that this dataset will iterate on.

      This expression (if not null) is evaluated immediately after a new row is produced by the data source. The evaluation is performed using field and variable values corresponding to the new row. When the result of the evaluation is Boolean.TRUE the row gets processed by the report filling engine. When the result is null or Boolean.FALSE, the current row will be skipped and the datasource will be asked for the next row.

      Specified by:
      getFilterExpression in interface JRDataset
      Returns:
      the dataset filter expression
    • clone

      public Object clone()
      Specified by:
      clone in interface JRCloneable
      Overrides:
      clone in class Object
    • evaluateExpression

      public Object evaluateExpression(JRExpression expression, byte evaluation) throws JRException
      Evaluates an expression
      Parameters:
      expression - the expression
      evaluation - the evaluation type
      Returns:
      the evaluation result
      Throws:
      JRException
    • getLocale

      public Locale getLocale()
      Description copied from interface: DatasetFillContext
      Returns the locale used by the dataset.
      Specified by:
      getLocale in interface DatasetFillContext
    • getTimeZone

      public TimeZone getTimeZone()
    • getDatasetPosition

      public FillDatasetPosition getDatasetPosition()
    • addCacheRecordIndexCallback

      protected void addCacheRecordIndexCallback(int recordIndex, JRFillDataset.CacheRecordIndexCallback callback)
    • setCacheRecordIndex

      public void setCacheRecordIndex(FillDatasetPosition position, byte evaluationType)