Class DataSetHandle

All Implemented Interfaces:
org.eclipse.birt.report.model.elements.interfaces.IDataSetModel, org.eclipse.birt.report.model.elements.interfaces.IDesignElementModel, org.eclipse.birt.report.model.elements.interfaces.ISimpleDataSetModel
Direct Known Subclasses:
DerivedDataSetHandle, JointDataSetHandle, OdaDataSetHandle, ScriptDataSetHandle

public abstract class DataSetHandle extends ReportElementHandle implements org.eclipse.birt.report.model.elements.interfaces.IDataSetModel, org.eclipse.birt.report.model.elements.interfaces.ISimpleDataSetModel
Abstract handle for data set elements. A data set is a named object that provides a result set defined as a sequence of data rows. Report elements use data sets to retrieve data for display.

A data set has three key parts:

  • Data access: Retrieving data from an external data source.
  • Report-specific properties: Properties for how the data is to be used in the report such as rules for searching, data export and so on.
  • Data transforms: Rules for processing the data for use by the report. Data transforms are most frequently defined by report items that use the data set, and are applied to the result set by BIRT.

Data transforms that can be defined on a data set include:

  • Column projections: identifying additional required columns, assigning column aliases, and providing column meta-data.
  • Filters.
  • Computed columns. Sorting, grouping, aggregations and similar transforms are defined by the report elements that use the data set.

The application can use scripts to execute code on certain data set events.

To get a handle for the data source, uses the following example:



                        DataSetHandle dataHandle = designHandle
                      findDataSet( "My First Data Set " );

 

This class works with the static design definition of the data set. Many clients will prefer to work with the TBD class that provides both the static definition and additional design information retrieved from the data provider. For example, a particular data set may not define a result set in the design file if the data provider can provide the result set definition itself. This handle will return null for the result set handle. However, the TBD class will provide the full result set: either by returning the one in the design file, or by obtaining it from the data provider.

See Also:
  • SimpleDataSet
  • Constructor Details

    • DataSetHandle

      public DataSetHandle(org.eclipse.birt.report.model.core.Module module, org.eclipse.birt.report.model.core.DesignElement element)
      Constructs a data set handle with the given design and element. The application generally does not create handles directly. Instead, it uses one of the navigation methods available on other element handles.
      Parameters:
      module - the module
      element - the model representation of the element
  • Method Details

    • getDataSource

      public DataSourceHandle getDataSource()
      Returns a handle to the data source for this data set.
      Returns:
      handle to the data source, or null if the data source is not set or is undefined.
    • getDataSourceName

      public String getDataSourceName()
      Returns the name of the data source for this data set.
      Returns:
      the data source name as a string
      See Also:
    • setDataSource

      public void setDataSource(String name) throws SemanticException
      Sets the name of the data source for this data set. This method checks whether the data source name exists in the report design.
      Parameters:
      name - the data source name
      Throws:
      SemanticException - if the data source does not exist in the report design, or the property if locked.
      See Also:
    • parametersIterator

      public Iterator parametersIterator()
      Returns an iterator over the list of output parameter definitions. The iterator returns instances of DataSetParameterHandle that represents parameter objects.
      Returns:
      iterator over output parameter definitions.
      See Also:
    • paramBindingsIterator

      public Iterator paramBindingsIterator()
      Returns an iterator over the list of parameter bindings. The iterator returns instances of ParamBindingHandle that represents parameter binding object.
      Returns:
      iterator over parameter binding.
      See Also:
    • resultSetIterator

      public Iterator resultSetIterator()
      Returns an iterator over the result set columns. The iterator returns instances of ResultSetColumnHandle that represents result set column object.
      Returns:
      iterator over result set columns.
      See Also:
    • resultSetHintsIterator

      public Iterator resultSetHintsIterator()
      Returns an iterator over hints of the result set columns. The iterator returns instances of ResultSetColumnHandle that represents hints of result set column object.
      Returns:
      iterator over hints of result set columns.
      See Also:
    • computedColumnsIterator

      public Iterator computedColumnsIterator()
      Returns an iterator for the list of computed columns. The iterator returns instances of ComputedColumnHandle that represents computed column object.
      Returns:
      iterator over computed columns.
      See Also:
    • columnHintsIterator

      public Iterator columnHintsIterator()
      Returns an iterator over column hints. The iterator returns instances of ColumnHintHandle that represents column hint object.
      Returns:
      iterator over column hints.
      See Also:
    • sortHintsIterator

      public Iterator<SortHintHandle> sortHintsIterator()
      Returns an iterator over sort hints. The iterator returns instances of SortHintHandle that represents sort hint object.
      Returns:
      iterator over sort hints.
      See Also:
    • filtersIterator

      public Iterator filtersIterator()
      Returns an iterator over filter. The iterator returns instances of FilterConditionHandle that represents filter condition object.
      Returns:
      iterator over filters.
      See Also:
    • getBeforeOpen

      public String getBeforeOpen()
      Returns the code of the beforeOpen method. This is the script called just before opening this data set.
      Returns:
      the code of the method
    • setBeforeOpen

      public void setBeforeOpen(String code) throws SemanticException
      Sets the code for the beforeOpen method. This is the script called just before opening this data set.
      Parameters:
      code - the code for the method
      Throws:
      SemanticException - If the method is locked.
    • getBeforeClose

      public String getBeforeClose()
      Returns the code of the beforeClose method. This is the script called just before closing this data set.
      Returns:
      the code of the method
    • setBeforeClose

      public void setBeforeClose(String code) throws SemanticException
      Sets the code for the beforeClose method. This is the script called just before closing this data set.
      Parameters:
      code - the code for the method
      Throws:
      SemanticException - If the method is locked.
    • getAfterOpen

      public String getAfterOpen()
      Returns the code of the afterOpen method. This is the script called just after opening this data set.
      Returns:
      the code of the method
    • setAfterOpen

      public void setAfterOpen(String code) throws SemanticException
      Sets the code for the afterOpen method. This is the script called just after opening this data set.
      Parameters:
      code - the code for the method
      Throws:
      SemanticException - If the method is locked.
    • getAfterClose

      public String getAfterClose()
      Returns the code of the afterClose method. This is the script called just after closing this data set.
      Returns:
      the code of the method
    • setAfterClose

      public void setAfterClose(String code) throws SemanticException
      Sets the code for the afterClose method. This is the script called just after closing this data set.
      Parameters:
      code - the code for the method
      Throws:
      SemanticException - If the method is locked.
    • getOnFetch

      public String getOnFetch()
      Returns the code of the onFetch method. This is the script called just after fetching each row.
      Returns:
      the code of the method
    • setOnFetch

      public void setOnFetch(String code) throws SemanticException
      Sets the code for the onFetch method. This is the script called just after fetching each row.
      Parameters:
      code - the code for the method
      Throws:
      SemanticException - If the method is locked.
    • getCachedMetaDataHandle

      public CachedMetaDataHandle getCachedMetaDataHandle()
      Return a handle to deal with the cached data set information that include output column information when it gets from databases, input/output parameter definitions.
      Returns:
      a CachedMetaDataHandle to deal with the cached data set information, return null if the property has not been set.
    • setCachedMetaData

      public CachedMetaDataHandle setCachedMetaData(CachedMetaData metadata) throws SemanticException
      Set the value for the cached data set information.
      Parameters:
      metadata - a structure value include output column information , input/output parameter definitions.
      Returns:
      CachedMetaDataHandle to the input metadata, return null if metadata is null.
      Throws:
      SemanticException - the input data is not valid.
    • getPropertyHandle

      public PropertyHandle getPropertyHandle(String propName)
      Description copied from class: DesignElementHandle
      Returns a property handle for a top-level property. A top-level property is a property that defines on an element.
      Overrides:
      getPropertyHandle in class DesignElementHandle
      Parameters:
      propName - the name of the property to get
      Returns:
      The property handle, or null if the no property exists with the given name.
      See Also:
    • setDataSetRowLimit

      @Deprecated public void setDataSetRowLimit(int count) throws SemanticException
      Deprecated.
      duplicate with method setRowFetchLimit()
      Sets data set row limit property value.
      Parameters:
      count -
      Throws:
      SemanticException
    • getDataSetRowLimit

      @Deprecated public int getDataSetRowLimit()
      Deprecated.
      duplicate with method getRowFetchLimit()
      Returns value of data set row limit property.
      Returns:
      the value of data set row limit property.
    • setCachedRowCount

      @Deprecated public void setCachedRowCount(int count) throws SemanticException
      Deprecated.
      by setDataSetRowLimit method
      sets the cached row count property value.
      Parameters:
      count - the cached row count
      Throws:
      SemanticException
    • getCachedRowCount

      @Deprecated public int getCachedRowCount()
      Deprecated.
      by getDataSetRowLimit method
      Returns the value of cached row count property.
      Returns:
      the row count.
    • setRowFetchLimit

      public void setRowFetchLimit(int count) throws SemanticException
      Sets the max number of rows from data set property value.
      Parameters:
      count - the row number to fetch from result set
      Throws:
      SemanticException
    • getRowFetchLimit

      public int getRowFetchLimit()
      Returns the max number of rows from data set property value.
      Returns:
      the max number of rows that can be fetched from data set.
    • addFilter

      public void addFilter(FilterCondition fc) throws SemanticException
      Adds the filter condition.
      Parameters:
      fc - the filter condition structure
      Throws:
      SemanticException - if the expression of filter condition is empty or null
    • removeFilter

      public void removeFilter(FilterCondition fc) throws SemanticException
      Removes the filter condition.
      Parameters:
      fc - the filter condition structure
      Throws:
      SemanticException - if the given condition doesn't exist in the filters
    • setNeedsCache

      public void setNeedsCache(boolean needsCache) throws SemanticException
      Sets whether to do some cache when rendering the report.
      Parameters:
      needsCache - true if needs do caching when rendering the report, otherwise false
      Throws:
      SemanticException
    • needsCache

      public boolean needsCache()
      Determines whether to do some cache when rendering the report.
      Returns:
      true if needs do caching when rendering the report, otherwise false
    • getACLExpression

      public ExpressionHandle getACLExpression()
      Gets the expression handle for the ACLExpression property.
      Returns:
    • getRowACLExpression

      public ExpressionHandle getRowACLExpression()
      Gets the expression handle for the ACL expression for one row.
      Returns:
    • isVisible

      public boolean isVisible()
      Gets the isVisible property value.
      Returns:
      if that data set is visible outside of the datamart, otherwise return .
    • setIsVisible

      public void setIsVisible(boolean isVisible) throws SemanticException
      Sets the isVisible property value.
      Parameters:
      isVisible - if that data set is visible outside of the datamart, otherwise return .
      Throws:
      SemanticException
    • getLocale

      public com.ibm.icu.util.ULocale getLocale()
      Gets the locale of this data set element.
      Returns:
      the locale of this data set
      See Also:
    • setLocale

      public void setLocale(com.ibm.icu.util.ULocale locale) throws SemanticException
      Sets the locale for this data set element.
      Parameters:
      locale - the locale to data set
      Throws:
      SemanticException
      See Also:
    • getNullsOrdering

      public String getNullsOrdering()
      Gets the ordering of null values. Its value must be one of the following:
      • NULLS_ORDERING_NULLS_LOWEST
      • NULLS_ORDERING_NULLS_HIGHEST
      • NULLS_ORDERING_EXCLUDE_NULLS
      Returns:
      ordering of null values.
    • setNullsOrdering

      public void setNullsOrdering(String nullsOrdering) throws SemanticException
      Sets the ordering of null values. Its value must be one of the following:
      • NULLS_ORDERING_NULLS_LOWEST
      • NULLS_ORDERING_NULLS_HIGHEST
      • NULLS_ORDERING_EXCLUDE_NULLS
      Parameters:
      nullsOrdering -
      Throws:
      SemanticException