Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


org.eclipse.persistence.jpa.internal.jpql.parser
Class AggregateFunction

java.lang.Object
  extended by org.eclipse.persistence.jpa.internal.jpql.parser.StringExpression
      extended by org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
          extended by org.eclipse.persistence.jpa.internal.jpql.parser.AbstractEncapsulatedExpression
              extended by org.eclipse.persistence.jpa.internal.jpql.parser.AbstractSingleEncapsulatedExpression
                  extended by org.eclipse.persistence.jpa.internal.jpql.parser.AggregateFunction

All Implemented Interfaces:
Expression
Direct Known Subclasses:
AvgFunction, CountFunction, MaxFunction, MinFunction, SumFunction

public abstract class AggregateFunction
extends AbstractSingleEncapsulatedExpression

In the SELECT clause the result of a query may be the result of an aggregate function applied to a path expression. The following aggregate functions can be used in the SELECT clause of a query: AVG, COUNT, MAX, MIN, SUM.

A single_valued_association_field is designated by the name of an association-field in a one-to-one or many-to-one relationship. The type of a single_valued_association_field and thus a single_valued_association_path_expression is the abstract schema type of the related entity.

The argument to an aggregate function may be preceded by the keyword DISTINCT to specify that duplicate values are to be eliminated before the aggregate function is applied. Null values are eliminated before the aggregate function is applied, regardless of whether the keyword DISTINCT is specified.

BNF: aggregate_expression ::= { AVG | MAX | MIN | SUM } ([DISTINCT] state_field_path_expression) | COUNT ([DISTINCT] identification_variable | state_field_path_expression | single_valued_object_path_expression)
Since:
2.3
Version:
2.3
Author:
Pascal Filion
See Also:
AvgFunction, CountFunction, MaxFunction, MinFunction, SumFunction

Field Summary
private  boolean hasDistinct
          Determines whether the identifier DISTINCT was parsed.
private  boolean hasSpaceAfterDistinct
          Determines whether whitespace was found after the identifier DISTINCT.
 
Fields inherited from class org.eclipse.persistence.jpa.internal.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.internal.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXISTS, FALSE, FETCH, FROM, FUNC, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, 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_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, OBJECT, OF, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, SELECT, SET, SIZE, SOME, SQRT, SUBSTRING, SUM, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
 
Constructor Summary
AggregateFunction(AbstractExpression parent)
          Creates a new AggregateFunction.
 
Method Summary
(package private)  void addOrderedEncapsulatedExpressionTo(java.util.List<StringExpression> children)
          Adds the StringExpressions representing the encapsulated Expression.
(package private)  AbstractExpression buildEncapsulatedExpression(WordParser wordParser, java.lang.String word)
          Creates the AbstractExpression to represent the given word.
 java.lang.String encapsulatedExpressionBNF()
          Returns the BNF used to parse the encapsulated expression.
 JPQLQueryBNF getQueryBNF()
          Returns the BNF of this Expression.
 boolean hasDistinct()
          Determines whether the DISTINCT identifier was specified in the query.
 boolean hasSpaceAfterDistinct()
          Determines whether a whitespace was parsed after DISTINCT.
(package private)  void parseEncapsulatedExpression(WordParser wordParser, boolean tolerant)
          Parses the encapsulated expression by starting at the current position, which is part of the given WordParser.
(package private)  void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean includeVirtual)
          Generates a string representation of the encapsulated Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractSingleEncapsulatedExpression
acceptChildren, addChildrenTo, getExpression, hasEncapsulatedExpression, hasExpression, setExpression
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getIdentifier, hasLeftParenthesis, hasRightParenthesis, isParsingComplete, parse, parseIdentifier, toParsedText
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, children, expressionFactory, expressionFactoryForIdentifier, findQueryBNF, getChildren, getJPAVersion, getParent, getRoot, getText, handleAggregate, identifierRole, identifiers, identifiers, identifierVersion, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseSingleExpression, populatePosition, queryBNF, readdLeadingSpaces, 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
 
Methods inherited from interface org.eclipse.persistence.jpa.internal.jpql.parser.Expression
accept
 

Field Detail

hasDistinct

private boolean hasDistinct
Determines whether the identifier DISTINCT was parsed.

hasSpaceAfterDistinct

private boolean hasSpaceAfterDistinct
Determines whether whitespace was found after the identifier DISTINCT.
Constructor Detail

AggregateFunction

AggregateFunction(AbstractExpression parent)
Creates a new AggregateFunction.
Parameters:
parent - The parent of this expression
Method Detail

addOrderedEncapsulatedExpressionTo

void addOrderedEncapsulatedExpressionTo(java.util.List<StringExpression> children)
Adds the StringExpressions representing the encapsulated Expression.
Overrides:
addOrderedEncapsulatedExpressionTo in class AbstractSingleEncapsulatedExpression
Parameters:
children - The list used to store the string representation of the encapsulated Expression

buildEncapsulatedExpression

AbstractExpression buildEncapsulatedExpression(WordParser wordParser,
                                               java.lang.String word)
Creates the AbstractExpression to represent the given word.
Parameters:
word - The word that was parsed
Returns:
The encapsulated AbstractExpression

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

getQueryBNF

public JPQLQueryBNF getQueryBNF()
Returns the BNF of this Expression.
Specified by:
getQueryBNF in class AbstractExpression
Returns:
The JPQLQueryBNF, which represents the grammar of this Expression

hasDistinct

public final boolean hasDistinct()
Determines whether the DISTINCT identifier was specified in the query.
Returns:
true if the query has DISTINCT; false otherwise

hasSpaceAfterDistinct

public final boolean hasSpaceAfterDistinct()
Determines whether a whitespace was parsed after DISTINCT.
Returns:
true if there was a whitespace after DISTINCT; false otherwise

parseEncapsulatedExpression

final void parseEncapsulatedExpression(WordParser wordParser,
                                       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
tolerant - Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries

toParsedTextEncapsulatedExpression

void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
                                        boolean includeVirtual)
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
includeVirtual - 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

Copyright © 1998, 2012, Oracle. All Rights Reserved.