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, UNDERSCORE
ABS, 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, setExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedText
acceptUnknownVisitor, 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, toString
public 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 AbstractSingleEncapsulatedExpression
children
- The list used to store the string representation of the encapsulated Expression
public java.lang.String getEncapsulatedExpressionQueryBNFId()
getEncapsulatedExpressionQueryBNFId
in class AbstractSingleEncapsulatedExpression
public 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 Expression
public 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 AbstractSingleEncapsulatedExpression
true
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 AbstractSingleEncapsulatedExpression
wordParser
- 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 AbstractSingleEncapsulatedExpression
writer
- 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