|
Oracle Fusion Middleware Java API Reference for Oracle TopLink 11g Release 1 (11.1.1) E28847-01 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
org.eclipse.persistence.jpa.internal.jpql.parser.StringExpression
org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
org.eclipse.persistence.jpa.internal.jpql.parser.CaseExpression
public final class CaseExpression
general_case_expression ::= CASE when_clause {when_clause}* ELSE scalar_expression END
or
simple_case_expression ::= CASE case_operand simple_when_clause {simple_when_clause}* ELSE scalar_expression END
Nested Class Summary | |
---|---|
private static class |
CaseExpression.ParsingType A enumeration used to determine how CaseExpression#isParsingComplete(WordParser, String) should behaves. |
Field Summary | |
---|---|
private AbstractExpression |
caseOperand The Expression representing the case operand. |
private AbstractExpression |
elseExpression The Expression representing the ELSE expression. |
private boolean |
hasElse Determines whether the identifier ELSE was parsed. |
private boolean |
hasEnd Determines whether the identifier END was parsed. |
private boolean |
hasSpaceAfterCase Determines whether a whitespace was parsed after CASE. |
private boolean |
hasSpaceAfterCaseOperand Determines whether a whitespace was parsed after the case operand. |
private boolean |
hasSpaceAfterElse Determines whether a whitespace was parsed after ELSE. |
private boolean |
hasSpaceAfterElseExpression Determines whether a whitespace was parsed after the BETWEEN expression. |
private boolean |
hasSpaceAfterWhenClauses Determines whether a whitespace was parsed after WHEN clause. |
private CaseExpression.ParsingType |
parsingType Used to determine how to check if the parsing is complete. |
private AbstractExpression |
whenClauses The Expression representing the WHEN clauses. |
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 |
Constructor Summary | |
---|---|
CaseExpression(AbstractExpression parent) Creates a new CaseExpression . |
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. |
(package private) void |
addOrderedChildrenTo(java.util.List<StringExpression> children) Adds the StringExpressions representing this Expression . |
Expression |
getCaseOperand() Returns the Expression that represents the CASE operand. |
AbstractExpression |
getElseExpression() Returns the Expression that represents the ELSE operand. |
JPQLQueryBNF |
getQueryBNF() Returns the BNF of this Expression . |
AbstractExpression |
getWhenClauses() Returns the Expression that represents the WHEN clauses. |
boolean |
hasCaseOperand() Determines whether the CASE operand was parsed. |
boolean |
hasElse() Determines whether the identifier ELSE was parsed. |
boolean |
hasElseExpression() Determines whether the ELSE expression was parsed. |
boolean |
hasEnd() Determines whether the identifier END was parsed. |
boolean |
hasSpaceAfterCase() Determines whether a whitespace was parsed after CASE. |
boolean |
hasSpaceAfterCaseOperand() Determines whether a whitespace was parsed after the case operand. |
boolean |
hasSpaceAfterElse() Determines whether a whitespace was parsed after ELSE. |
boolean |
hasSpaceAfterElseExpression() Determines whether a whitespace was parsed after the else expression. |
boolean |
hasSpaceAfterWhenClauses() Determines whether a whitespace was parsed after the WHEN clause. |
boolean |
hasWhenClauses() Determines whether the WHEN clauses were parsed. |
(package private) boolean |
isParsingComplete(WordParser wordParser, java.lang.String word, Expression expression) Determines whether the parsing is complete based on what is left in the given text. |
(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.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 |
Field Detail |
---|
private AbstractExpression caseOperand
Expression
representing the case operand.private AbstractExpression elseExpression
Expression
representing the ELSE expression.private boolean hasElse
private boolean hasEnd
private boolean hasSpaceAfterCase
private boolean hasSpaceAfterCaseOperand
private boolean hasSpaceAfterElse
private boolean hasSpaceAfterElseExpression
private boolean hasSpaceAfterWhenClauses
private CaseExpression.ParsingType parsingType
private AbstractExpression whenClauses
Expression
representing the WHEN clauses.Constructor Detail |
---|
CaseExpression(AbstractExpression parent)
CaseExpression
.
parent
- The parent of this expressionMethod Detail |
---|
public void accept(ExpressionVisitor visitor)
Expression
by the given visitor
.visitor
- The visitor
to visit this objectpublic void acceptChildren(ExpressionVisitor visitor)
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.
visitor
- The visitor
to visit the children of this object.void addChildrenTo(java.util.Collection<Expression> children)
Expression
to the given collection.addChildrenTo
in class AbstractExpression
children
- The collection used to store the childrenvoid addOrderedChildrenTo(java.util.List<StringExpression> children)
StringExpressions
representing this Expression
.addOrderedChildrenTo
in class AbstractExpression
children
- The list used to store the string representation of this Expression
public Expression getCaseOperand()
Expression
that represents the CASE operand.public AbstractExpression getElseExpression()
Expression
that represents the ELSE operand.public JPQLQueryBNF getQueryBNF()
Expression
.getQueryBNF
in class AbstractExpression
JPQLQueryBNF
, which represents the grammar of this Expression
public AbstractExpression getWhenClauses()
Expression
that represents the WHEN clauses.public boolean hasCaseOperand()
true
if the CASE operand was parsed; false
otherwisepublic boolean hasElse()
true
if the identifier ELSE was parsed; false
otherwisepublic boolean hasElseExpression()
true
if the ELSE expression was parsed; false
otherwisepublic boolean hasEnd()
true
if the identifier END was parsed; false
otherwisepublic boolean hasSpaceAfterCase()
true
if there was a whitespace after CASE; false
otherwisepublic boolean hasSpaceAfterCaseOperand()
true
if there was a whitespace after the case operand; false
otherwisepublic boolean hasSpaceAfterElse()
true
if there was a whitespace after ELSE; false
otherwisepublic boolean hasSpaceAfterElseExpression()
true
if there was a whitespace after the else expression; false
otherwisepublic boolean hasSpaceAfterWhenClauses()
true
if there was a whitespace after <the b>WHEN clause; false
otherwisepublic boolean hasWhenClauses()
true
if the WHEN clauses were parsed; false
otherwiseboolean isParsingComplete(WordParser wordParser, java.lang.String word, Expression expression)
isParsingComplete
in class AbstractExpression
wordParser
- The text to parse based on the current position of the cursorword
- The word that was retrieved from the given text, which is the first word in the textexpression
- The Expression
that has already been parsedtrue
if the text no longer can't be parsed by the current expression; false
if more can be parsedvoid parse(WordParser wordParser, boolean tolerant)
WordParser
.parse
in class AbstractExpression
wordParser
- The text to parse based on the current position of the cursortolerant
- Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queriesvoid toParsedText(java.lang.StringBuilder writer, boolean includeVirtual)
Expression
.toParsedText
in class AbstractExpression
writer
- The buffer used to append this Expression
's string representationincludeVirtual
- 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
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |