|
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.ParsingTypeA enumeration used to determine how CaseExpression#isParsingComplete(WordParser, String) should behaves. |
| Field Summary | |
|---|---|
private AbstractExpression |
caseOperandThe Expression representing the case operand. |
private AbstractExpression |
elseExpressionThe Expression representing the ELSE expression. |
private boolean |
hasElseDetermines whether the identifier ELSE was parsed. |
private boolean |
hasEndDetermines whether the identifier END was parsed. |
private boolean |
hasSpaceAfterCaseDetermines whether a whitespace was parsed after CASE. |
private boolean |
hasSpaceAfterCaseOperandDetermines whether a whitespace was parsed after the case operand. |
private boolean |
hasSpaceAfterElseDetermines whether a whitespace was parsed after ELSE. |
private boolean |
hasSpaceAfterElseExpressionDetermines whether a whitespace was parsed after the BETWEEN expression. |
private boolean |
hasSpaceAfterWhenClausesDetermines whether a whitespace was parsed after WHEN clause. |
private CaseExpression.ParsingType |
parsingTypeUsed to determine how to check if the parsing is complete. |
private AbstractExpression |
whenClausesThe 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 expression| Method 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 AbstractExpressionchildren - The collection used to store the childrenvoid addOrderedChildrenTo(java.util.List<StringExpression> children)
StringExpressions representing this Expression.addOrderedChildrenTo in class AbstractExpressionchildren - The list used to store the string representation of this Expressionpublic Expression getCaseOperand()
Expression that represents the CASE operand.public AbstractExpression getElseExpression()
Expression that represents the ELSE operand.public JPQLQueryBNF getQueryBNF()
Expression.getQueryBNF in class AbstractExpressionJPQLQueryBNF, which represents the grammar of this Expressionpublic 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 AbstractExpressionwordParser - 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 AbstractExpressionwordParser - 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 queries
void toParsedText(java.lang.StringBuilder writer,
boolean includeVirtual)
Expression.toParsedText in class AbstractExpressionwriter - 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 | ||||||||