Class FunctionExpressionFactory
java.lang.Object
org.eclipse.persistence.jpa.jpql.parser.ExpressionFactory
org.eclipse.persistence.jpa.jpql.parser.FunctionExpressionFactory
- All Implemented Interfaces:
Comparable<ExpressionFactory>
This
FunctionExpressionFactory
creates a new FunctionExpression
when the portion
of the query to parse starts with an identifier related to a SQL function.- Version:
- 2.5
- See Also:
- Author:
- James
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
The number of parameters aFunctionExpression
can have. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The unique identifier for thisFunctionExpressionFactory
. -
Constructor Summary
ConstructorDescriptionFunctionExpressionFactory
(String id, String... identifiers) Creates a newFunctionExpressionFactory
.FunctionExpressionFactory
(String id, FunctionExpressionFactory.ParameterCount parameterCount, String parameterQueryBNFId, String... identifiers) Creates a newFunctionExpressionFactory
. -
Method Summary
Modifier and TypeMethodDescriptionprotected AbstractExpression
buildExpression
(AbstractExpression parent, WordParser wordParser, String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant) Creates a newExpression
.void
setParameterCount
(FunctionExpressionFactory.ParameterCount parameterCount) Sets the number of parameters aFunctionExpression
can have, which will be during validation.void
setParameterQueryBNFId
(String parameterQueryBNFId) Sets the BNF that will be used when parsing the function's arguments.Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.ExpressionFactory
compareTo, equals, getExpressionRegistry, getId, hashCode, identifiers, toString
-
Field Details
-
ID
The unique identifier for thisFunctionExpressionFactory
.- See Also:
-
-
Constructor Details
-
FunctionExpressionFactory
public FunctionExpressionFactory(String id, FunctionExpressionFactory.ParameterCount parameterCount, String parameterQueryBNFId, String... identifiers) Creates a newFunctionExpressionFactory
.- Parameters:
id
- The unique identifier of this factoryparameterCount
- The number ofparameters
aFunctionExpression
can haveparameterQueryBNFId
- The unique identifier of theJPQLQueryBNF
that will be used to parse the arguments of the function expressionidentifiers
- The JPQL identifiers handled by this factory
-
FunctionExpressionFactory
Creates a newFunctionExpressionFactory
.- Parameters:
id
- The unique identifier of this factoryidentifiers
- The JPQL identifiers handled by this factory
-
-
Method Details
-
buildExpression
protected AbstractExpression buildExpression(AbstractExpression parent, WordParser wordParser, String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant) Description copied from class:ExpressionFactory
Creates a newExpression
.- Specified by:
buildExpression
in classExpressionFactory
- Parameters:
parent
- The parentAbstractExpression
wordParser
- The text to parse based on the current position of the cursorword
- The current word being parsedqueryBNF
- The BNF grammar that was used to identifier this factory to be capable to parse a portion of the queryexpression
- During the parsing, it is possible the first part of an expression was parsed which needs to be used as a sub-expression of the newly created expression- Returns:
- A new
AbstractExpression
representing the portion or the totality of the text held byWordParser
starting at the cursor position
-
setParameterCount
Sets the number of parameters aFunctionExpression
can have, which will be during validation.- Parameters:
parameterCount
- The number of parameters
-
setParameterQueryBNFId
Sets the BNF that will be used when parsing the function's arguments.- Parameters:
parameterQueryBNFId
- The unique identifier of theJPQLQueryBNF
that will be used to parse the arguments of the function expression
-