org.pentaho.reporting.engine.classic.core.modules.misc.datafactory.sql
Class SimpleSQLReportDataFactory

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.modules.misc.datafactory.sql.SimpleSQLReportDataFactory
All Implemented Interfaces:
Serializable, Cloneable, DataFactory
Direct Known Subclasses:
SQLReportDataFactory

public class SimpleSQLReportDataFactory
extends Object
implements DataFactory, Cloneable

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.pentaho.reporting.engine.classic.core.DataFactory
QUERY_LIMIT, QUERY_TIMEOUT
 
Constructor Summary
SimpleSQLReportDataFactory(Connection connection)
           
SimpleSQLReportDataFactory(ConnectionProvider connectionProvider)
           
 
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 data factory and frees all resources held by this instance.
 DataFactory derive()
          Returns a copy of the data factory that is not affected by its anchestor and holds no connection to the anchestor anymore.
 ConnectionProvider getConnectionProvider()
           
 String getPasswordField()
           
 ArrayList<Object> getQueryHash(String queryName, DataRow parameter)
           
 String[] getQueryNames()
          Returns all known query-names.
 String[] getReferencedFields(String query, DataRow parameters)
           
 String getUserField()
           
 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.
static boolean isExpandArrayParameterNeeded(String query)
           
 boolean isLabelMapping()
           
 boolean isQueryExecutable(String query, DataRow parameters)
          Checks whether the query would be executable by this datafactory.
 void open()
          Opens the data factory.
 TableModel queryData(String query, DataRow parameters)
          Queries a datasource.
 void setConnectionProvider(ConnectionProvider connectionProvider)
           
 void setLabelMapping(boolean labelMapping)
           
 void setPasswordField(String passwordField)
           
 void setUserField(String userField)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleSQLReportDataFactory

public SimpleSQLReportDataFactory(Connection connection)

SimpleSQLReportDataFactory

public SimpleSQLReportDataFactory(ConnectionProvider connectionProvider)
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
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

isLabelMapping

public boolean isLabelMapping()

setLabelMapping

public void setLabelMapping(boolean labelMapping)

getUserField

public String getUserField()

setUserField

public void setUserField(String userField)

getPasswordField

public String getPasswordField()

setPasswordField

public void setPasswordField(String passwordField)

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.

getReferencedFields

public String[] getReferencedFields(String query,
                                    DataRow parameters)
                             throws ReportDataFactoryException
Throws:
ReportDataFactoryException

isExpandArrayParameterNeeded

public static boolean isExpandArrayParameterNeeded(String query)

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

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.

close

public void close()
Description copied from interface: DataFactory
Closes the data factory and frees all resources held by this instance.

Specified by:
close in interface DataFactory

derive

public DataFactory derive()
Returns a copy of the data factory that is not affected by its anchestor and holds no connection to the anchestor anymore. A data-factory will be derived at the beginning of the report processing.

Specified by:
derive in interface DataFactory
Returns:
a copy of the data factory.

clone

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

setConnectionProvider

public void setConnectionProvider(ConnectionProvider connectionProvider)

getConnectionProvider

public ConnectionProvider getConnectionProvider()

isQueryExecutable

public boolean isQueryExecutable(String query,
                                 DataRow parameters)
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 -
parameters -
Returns:

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.

getQueryHash

public ArrayList<Object> getQueryHash(String queryName,
                                      DataRow parameter)