public abstract class AbstractQueryMacroHandler extends java.lang.Object implements QueryMacroHandler
Modifier and Type | Field and Description |
---|---|
protected int |
count |
protected java.util.Map<java.lang.String,java.lang.Class> |
expandedParamTypes |
protected java.util.regex.Pattern |
macroPattern |
protected static java.util.regex.Pattern |
NEGATIVE_PARAM_EXPR_PATTERN |
protected static java.util.regex.Pattern |
QUERY_PARAM_PATTERN |
Modifier | Constructor and Description |
---|---|
protected |
AbstractQueryMacroHandler(java.util.regex.Pattern macroPattern) |
Modifier and Type | Method and Description |
---|---|
protected abstract java.lang.String |
doExpand(java.lang.String macro) |
protected int |
evaluateExpression(java.lang.String expression,
Scripting scripting)
Calculates value of expression.
|
java.lang.String |
expandMacro(java.lang.String queryString)
Replaces macro with real JPQL code.
|
protected java.util.TimeZone |
getTimeZoneFromArgs(java.lang.String[] args,
int pos) |
protected java.lang.String |
replaceParamsInMacros(java.lang.String macros,
java.util.Map<java.lang.String,java.lang.Object> params) |
java.lang.String |
replaceQueryParams(java.lang.String queryString,
java.util.Map<java.lang.String,java.lang.Object> params)
Replaces param names in
queryString with its values from the params parameter. |
void |
setExpandedParamTypes(java.util.Map<java.lang.String,java.lang.Class> expandedParamTypes)
Sets expanded parameter types of the expanded query to the macro handler.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParams, setQueryParams
protected static final java.util.regex.Pattern QUERY_PARAM_PATTERN
protected static final java.util.regex.Pattern NEGATIVE_PARAM_EXPR_PATTERN
protected int count
protected final java.util.regex.Pattern macroPattern
protected java.util.Map<java.lang.String,java.lang.Class> expandedParamTypes
protected AbstractQueryMacroHandler(java.util.regex.Pattern macroPattern)
public java.lang.String expandMacro(java.lang.String queryString)
QueryMacroHandler
expandMacro
in interface QueryMacroHandler
queryString
- source query stringprotected java.lang.String replaceParamsInMacros(java.lang.String macros, java.util.Map<java.lang.String,java.lang.Object> params)
public java.lang.String replaceQueryParams(java.lang.String queryString, java.util.Map<java.lang.String,java.lang.Object> params)
QueryMacroHandler
queryString
with its values from the params
parameter.
If macro is not found, the source query string is returned.replaceQueryParams
in interface QueryMacroHandler
protected int evaluateExpression(@Nullable java.lang.String expression, Scripting scripting) throws java.lang.NumberFormatException
java.lang.NumberFormatException
- in case of malformed expressionprotected abstract java.lang.String doExpand(java.lang.String macro)
public void setExpandedParamTypes(java.util.Map<java.lang.String,java.lang.Class> expandedParamTypes)
QueryMacroHandler
setExpandedParamTypes
in interface QueryMacroHandler
expandedParamTypes
- all expanded parameter typesprotected java.util.TimeZone getTimeZoneFromArgs(java.lang.String[] args, int pos)