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
ThisFunctionExpressionFactorycreates a newFunctionExpressionwhen 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 classFunctionExpressionFactory.ParameterCountThe number of parameters aFunctionExpressioncan have.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringIDThe 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 AbstractExpressionbuildExpression(AbstractExpression parent, WordParser wordParser, java.lang.String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant)Creates a newExpression.voidsetParameterCount(FunctionExpressionFactory.ParameterCount parameterCount)Sets the number of parameters aFunctionExpressioncan have, which will be during validation.voidsetParameterQueryBNFId(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 ofparametersaFunctionExpressioncan haveparameterQueryBNFId- The unique identifier of theJPQLQueryBNFthat 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:
buildExpressionin classExpressionFactory- Parameters:
parent- The parentAbstractExpressionwordParser- 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
AbstractExpressionrepresenting the portion or the totality of the text held byWordParserstarting at the cursor position
-
setParameterCount
public void setParameterCount(FunctionExpressionFactory.ParameterCount parameterCount)
Sets the number of parameters aFunctionExpressioncan 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 theJPQLQueryBNFthat will be used to parse the arguments of the function expression
-
-