public final class FunctionExpression extends AbstractSingleEncapsulatedExpression
New to JPA 2.1.
func_expression ::= <identifier>('function_name' {, func_item}*)COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCOREABS, ALL, AND, ANY, AS, AS_OF, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXTRACT, FALSE, FETCH, FIRST, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, INTERSECT, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LAST, LEADING, LEFT, LEFT_JOIN, LEFT_JOIN_FETCH, LEFT_OUTER_JOIN, LEFT_OUTER_JOIN_FETCH, LENGTH, LIKE, LOCATE, LOWER, LOWER_THAN, LOWER_THAN_OR_EQUAL, MAX, MEMBER, MEMBER_OF, MIN, MINUS, MOD, MULTIPLICATION, NAMED_PARAMETER, NEW, NOT, NOT_BETWEEN, NOT_EQUAL, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, NULLS, NULLS_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, ORDER_SIBLINGS_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SCN, SELECT, SET, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE| Constructor and Description |
|---|
FunctionExpression(AbstractExpression parent,
java.lang.String identifier)
Creates a new
FuncExpression. |
FunctionExpression(AbstractExpression parent,
java.lang.String identifier,
FunctionExpressionFactory.ParameterCount parameterCount,
java.lang.String parameterQueryBNFId)
Creates a new
FunctionExpression. |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(ExpressionVisitor visitor)
Visits this
Expression by the given visitor. |
protected void |
addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Adds the
Expressions representing the encapsulated Expression. |
java.lang.String |
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.
|
java.lang.String |
getFunctionName()
Returns the name of the SQL function.
|
FunctionExpressionFactory.ParameterCount |
getParameterCount()
Returns the number of parameters a
FunctionExpression can have, which will be during
validation. |
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression. |
java.lang.String |
getUnquotedFunctionName()
Returns the name of the SQL function.
|
boolean |
hasComma()
Determines whether the comma was parsed after the function name.
|
boolean |
hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.
|
boolean |
hasFunctionName()
Determines whether the function name was parsed.
|
boolean |
hasSpaceAfterComma()
Determines whether a whitespace was parsed after the comma.
|
protected void |
parseEncapsulatedExpression(WordParser wordParser,
int whitespaceCount,
boolean tolerant)
Parses the encapsulated expression by starting at the current position, which is part of the
given
WordParser. |
protected void |
toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
boolean actual)
Generates a string representation of the encapsulated
Expression. |
acceptChildren, addChildrenTo, findQueryBNF, getExpression, hasExpression, removeEncapsulatedExpression, setExpressionaddOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedTextacceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toStringpublic FunctionExpression(AbstractExpression parent, java.lang.String identifier)
FuncExpression.parent - The parent of this expressionidentifier - The JPQL identifierpublic FunctionExpression(AbstractExpression parent, java.lang.String identifier, FunctionExpressionFactory.ParameterCount parameterCount, java.lang.String parameterQueryBNFId)
FunctionExpression.parent - The parent of this expressionidentifier - The JPQL identifierparameterCount - The number of parameters a FunctionExpression can haveparameterQueryBNFId - The unique identifier of the JPQLQueryBNF that will be used
to parse the arguments of the function expressionpublic void accept(ExpressionVisitor visitor)
Expression by the given visitor.visitor - The ExpressionVisitor to visit this objectprotected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Expressions representing the encapsulated Expression.addOrderedEncapsulatedExpressionTo in class AbstractSingleEncapsulatedExpressionchildren - The list used to store the string representation of the encapsulated Expressionpublic java.lang.String getEncapsulatedExpressionQueryBNFId()
getEncapsulatedExpressionQueryBNFId in class AbstractSingleEncapsulatedExpressionpublic java.lang.String getFunctionName()
public FunctionExpressionFactory.ParameterCount getParameterCount()
FunctionExpression can have, which will be during
validation.public JPQLQueryBNF getQueryBNF()
Expression.JPQLQueryBNF, which represents the grammar of this Expressionpublic java.lang.String getUnquotedFunctionName()
public boolean hasComma()
true if a comma was parsed after the function name and the first
expression; false otherwisepublic boolean hasEncapsulatedExpression()
hasEncapsulatedExpression in class AbstractSingleEncapsulatedExpressiontrue if something was parsed; false otherwisepublic boolean hasFunctionName()
true if the function name was parsed; false otherwisepublic boolean hasSpaceAfterComma()
true if there was a whitespace after the comma; false otherwiseprotected void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant)
WordParser.parseEncapsulatedExpression in class AbstractSingleEncapsulatedExpressionwordParser - The text to parse based on the current position of the cursorwhitespaceCount - The number of whitespace characters that were parsed after '('tolerant - Determines whether the parsing system should be tolerant, meaning if it should
try to parse invalid or incomplete queriesprotected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
boolean actual)
Expression.toParsedTextEncapsulatedExpression in class AbstractSingleEncapsulatedExpressionwriter - The buffer used to append the encapsulated Expression's string
representationactual - Determines whether to include any characters that are considered
virtual, i.e. that was parsed when the query is incomplete and is needed for functionality
like content assist