public abstract class JRAbstractQueryExecuter extends java.lang.Object implements JRQueryExecuter
Modifier and Type | Class and Description |
---|---|
protected static class |
JRAbstractQueryExecuter.QueryParameter
A parameter present in the query.
|
protected static interface |
JRAbstractQueryExecuter.QueryParameterEntry |
protected static interface |
JRAbstractQueryExecuter.QueryParameterVisitor |
protected static class |
JRAbstractQueryExecuter.ValuedQueryParameter |
protected class |
JRAbstractQueryExecuter.VisitExceptionWrapper |
Modifier and Type | Field and Description |
---|---|
protected static int |
CLAUSE_POSITION_ID
Deprecated.
use
JRClauseTokens.CLAUSE_ID_POSITION or JRClauseTokens.getClauseId() instead. |
protected java.util.Map<java.lang.String,JRClauseFunction> |
clauseFunctions
Clause function registry.
|
protected JRDataset |
dataset |
static java.lang.String |
EXCEPTION_MESSAGE_KEY_NUMERIC_TYPE_REQUIRED |
static java.lang.String |
EXCEPTION_MESSAGE_KEY_PARAMETER_NOT_FOUND |
static java.lang.String |
EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_CIRCULARLY_NESTED_PARAMETER |
static java.lang.String |
EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_ID_FIRST_TOKEN_MISSING |
static java.lang.String |
EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_NOT_FOUND |
static java.lang.String |
EXCEPTION_MESSAGE_KEY_UNSUPPORTED_PARAMETER_TYPE |
static java.lang.String |
GET_COLLECTED |
Modifier | Constructor and Description |
---|---|
protected |
JRAbstractQueryExecuter(JasperReportsContext jasperReportsContext,
JRDataset dataset,
java.util.Map<java.lang.String,? extends JRValueParameter> parametersMap) |
protected |
JRAbstractQueryExecuter(JRDataset dataset,
java.util.Map<java.lang.String,? extends JRValueParameter> parametersMap)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addQueryMultiParameters(java.lang.String parameterName,
int count)
Records a multi-valued query parameter.
|
protected void |
addQueryMultiParameters(java.lang.String parameterName,
int count,
boolean ignoreNulls)
Records a multi-valued query parameter which ignore null values.
|
protected void |
addQueryParameter(java.lang.Class<?> type,
java.lang.Object value) |
protected void |
addQueryParameter(java.lang.String parameterName)
Records a query parameter.
|
protected void |
appendClauseChunk(java.lang.StringBuffer sbuffer,
java.lang.String[] clauseTokens)
Handles a
clause query chunk . |
protected void |
appendParameterChunk(java.lang.StringBuffer sbuffer,
java.lang.String chunkText) |
protected void |
appendParameterClauseChunk(java.lang.StringBuffer sbuffer,
java.lang.String chunkText) |
protected void |
appendQueryChunk(java.lang.StringBuffer sbuffer,
JRQueryChunk chunk) |
protected void |
appendTextChunk(java.lang.StringBuffer sbuffer,
java.lang.String text) |
protected void |
applyClause(JRClauseFunction function,
JRClauseTokens tokens,
java.lang.StringBuffer sbuffer) |
protected void |
checkParameter(java.lang.String parameterName) |
protected JRClauseFunction |
findExtensionQueryFunction(java.lang.String id) |
protected java.lang.Boolean |
getBooleanParameter(java.lang.String parameter,
java.lang.String property) |
protected boolean |
getBooleanParameter(java.lang.String parameter,
java.lang.String property,
boolean defaultValue) |
protected java.lang.Boolean |
getBooleanParameterOrProperty(java.lang.String name) |
protected boolean |
getBooleanParameterOrProperty(java.lang.String name,
boolean defaultValue) |
protected java.lang.String |
getCanonicalQueryLanguage()
Returns a canonical query language for this query executer implementation.
|
protected java.util.List<java.lang.String> |
getCollectedParameterNames()
Returns the list of parameter names in the order in which they appear in the query.
|
protected java.util.List<JRAbstractQueryExecuter.QueryParameter> |
getCollectedParameters()
Returns the list of
query parameters in the order in which they appear in the query. |
protected JasperReportsContext |
getJasperReportsContext() |
protected JRFillParameter |
getParameter(java.lang.String parameterName)
Deprecated.
getValueParameter(String) should be used instead |
protected abstract java.lang.String |
getParameterReplacement(java.lang.String parameterName)
Returns the replacement text for a query parameter.
|
protected java.lang.Object |
getParameterValue(java.lang.String parameterName)
Returns the value of a fill parameter.
|
protected java.lang.Object |
getParameterValue(java.lang.String parameterName,
boolean ignoreMissing)
Returns the value of a fill parameter.
|
protected JRPropertiesUtil |
getPropertiesUtil() |
protected java.lang.String |
getQueryString()
Returns the parsed query string with the parameter clauses replaced by the parameter values and
the parameters replaced by
getParameterReplacement . |
protected java.lang.String |
getStringParameter(java.lang.String parameter,
java.lang.String property) |
protected java.lang.String |
getStringParameterOrProperty(java.lang.String name) |
protected JRValueParameter |
getValueParameter(java.lang.String parameterName)
Return a value parameter from the parameters map.
|
protected JRValueParameter |
getValueParameter(java.lang.String parameterName,
boolean ignoreMissing)
Return a value parameter from the parameters map.
|
protected boolean |
parameterHasValue(java.lang.String parameter) |
protected void |
parseQuery()
Parses the query and replaces the parameter clauses by the parameter values and
the parameters by the return value of
getParameterReplacement . |
protected void |
registerClauseFunction(java.lang.String id,
JRClauseFunction function)
Registers a clause function.
|
protected JRClauseFunction |
resolveFunction(java.lang.String id)
Resolves a clause function ID to a function instance.
|
protected void |
unregisterClauseFunction(java.lang.String id)
Unregisters a clause function.
|
protected void |
visitQueryParameters(JRAbstractQueryExecuter.QueryParameterVisitor visitor) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
cancelQuery, close, createDatasource
public static final java.lang.String EXCEPTION_MESSAGE_KEY_NUMERIC_TYPE_REQUIRED
public static final java.lang.String EXCEPTION_MESSAGE_KEY_PARAMETER_NOT_FOUND
public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_CIRCULARLY_NESTED_PARAMETER
public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_ID_FIRST_TOKEN_MISSING
public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_NOT_FOUND
public static final java.lang.String EXCEPTION_MESSAGE_KEY_UNSUPPORTED_PARAMETER_TYPE
public static final java.lang.String GET_COLLECTED
protected static final int CLAUSE_POSITION_ID
JRClauseTokens.CLAUSE_ID_POSITION
or JRClauseTokens.getClauseId()
instead.protected final java.util.Map<java.lang.String,JRClauseFunction> clauseFunctions
protected final JRDataset dataset
protected JRAbstractQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, java.util.Map<java.lang.String,? extends JRValueParameter> parametersMap)
protected JRAbstractQueryExecuter(JRDataset dataset, java.util.Map<java.lang.String,? extends JRValueParameter> parametersMap)
JRAbstractQueryExecuter(JasperReportsContext, JRDataset, Map)
.protected JasperReportsContext getJasperReportsContext()
protected JRPropertiesUtil getPropertiesUtil()
protected void registerClauseFunction(java.lang.String id, JRClauseFunction function)
id
- the function IDfunction
- the functionprotected void unregisterClauseFunction(java.lang.String id)
id
- the function IDprotected JRClauseFunction resolveFunction(java.lang.String id)
id
- the function IDJRRuntimeException
- if no function for the ID is foundprotected JRClauseFunction findExtensionQueryFunction(java.lang.String id)
protected java.lang.String getCanonicalQueryLanguage()
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.
protected void parseQuery()
getParameterReplacement
.protected void appendQueryChunk(java.lang.StringBuffer sbuffer, JRQueryChunk chunk)
protected void appendTextChunk(java.lang.StringBuffer sbuffer, java.lang.String text)
protected void appendParameterChunk(java.lang.StringBuffer sbuffer, java.lang.String chunkText)
protected void addQueryParameter(java.lang.String parameterName)
parameterName
- the parameter namegetCollectedParameters()
protected void addQueryMultiParameters(java.lang.String parameterName, int count)
parameterName
- the parameter namecount
- the value countgetCollectedParameters()
,
JRAbstractQueryExecuter.QueryParameter.isMulti()
protected void addQueryMultiParameters(java.lang.String parameterName, int count, boolean ignoreNulls)
parameterName
- the parameter namecount
- the value countgetCollectedParameters()
,
JRAbstractQueryExecuter.QueryParameter.isMulti()
protected void addQueryParameter(java.lang.Class<?> type, java.lang.Object value)
protected void appendParameterClauseChunk(java.lang.StringBuffer sbuffer, java.lang.String chunkText)
protected void appendClauseChunk(java.lang.StringBuffer sbuffer, java.lang.String[] clauseTokens)
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.
sbuffer
- the query text bufferclauseTokens
- clause tokensJRRuntimeException
- if there is no first token or no clause function is found for the IDregisterClauseFunction(String, JRClauseFunction)
protected void applyClause(JRClauseFunction function, JRClauseTokens tokens, java.lang.StringBuffer sbuffer)
protected java.lang.String getQueryString()
getParameterReplacement
.protected java.util.List<java.lang.String> getCollectedParameterNames()
protected java.util.List<JRAbstractQueryExecuter.QueryParameter> getCollectedParameters()
query parameters
in the order in which they appear in the query.protected void visitQueryParameters(JRAbstractQueryExecuter.QueryParameterVisitor visitor) throws JRAbstractQueryExecuter.VisitExceptionWrapper
protected java.lang.Object getParameterValue(java.lang.String parameterName, boolean ignoreMissing)
parameterName
- the parameter nameignoreMissing
- if true
, the method will return null for non existing parameters;
otherwise, an exception will be thrown if the parameter does not existprotected java.lang.Object getParameterValue(java.lang.String parameterName)
parameterName
- the parameter nameprotected boolean parameterHasValue(java.lang.String parameter)
protected java.lang.String getStringParameter(java.lang.String parameter, java.lang.String property)
protected java.lang.String getStringParameterOrProperty(java.lang.String name)
protected boolean getBooleanParameter(java.lang.String parameter, java.lang.String property, boolean defaultValue)
protected boolean getBooleanParameterOrProperty(java.lang.String name, boolean defaultValue)
protected java.lang.Boolean getBooleanParameter(java.lang.String parameter, java.lang.String property)
protected java.lang.Boolean getBooleanParameterOrProperty(java.lang.String name)
protected JRFillParameter getParameter(java.lang.String parameterName)
getValueParameter(String)
should be used insteadparameterName
- the parameter nameprotected void checkParameter(java.lang.String parameterName)
protected JRValueParameter getValueParameter(java.lang.String parameterName, boolean ignoreMissing)
parameterName
- the parameter nameignoreMissing
- if true
, the method will return null for non existing parameters;
otherwise, an exception will be thrown if the parameter does not existprotected JRValueParameter getValueParameter(java.lang.String parameterName)
parameterName
- the parameter nameprotected abstract java.lang.String getParameterReplacement(java.lang.String parameterName)
parameterName
- the parameter nameJRQueryChunk.TYPE_PARAMETER
© 2001-2014 TIBCO Software Inc. www.jaspersoft.com