Interface QueryExecuterFactory
- All Known Implementing Classes:
AbstractQueryExecuterFactory
,AbstractXlsQueryExecuterFactory
,ExcelQueryExecuterFactory
,JaxenXPathQueryExecuterFactory
,JRCsvQueryExecuterFactory
,JRHibernateQueryExecuterFactory
,JRHibernateQueryExecuterFactory
,JRJdbcQueryExecuterFactory
,JRJpaQueryExecuterFactory
,JRJpaQueryExecuterFactory
,JRMdxQueryExecuterFactory
,JRMondrianQueryExecuterFactory
,JRXlsxQueryExecuterFactory
,JRXmlaQueryExecuterFactory
,JRXPathQueryExecuterFactory
,JsonQLQueryExecuterFactory
,JsonQueryExecuterFactory
,Olap4jMondrianQueryExecuterFactory
,Olap4jQueryExecuterFactory
,Olap4jXmlaQueryExecuterFactory
,XalanXPathQueryExecuterFactory
,XlsQueryExecuterFactory
public interface QueryExecuterFactory
Factory classes used to create query executers.
For each query language, a query executer factory must be created and registered as a JR property.
Query executer factory instances must be thread-safe as they are cached and used as singletons.
- Author:
- Lucian Chirita (lucianc@users.sourceforge.net)
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Prefix for query executer factory properties. -
Method Summary
Modifier and TypeMethodDescriptioncreateQueryExecuter
(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String, ? extends JRValueParameter> parameters) Creates a query executer.default JRQueryExecuter
createQueryExecuter
(QueryExecutionContext context, JRDataset dataset, Map<String, ? extends JRValueParameter> parameters) Object[]
Returns the built-in parameters associated with this query type.boolean
supportsQueryParameterType
(String className) Decides whether the query executers created by this factory support a query parameter type.
-
Field Details
-
QUERY_EXECUTER_FACTORY_PREFIX
Prefix for query executer factory properties. To obtain query executer factories, a property having the query language appended to this prefix is used to get the query executer factory name.- See Also:
-
-
Method Details
-
getBuiltinParameters
Object[] getBuiltinParameters()Returns the built-in parameters associated with this query type. These parameters will be created as system-defined parameters for each report/dataset having a query of this type. The returned array should contain consecutive pairs of parameter names and parameter classes (e.g.{"Param1", String.class, "Param2", "List.class"}
).- Returns:
- array of built-in parameter names and types associated with this query type
-
createQueryExecuter
JRQueryExecuter createQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String, ? extends JRValueParameter> parameters) throws JRExceptionCreates a query executer. This method is called at fill time for reports/datasets having a query supported by this factory.- Parameters:
jasperReportsContext
- the JasperReportsContextdataset
- the dataset containing the query, fields, etcparameters
- map of value parameters (instances ofJRValueParameter
) indexed by name- Returns:
- a query executer
- Throws:
JRException
-
createQueryExecuter
default JRQueryExecuter createQueryExecuter(QueryExecutionContext context, JRDataset dataset, Map<String, ? extends JRValueParameter> parameters) throws JRException- Throws:
JRException
-
supportsQueryParameterType
Decides whether the query executers created by this factory support a query parameter type. This check is performed for all $P{..} parameters in the query.- Parameters:
className
- the value class name of the parameter- Returns:
- whether the parameter value type is supported
-