Class JRAbstractQueryExecuter

java.lang.Object
net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
All Implemented Interfaces:
JRQueryExecuter
Direct Known Subclasses:
AbstractJsonQueryExecuter, AbstractXlsQueryExecuter, JaxenXPathQueryExecuter, JRCsvQueryExecuter, JRHibernateQueryExecuter, JRHibernateQueryExecuter, JRJdbcQueryExecuter, JRJpaQueryExecuter, JRJpaQueryExecuter, JRMondrianQueryExecuter, JRXmlaQueryExecuter, JRXPathQueryExecuter, Olap4jMondrianQueryExecuter, Olap4jXmlaQueryExecuter, XalanXPathQueryExecuter

public abstract class JRAbstractQueryExecuter extends Object implements JRQueryExecuter
Base abstract query executer.
Author:
Lucian Chirita (lucianc@users.sourceforge.net)
  • Field Details

    • EXCEPTION_MESSAGE_KEY_NUMERIC_TYPE_REQUIRED

      public static final String EXCEPTION_MESSAGE_KEY_NUMERIC_TYPE_REQUIRED
      See Also:
    • EXCEPTION_MESSAGE_KEY_PARAMETER_NOT_FOUND

      public static final String EXCEPTION_MESSAGE_KEY_PARAMETER_NOT_FOUND
      See Also:
    • EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_CIRCULARLY_NESTED_PARAMETER

      public static final String EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_CIRCULARLY_NESTED_PARAMETER
      See Also:
    • EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_ID_FIRST_TOKEN_MISSING

      public static final String EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_ID_FIRST_TOKEN_MISSING
      See Also:
    • EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_NOT_FOUND

      public static final String EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_NOT_FOUND
      See Also:
    • EXCEPTION_MESSAGE_KEY_UNSUPPORTED_PARAMETER_TYPE

      public static final String EXCEPTION_MESSAGE_KEY_UNSUPPORTED_PARAMETER_TYPE
      See Also:
    • GET_COLLECTED

      public static final String GET_COLLECTED
      See Also:
    • clauseFunctions

      protected final Map<String,JRClauseFunction> clauseFunctions
      Clause function registry.
    • dataset

      protected final JRDataset dataset
  • Constructor Details

  • Method Details

    • getJasperReportsContext

      protected JasperReportsContext getJasperReportsContext()
    • getQueryExecutionContext

      protected QueryExecutionContext getQueryExecutionContext()
    • getRepositoryContext

      protected RepositoryContext getRepositoryContext()
    • getPropertiesUtil

      protected JRPropertiesUtil getPropertiesUtil()
    • registerClauseFunction

      protected void registerClauseFunction(String id, JRClauseFunction function)
      Registers a clause function.
      Parameters:
      id - the function ID
      function - the function
    • unregisterClauseFunction

      protected void unregisterClauseFunction(String id)
      Unregisters a clause function.
      Parameters:
      id - the function ID
    • resolveFunction

      protected JRClauseFunction resolveFunction(String id)
      Resolves a clause function ID to a function instance.
      Parameters:
      id - the function ID
      Returns:
      the clause function registered for the ID
      Throws:
      JRRuntimeException - if no function for the ID is found
    • findExtensionQueryFunction

      protected JRClauseFunction findExtensionQueryFunction(String id)
    • getCanonicalQueryLanguage

      protected String getCanonicalQueryLanguage()
      Returns a canonical query language for this query executer implementation.

      The canonical language is used to retrieve extensions for the query executer.

      The default implementation returns the runtime query language used in the dataset, but query executer implementations should override this method and return a fixed language.

      Returns:
      a canonical query language
    • parseQuery

      protected void parseQuery()
      Parses the query and replaces the parameter clauses by the parameter values and the parameters by the return value of getParameterReplacement.
    • appendQueryChunk

      protected void appendQueryChunk(StringBuffer sbuffer, JRQueryChunk chunk)
    • appendTextChunk

      protected void appendTextChunk(StringBuffer sbuffer, String text)
    • appendParameterChunk

      protected void appendParameterChunk(StringBuffer sbuffer, String chunkText)
    • addQueryParameter

      protected void addQueryParameter(String parameterName)
      Records a query parameter.
      Parameters:
      parameterName - the parameter name
      See Also:
    • addQueryMultiParameters

      protected void addQueryMultiParameters(String parameterName, int count)
      Records a multi-valued query parameter.
      Parameters:
      parameterName - the parameter name
      count - the value count
      See Also:
    • addQueryMultiParameters

      protected void addQueryMultiParameters(String parameterName, int count, boolean ignoreNulls)
      Records a multi-valued query parameter which ignore null values.
      Parameters:
      parameterName - the parameter name
      count - the value count
      See Also:
    • addQueryParameter

      protected void addQueryParameter(Class<?> type, Object value)
    • appendParameterClauseChunk

      protected void appendParameterClauseChunk(StringBuffer sbuffer, String chunkText)
    • appendClauseChunk

      protected void appendClauseChunk(StringBuffer sbuffer, String[] clauseTokens)
      Handles a clause query chunk.

      The default implementation considers the first token as a clause function ID and delegates the call to the function.

      Extending query executers can override this to implement custom query clause handling.

      Parameters:
      sbuffer - the query text buffer
      clauseTokens - clause tokens
      Throws:
      JRRuntimeException - if there is no first token or no clause function is found for the ID
      See Also:
    • applyClause

      protected void applyClause(JRClauseFunction function, JRClauseTokens tokens, StringBuffer sbuffer)
    • getQueryString

      protected String getQueryString()
      Returns the parsed query string with the parameter clauses replaced by the parameter values and the parameters replaced by getParameterReplacement.
      Returns:
      the parsed query string
    • getCollectedParameterNames

      protected List<String> getCollectedParameterNames()
      Returns the list of parameter names in the order in which they appear in the query.
      Returns:
      the list of parameter names
    • getCollectedParameters

      protected List<JRAbstractQueryExecuter.QueryParameter> getCollectedParameters()
      Returns the list of query parameters in the order in which they appear in the query.
      Returns:
      the list of query parameters
    • visitQueryParameters

      Throws:
      JRAbstractQueryExecuter.VisitExceptionWrapper
    • getParameterValue

      protected Object getParameterValue(String parameterName, boolean ignoreMissing)
      Returns the value of a fill parameter.
      Parameters:
      parameterName - the parameter name
      ignoreMissing - if true, the method will return null for non existing parameters; otherwise, an exception will be thrown if the parameter does not exist
      Returns:
      the parameter value
    • getParameterValue

      protected Object getParameterValue(String parameterName)
      Returns the value of a fill parameter.
      Parameters:
      parameterName - the parameter name
      Returns:
      the parameter value
    • parameterHasValue

      protected boolean parameterHasValue(String parameter)
    • getStringParameter

      protected String getStringParameter(String parameter, String property)
    • getStringParameterOrProperty

      protected String getStringParameterOrProperty(String name)
    • getBooleanParameter

      protected boolean getBooleanParameter(String parameter, String property, boolean defaultValue)
    • getBooleanParameterOrProperty

      protected boolean getBooleanParameterOrProperty(String name, boolean defaultValue)
    • getBooleanParameter

      protected Boolean getBooleanParameter(String parameter, String property)
    • getBooleanParameterOrProperty

      protected Boolean getBooleanParameterOrProperty(String name)
    • getIntegerParameter

      protected int getIntegerParameter(String parameter, String property, int defaultValue)
    • getIntegerParameterOrProperty

      protected int getIntegerParameterOrProperty(String name, int defaultValue)
    • getIntegerParameter

      protected Integer getIntegerParameter(String parameter, String property)
    • getIntegerParameterOrProperty

      protected Integer getIntegerParameterOrProperty(String name)
    • checkParameter

      protected void checkParameter(String parameterName)
    • getValueParameter

      protected JRValueParameter getValueParameter(String parameterName, boolean ignoreMissing)
      Return a value parameter from the parameters map.
      Parameters:
      parameterName - the parameter name
      ignoreMissing - if true, the method will return null for non existing parameters; otherwise, an exception will be thrown if the parameter does not exist
      Returns:
      the parameter
    • getValueParameter

      protected JRValueParameter getValueParameter(String parameterName)
      Return a value parameter from the parameters map.
      Parameters:
      parameterName - the parameter name
      Returns:
      the parameter
    • getParameterReplacement

      protected abstract String getParameterReplacement(String parameterName)
      Returns the replacement text for a query parameter.
      Parameters:
      parameterName - the parameter name
      Returns:
      the replacement text
      See Also: