Class UnionClause
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.UnionClause
-
- All Implemented Interfaces:
Expression
public final class UnionClause extends AbstractExpression
The UNION clause allows the results of two queries to be combined.BNF:union_clause ::= { UNION | INTERSECT | EXCEPT } [ALL] subquery
- Since:
- 2.4
- Version:
- 2.5
- Author:
- James Sutherland
-
-
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, 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 Summary
Constructors Constructor Description UnionClause(AbstractExpression parent, String identifier)
Creates a newUnionClause
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.void
acceptChildren(ExpressionVisitor visitor)
Visits the children of thisExpression
.JPQLQueryBNF
findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNF
that represents the fragment of thisExpression
that was used when parsing the givenExpression
.String
getActualAll()
Returns the actualALL
found in the string representation of the JPQL query, which has the actual case that was used.String
getActualIdentifier()
Returns the actual identifier found in the string representation of the JPQL query, which has the actual case that was used.String
getIdentifier()
Returns the union identifier.Expression
getQuery()
Returns theExpression
representing the unioned query.JPQLQueryBNF
getQueryBNF()
Returns the BNF of thisExpression
.boolean
hasAll()
Determines whetherALL
was parsed.boolean
hasQuery()
Determines whether the query was parsed.boolean
hasSpaceAfterAll()
Determines whether a whitespace was parsed afterALL
.boolean
hasSpaceAfterIdentifier()
Determines whether a whitespace was parsed after the identifier.boolean
isExcept()
Determines whether thisUnionClause
uses theEXCEPT
identifier.boolean
isIntersect()
Determines whether thisUnionClause
uses theINTERSECT
identifier.boolean
isUnion()
Determines whether thisUnionClause
uses theUNION
identifier.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
children, getGrammar, getIdentifierVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, isAncestor, orderedChildren, populatePosition, toActualText, toParsedText, toString
-
-
-
-
Constructor Detail
-
UnionClause
public UnionClause(AbstractExpression parent, String identifier)
Creates a newUnionClause
.- Parameters:
parent
- The parent of this expressionidentifier
- EitherUNION
,INTERSECT
orEXCEPT
-
-
Method Detail
-
accept
public void accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.- Parameters:
visitor
- TheExpressionVisitor
to visit this object
-
acceptChildren
public void acceptChildren(ExpressionVisitor visitor)
Visits the children of thisExpression
. This method can be used to optimize traversing the children since a new list is not created every timeExpression.children()
is called.This does not traverse the
Expression
sub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.- Parameters:
visitor
- Thevisitor
to visit the children of this object.
-
findQueryBNF
public JPQLQueryBNF findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNF
that represents the fragment of thisExpression
that was used when parsing the givenExpression
.- Specified by:
findQueryBNF
in interfaceExpression
- Overrides:
findQueryBNF
in classAbstractExpression
- Parameters:
expression
- TheExpression
that is a descendant of this one- Returns:
- The
JPQLQueryBNF
that was used to parse the given expression
-
getActualAll
public String getActualAll()
Returns the actualALL
found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The
ALL
identifier that was actually parsed
-
getActualIdentifier
public String getActualIdentifier()
Returns the actual identifier found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The identifier that was actually parsed
-
getIdentifier
public String getIdentifier()
Returns the union identifier.- Returns:
- Either "UNION", "INTERSECT", "EXCEPT"
-
getQuery
public Expression getQuery()
Returns theExpression
representing the unioned query.- Returns:
- The
Expression
representing the subquery
-
getQueryBNF
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression
.- Returns:
- The
JPQLQueryBNF
, which represents the grammar of thisExpression
-
hasAll
public boolean hasAll()
Determines whetherALL
was parsed.- Returns:
true
ifALL
was parsed;false
otherwise
-
hasQuery
public boolean hasQuery()
Determines whether the query was parsed.- Returns:
true
the query was parsed;false
otherwise
-
hasSpaceAfterAll
public boolean hasSpaceAfterAll()
Determines whether a whitespace was parsed afterALL
.- Returns:
true
if a whitespace was parsed afterALL
;false
otherwise
-
hasSpaceAfterIdentifier
public boolean hasSpaceAfterIdentifier()
Determines whether a whitespace was parsed after the identifier.- Returns:
true
if a whitespace was parsed after the identifier;false
otherwise
-
isExcept
public boolean isExcept()
Determines whether thisUnionClause
uses theEXCEPT
identifier.- Returns:
true
if the identifier isEXCEPT
;false
otherwise
-
isIntersect
public boolean isIntersect()
Determines whether thisUnionClause
uses theINTERSECT
identifier.- Returns:
true
if the identifier isINTERSECT
;false
otherwise
-
isUnion
public boolean isUnion()
Determines whether thisUnionClause
uses theUNION
identifier.- Returns:
true
if the identifier isUNION
;false
otherwise
-
-