Class FunctionExpressionFactory
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.ExpressionFactory
-
- org.eclipse.persistence.jpa.jpql.parser.FunctionExpressionFactory
-
- All Implemented Interfaces:
java.lang.Comparable<ExpressionFactory>
public final class FunctionExpressionFactory extends ExpressionFactory
ThisFunctionExpressionFactory
creates a newFunctionExpression
when the portion of the query to parse starts with an identifier related to a SQL function.- Version:
- 2.5
- See Also:
FunctionExpression
- Author:
- James
- Since:
- 2.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FunctionExpressionFactory.ParameterCount
The number of parameters aFunctionExpression
can have.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ID
The unique identifier for thisFunctionExpressionFactory
.
-
Constructor Summary
Constructors Constructor Description FunctionExpressionFactory(java.lang.String id, java.lang.String... identifiers)
Creates a newFunctionExpressionFactory
.FunctionExpressionFactory(java.lang.String id, FunctionExpressionFactory.ParameterCount parameterCount, java.lang.String parameterQueryBNFId, java.lang.String... identifiers)
Creates a newFunctionExpressionFactory
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractExpression
buildExpression(AbstractExpression parent, WordParser wordParser, java.lang.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(java.lang.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 Detail
-
ID
public static final java.lang.String ID
The unique identifier for thisFunctionExpressionFactory
.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FunctionExpressionFactory
public FunctionExpressionFactory(java.lang.String id, FunctionExpressionFactory.ParameterCount parameterCount, java.lang.String parameterQueryBNFId, java.lang.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
public FunctionExpressionFactory(java.lang.String id, java.lang.String... identifiers)
Creates a newFunctionExpressionFactory
.- Parameters:
id
- The unique identifier of this factoryidentifiers
- The JPQL identifiers handled by this factory
-
-
Method Detail
-
buildExpression
protected AbstractExpression buildExpression(AbstractExpression parent, WordParser wordParser, java.lang.String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant)
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
public void setParameterCount(FunctionExpressionFactory.ParameterCount parameterCount)
Sets the number of parameters aFunctionExpression
can have, which will be during validation.- Parameters:
parameterCount
- The number of parameters
-
setParameterQueryBNFId
public void setParameterQueryBNFId(java.lang.String parameterQueryBNFId)
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
-
-