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 Details

    • QUERY_EXECUTER_FACTORY_PREFIX

      static final String 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 JRException
      Creates a query executer.

      This method is called at fill time for reports/datasets having a query supported by this factory.

      Parameters:
      jasperReportsContext - the JasperReportsContext
      dataset - the dataset containing the query, fields, etc
      parameters - map of value parameters (instances of JRValueParameter) 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

      boolean supportsQueryParameterType(String className)
      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