EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.parser
Class FunctionExpression

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
      extended by org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
          extended by org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
              extended by org.eclipse.persistence.jpa.jpql.parser.FunctionExpression
All Implemented Interfaces:
Expression

public final class FunctionExpression
extends AbstractSingleEncapsulatedExpression

This expression adds support to call native database functions.

New to JPA 2.1.

BNF: func_expression ::= <identifier>('function_name' {, func_item}*)

Version:
2.4
Author:
James
Since:
2.4

Field Summary
 
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
 
Fields inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, 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, 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, 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_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SELECT, SET, SIZE, SOME, SQL, SQRT, SUBSTRING, SUM, TABLE, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
 
Constructor Summary
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.
 
Method Summary
 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 encapsulatedExpressionBNF()
          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  java.lang.String parseIdentifier(WordParser wordParser)
          Parses the identifier of this expression.
protected  void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean actual)
          Generates a string representation of the encapsulated Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
acceptChildren, addChildrenTo, findQueryBNF, getExpression, hasExpression, removeEncapsulatedExpression, setExpression
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedText
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FunctionExpression

public FunctionExpression(AbstractExpression parent,
                          java.lang.String identifier)
Creates a new FuncExpression.

Parameters:
parent - The parent of this expression
identifier - The JPQL identifier

FunctionExpression

public FunctionExpression(AbstractExpression parent,
                          java.lang.String identifier,
                          FunctionExpressionFactory.ParameterCount parameterCount,
                          java.lang.String parameterQueryBNFId)
Creates a new FunctionExpression.

Parameters:
parent - The parent of this expression
identifier - The JPQL identifier
parameterCount - The number of parameters a FunctionExpression can have
parameterQueryBNFId - The unique identifier of the JPQLQueryBNF that will be used to parse the arguments of the function expression
Method Detail

accept

public void accept(ExpressionVisitor visitor)
Visits this Expression by the given visitor.

Parameters:
visitor - The ExpressionVisitor to visit this object

addOrderedEncapsulatedExpressionTo

protected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Adds the Expressions representing the encapsulated Expression.

Overrides:
addOrderedEncapsulatedExpressionTo in class AbstractSingleEncapsulatedExpression
Parameters:
children - The list used to store the string representation of the encapsulated Expression

encapsulatedExpressionBNF

public java.lang.String encapsulatedExpressionBNF()
Returns the BNF used to parse the encapsulated expression.

Specified by:
encapsulatedExpressionBNF in class AbstractSingleEncapsulatedExpression
Returns:
The BNF used to parse the encapsulated expression

getFunctionName

public java.lang.String getFunctionName()
Returns the name of the SQL function.

Returns:
The name of the SQL function

getParameterCount

public FunctionExpressionFactory.ParameterCount getParameterCount()
Returns the number of parameters a FunctionExpression can have, which will be during validation.

Returns:
The number of parameters (encapsulated expressions) allowed by this expression
Since:
2.4

getQueryBNF

public JPQLQueryBNF getQueryBNF()
Returns the BNF of this Expression.

Returns:
The JPQLQueryBNF, which represents the grammar of this Expression

getUnquotedFunctionName

public java.lang.String getUnquotedFunctionName()
Returns the name of the SQL function.

Returns:
The name of the SQL function

hasComma

public boolean hasComma()
Determines whether the comma was parsed after the function name.

Returns:
true if a comma was parsed after the function name and the first expression; false otherwise

hasEncapsulatedExpression

public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.

Overrides:
hasEncapsulatedExpression in class AbstractSingleEncapsulatedExpression
Returns:
true if something was parsed; false otherwise

hasFunctionName

public boolean hasFunctionName()
Determines whether the function name was parsed.

Returns:
true if the function name was parsed; false otherwise

hasSpaceAfterComma

public boolean hasSpaceAfterComma()
Determines whether a whitespace was parsed after the comma.

Returns:
true if there was a whitespace after the comma; false otherwise

parseEncapsulatedExpression

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.

Overrides:
parseEncapsulatedExpression in class AbstractSingleEncapsulatedExpression
Parameters:
wordParser - The text to parse based on the current position of the cursor
whitespaceCount - 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 queries

parseIdentifier

protected java.lang.String parseIdentifier(WordParser wordParser)
Parses the identifier of this expression.

Specified by:
parseIdentifier in class AbstractEncapsulatedExpression
Returns:
The identifier for this expression

toParsedTextEncapsulatedExpression

protected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
                                                  boolean actual)
Generates a string representation of the encapsulated Expression.

Overrides:
toParsedTextEncapsulatedExpression in class AbstractSingleEncapsulatedExpression
Parameters:
writer - The buffer used to append the encapsulated Expression's string representation
actual - 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

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference