Class UpdateClause
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.UpdateClause
-
- All Implemented Interfaces:
Expression
public final class UpdateClause extends AbstractExpression
This is the update clause of the update statement.An UPDATE statement provides bulk operations over sets of entities of a single entity class (together with its subclasses, if any). Only one entity abstract schema type may be specified in the UPDATE clause.
BNF:update_clause ::= UPDATE abstract_schema_name [[AS] identification_variable] SET update_item {, update_item}*- Since:
- 2.3
- Version:
- 2.5
- Author:
- Pascal Filion
- See Also:
UpdateStatement,UpdateItem
-
-
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 UpdateClause(AbstractExpression parent)Creates a newUpdateClause.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(ExpressionVisitor visitor)Visits thisExpressionby the givenvisitor.voidacceptChildren(ExpressionVisitor visitor)Visits the children of thisExpression.CollectionExpressionbuildCollectionExpression()Creates a newCollectionExpressionthat will wrap the single update item.JPQLQueryBNFfindQueryBNF(Expression expression)Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.java.lang.StringgetActualSetIdentifier()Returns the actual SET found in the string representation of the JPQL query, which has the actual case that was used.java.lang.StringgetActualUpdateIdentifier()Returns the actual UPDATE found in the string representation of the JPQL query, which has the actual case that was used.JPQLQueryBNFgetQueryBNF()Returns the BNF of thisExpression.ExpressiongetRangeVariableDeclaration()Returns theExpressionrepresenting the range variable declaration.ExpressiongetUpdateItems()Returns theExpressionrepresenting the single update item or the collection of update items.booleanhasRangeVariableDeclaration()Determines whether the range variable declaration was parsed.booleanhasSet()Determines whether SET was parsed or not.booleanhasSpaceAfterRangeVariableDeclaration()Determines whether a whitespace was found after the abstract schema name declaration.booleanhasSpaceAfterSet()Determines whether a whitespace was found after SET.booleanhasSpaceAfterUpdate()Determines whether a whitespace was found after the identifier UPDATE.booleanhasUpdateItems()Determines whether the update items section of the query was parsed.-
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
-
UpdateClause
public UpdateClause(AbstractExpression parent)
Creates a newUpdateClause.- Parameters:
parent- The parent of this expression
-
-
Method Detail
-
accept
public void accept(ExpressionVisitor visitor)
Visits thisExpressionby the givenvisitor.- Parameters:
visitor- TheExpressionVisitorto 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
Expressionsub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitorin order to traverse the entire sub-hierarchy.- Parameters:
visitor- Thevisitorto visit the children of this object.
-
buildCollectionExpression
public CollectionExpression buildCollectionExpression()
Creates a newCollectionExpressionthat will wrap the single update item.- Returns:
- The single update item represented by a temporary collection
-
findQueryBNF
public JPQLQueryBNF findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.- Specified by:
findQueryBNFin interfaceExpression- Overrides:
findQueryBNFin classAbstractExpression- Parameters:
expression- TheExpressionthat is a descendant of this one- Returns:
- The
JPQLQueryBNFthat was used to parse the given expression
-
getActualSetIdentifier
public java.lang.String getActualSetIdentifier()
Returns the actual SET found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The SET identifier that was actually parsed, or an empty string if it was not parsed
-
getActualUpdateIdentifier
public java.lang.String getActualUpdateIdentifier()
Returns the actual UPDATE found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The UPDATE identifier that was actually parsed
-
getQueryBNF
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression.- Returns:
- The
JPQLQueryBNF, which represents the grammar of thisExpression
-
getRangeVariableDeclaration
public Expression getRangeVariableDeclaration()
Returns theExpressionrepresenting the range variable declaration.- Returns:
- The expression that was parsed representing the range variable declaration
-
getUpdateItems
public Expression getUpdateItems()
Returns theExpressionrepresenting the single update item or the collection of update items.- Returns:
- The expression that was parsed representing the single or multiple update items
-
hasRangeVariableDeclaration
public boolean hasRangeVariableDeclaration()
Determines whether the range variable declaration was parsed.- Returns:
trueif the range variable declaration was parsed;falseotherwise
-
hasSet
public boolean hasSet()
Determines whether SET was parsed or not.- Returns:
trueif SET was part of the query;falseotherwise
-
hasSpaceAfterRangeVariableDeclaration
public boolean hasSpaceAfterRangeVariableDeclaration()
Determines whether a whitespace was found after the abstract schema name declaration.- Returns:
trueif there was a whitespace after the abstract schema name declaration;falseotherwise
-
hasSpaceAfterSet
public boolean hasSpaceAfterSet()
Determines whether a whitespace was found after SET.- Returns:
trueif there was a whitespace after SET;falseotherwise
-
hasSpaceAfterUpdate
public boolean hasSpaceAfterUpdate()
Determines whether a whitespace was found after the identifier UPDATE.- Returns:
trueif there was a whitespace after the identifier UPDATE;falseotherwise
-
hasUpdateItems
public boolean hasUpdateItems()
Determines whether the update items section of the query was parsed.- Returns:
trueif something was parsed after SET even if it was a malformed expression;falseif nothing was parsed
-
-