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 SelectStatement

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.AbstractSelectStatement
              extended by org.eclipse.persistence.jpa.internal.jpql.parser.SelectStatement

All Implemented Interfaces:
Expression

public final class SelectStatement
extends AbstractSelectStatement

A select statement must always have a SELECT and a FROM clause.

BNF: select_statement ::= select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]
Since:
2.3
Version:
2.3
Author:
Pascal Filion
See Also:
SelectClause

Field Summary
private  boolean hasSpaceBeforeOrderBy
          Determines whether there is a whitespace after the select statement parsed by the superclass and the ORDER BY identifier.
private  AbstractExpression orderByClause
          The ORDER BY expression.
 
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
SelectStatement(AbstractExpression parent)
          Creates a new SelectStatement.
 
Method Summary
 void accept(ExpressionVisitor visitor)
          Visits this Expression by the given visitor.
 void acceptChildren(ExpressionVisitor visitor)
          Visits the children of this Expression.
(package private)  void addChildrenTo(java.util.Collection<Expression> children)
          Adds the children of this Expression to the given collection.
 FromClause addFromClause()
          Manually adds the FROM clause to this SELECT statement.
(package private)  void addOrderedChildrenTo(java.util.List<StringExpression> children)
          Adds the StringExpressions representing this Expression.
(package private)  FromClause buildFromClause()
          Creates the expression representing the from clause of this select statement.
(package private)  SelectClause buildSelectClause()
          Creates the expression representing the select clause of this select statement.
 Expression getOrderByClause()
          Returns the Expression representing the ORDER BY clause.
 JPQLQueryBNF getQueryBNF()
          Returns the BNF of this Expression.
 SelectClause getSelectClause()
          Returns the AbstractSelectClause representing the SELECT clause.
 boolean hasOrderByClause()
          Determines whether the ORDER BY clause is defined.
 boolean hasSpaceBeforeOrderBy()
          Determines whether a whitespace was parsed before the ORDER BY clause.
(package private)  void parse(WordParser wordParser, boolean tolerant)
          Parses the query by starting at the current position, which is part of the given WordParser.
(package private)  void toParsedText(java.lang.StringBuilder writer, boolean includeVirtual)
          Generates a string representation of this Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractSelectStatement
addSelectClause, addWhereClause, getFromClause, getGroupByClause, getHavingClause, getWhereClause, hasFromClause, hasGroupByClause, hasHavingClause, hasSpaceAfterFrom, hasSpaceAfterGroupBy, hasSpaceAfterSelect, hasSpaceAfterWhere, hasWhereClause, shouldManageSpaceAfterClause
 
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, isParsingComplete, 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
 

Field Detail

hasSpaceBeforeOrderBy

private boolean hasSpaceBeforeOrderBy
Determines whether there is a whitespace after the select statement parsed by the superclass and the ORDER BY identifier.

orderByClause

private AbstractExpression orderByClause
The ORDER BY expression.
Constructor Detail

SelectStatement

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

accept

public void accept(ExpressionVisitor visitor)
Visits this Expression by the given visitor.
Parameters:
visitor - The visitor to visit this object

acceptChildren

public void acceptChildren(ExpressionVisitor visitor)
Visits the children of this Expression. This method can be used to optimize traversing the children since a new list is not created every time Expression.children() or Expression.getChildren() is called.

This does not traverse the Expression sub-hierarchy, use an subclass of AbstractTraverseChildrenVisitor in order to traverse the entire sub-hierarchy.

Specified by:
acceptChildren in interface Expression
Overrides:
acceptChildren in class AbstractSelectStatement
Parameters:
visitor - The visitor to visit the children of this object.

addChildrenTo

void addChildrenTo(java.util.Collection<Expression> children)
Adds the children of this Expression to the given collection.
Overrides:
addChildrenTo in class AbstractSelectStatement
Parameters:
children - The collection used to store the children

addFromClause

public FromClause addFromClause()
Manually adds the FROM clause to this SELECT statement.
Overrides:
addFromClause in class AbstractSelectStatement
Returns:
The new FROM clause

addOrderedChildrenTo

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

buildFromClause

FromClause buildFromClause()
Creates the expression representing the from clause of this select statement.
Specified by:
buildFromClause in class AbstractSelectStatement
Returns:
A new from clause, null can't be returned

buildSelectClause

SelectClause buildSelectClause()
Creates the expression representing the select clause of this select statement.
Specified by:
buildSelectClause in class AbstractSelectStatement
Returns:
A new from clause, null can't be returned

getOrderByClause

public Expression getOrderByClause()
Returns the Expression representing the ORDER BY clause.
Returns:
The expression representing the ORDER BY clause

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

getSelectClause

public SelectClause getSelectClause()
Returns the AbstractSelectClause representing the SELECT clause.
Overrides:
getSelectClause in class AbstractSelectStatement
Returns:
The expression representing the SELECT clause

hasOrderByClause

public boolean hasOrderByClause()
Determines whether the ORDER BY clause is defined.
Returns:
true if the query that got parsed had the ORDER BY clause

hasSpaceBeforeOrderBy

public boolean hasSpaceBeforeOrderBy()
Determines whether a whitespace was parsed before the ORDER BY clause. In some cases, the space could be owned by a child of the previous clause.
Returns:
true if there was a whitespace before the ORDER BY; false otherwise

parse

void parse(WordParser wordParser,
           boolean tolerant)
Parses the query by starting at the current position, which is part of the given WordParser.
Overrides:
parse in class AbstractSelectStatement
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

toParsedText

void toParsedText(java.lang.StringBuilder writer,
                  boolean includeVirtual)
Generates a string representation of this Expression.
Overrides:
toParsedText in class AbstractSelectStatement
Parameters:
writer - The buffer used to append this 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.