org.pentaho.reporting.engine.classic.core.cache
Class CachingDataFactory

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.cache.CachingDataFactory
All Implemented Interfaces:
Serializable, Cloneable, CompoundDataFactorySupport, DataFactory
Direct Known Subclasses:
CachingDataFactory

public class CachingDataFactory
extends Object
implements DataFactory, CompoundDataFactorySupport

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.pentaho.reporting.engine.classic.core.DataFactory
QUERY_LIMIT, QUERY_TIMEOUT
 
Constructor Summary
CachingDataFactory(DataFactory backend, boolean dataCacheEnabled)
           
CachingDataFactory(DataFactory backend, boolean noClose, boolean dataCacheEnabled)
           
 
Method Summary
 void cancelRunningQuery()
          Attempts to cancel the query process that is generating the data for this data factory.
 Object clone()
           
 void close()
          Closes the report data factory and all report data instances that have been returned by this instance.
 DataFactory derive()
          Derives a freshly initialized report data factory, which is independend of the original data factory.
 DataFactory getDataFactoryForQuery(String queryName, boolean freeform)
           
 String[] getQueryNames()
          Returns all known query-names.
 void initialize(org.pentaho.reporting.libraries.base.config.Configuration configuration, org.pentaho.reporting.libraries.resourceloader.ResourceManager resourceManager, org.pentaho.reporting.libraries.resourceloader.ResourceKey contextKey, ResourceBundleFactory resourceBundleFactory)
          Initializes the data factory and provides new context information.
 boolean isFreeFormQueryExecutable(String query, DataRow parameter)
           
 boolean isQueryExecutable(String query, DataRow parameters)
          Checks whether the query would be executable by this datafactory.
 boolean isStaticQueryExecutable(String query, DataRow parameters)
           
 void open()
          Opens the data factory.
static void printTableModelContents(TableModel mod)
          Prints a table model to standard output.
 TableModel queryData(String query, DataRow parameters)
          Queries a datasource.
 TableModel queryFreeForm(String query, DataRow parameters)
           
 TableModel queryStatic(String query, DataRow parameters)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CachingDataFactory

public CachingDataFactory(DataFactory backend,
                          boolean dataCacheEnabled)

CachingDataFactory

public CachingDataFactory(DataFactory backend,
                          boolean noClose,
                          boolean dataCacheEnabled)
Method Detail

initialize

public void initialize(org.pentaho.reporting.libraries.base.config.Configuration configuration,
                       org.pentaho.reporting.libraries.resourceloader.ResourceManager resourceManager,
                       org.pentaho.reporting.libraries.resourceloader.ResourceKey contextKey,
                       ResourceBundleFactory resourceBundleFactory)
                throws ReportDataFactoryException
Description copied from interface: DataFactory
Initializes the data factory and provides new context information. Initialize is always called before the datafactory has been opened by calling DataFactory#open.

Specified by:
initialize in interface DataFactory
Parameters:
configuration - the current report configuration.
resourceManager - the report's resource manager.
contextKey - the report's context key to access resources relative to the report location.
resourceBundleFactory - the report's resource-bundle factory to access localization information.
Throws:
ReportDataFactoryException

open

public void open()
          throws ReportDataFactoryException
Description copied from interface: DataFactory
Opens the data factory. This initializes everything. Performing queries on data factories which have not yet been opened will result in exceptions.

Specified by:
open in interface DataFactory
Throws:
ReportDataFactoryException - if an error occured while opening the datafactory resources.

isQueryExecutable

public boolean isQueryExecutable(String query,
                                 DataRow parameters)
Description copied from interface: DataFactory
Checks whether the query would be executable by this datafactory. This performs a rough check, not a full query.

Specified by:
isQueryExecutable in interface DataFactory
Parameters:
query - the query, never null.
parameters - the parameters, never null.
Returns:
true, if the query would be executable, false if the query is not recognized.

isFreeFormQueryExecutable

public boolean isFreeFormQueryExecutable(String query,
                                         DataRow parameter)
Specified by:
isFreeFormQueryExecutable in interface CompoundDataFactorySupport

queryStatic

public TableModel queryStatic(String query,
                              DataRow parameters)
                       throws ReportDataFactoryException
Specified by:
queryStatic in interface CompoundDataFactorySupport
Throws:
ReportDataFactoryException

queryFreeForm

public TableModel queryFreeForm(String query,
                                DataRow parameters)
                         throws ReportDataFactoryException
Specified by:
queryFreeForm in interface CompoundDataFactorySupport
Throws:
ReportDataFactoryException

isStaticQueryExecutable

public boolean isStaticQueryExecutable(String query,
                                       DataRow parameters)
Specified by:
isStaticQueryExecutable in interface CompoundDataFactorySupport

queryData

public TableModel queryData(String query,
                            DataRow parameters)
                     throws ReportDataFactoryException
Queries a datasource. The string 'query' defines the name of the query. The Parameterset given here may contain more data than actually needed.

The dataset may change between two calls, do not assume anything!

Specified by:
queryData in interface DataFactory
Parameters:
query -
parameters -
Returns:
Throws:
ReportDataFactoryException - if an error occured while performing the query.

close

public void close()
Closes the report data factory and all report data instances that have been returned by this instance.

Specified by:
close in interface DataFactory

derive

public DataFactory derive()
Derives a freshly initialized report data factory, which is independend of the original data factory. Opening or Closing one data factory must not affect the other factories.

Specified by:
derive in interface DataFactory
Returns:
nothing, the method dies instead.
Throws:
UnsupportedOperationException - as this class is not derivable.

printTableModelContents

public static void printTableModelContents(TableModel mod)
Prints a table model to standard output.

Parameters:
mod - the model.

getQueryNames

public String[] getQueryNames()
Description copied from interface: DataFactory
Returns all known query-names. A data-factory may accept more than the query-names returned here.

Specified by:
getQueryNames in interface DataFactory
Returns:
the known query names.

cancelRunningQuery

public void cancelRunningQuery()
Description copied from interface: DataFactory
Attempts to cancel the query process that is generating the data for this data factory. If it is not possible to cancel the query, this call should be ignored.

Specified by:
cancelRunningQuery in interface DataFactory

clone

public Object clone()
Specified by:
clone in interface DataFactory
Overrides:
clone in class Object

getDataFactoryForQuery

public DataFactory getDataFactoryForQuery(String queryName,
                                          boolean freeform)
Specified by:
getDataFactoryForQuery in interface CompoundDataFactorySupport