/** * {@inheritDoc} */ @Override public void visit(DeleteStatement expression) { expression.getDeleteClause().accept(this); // Don't traverse the tree if the path expressions don't need to be virtually qualified if ((variableName != null) && expression.hasWhereClause()) { expression.getWhereClause().accept(this); } }
/** * Returns the {@link Expression} representing the <b>WHERE</b> clause. * * @return The expression representing the <b>WHERE</b> clause */ public Expression getWhereClause() { if (whereClause == null) { whereClause = buildNullExpression(); } return whereClause; }
/** * {@inheritDoc} */ @Override protected void addOrderedChildrenTo(List<Expression> children) { children.add(deleteClause); if (hasSpace) { children.add(buildStringExpression(SPACE)); } children.add(whereClause); }
/** * {@inheritDoc} */ @Override protected void addChildrenTo(Collection<Expression> children) { children.add(getDeleteClause()); children.add(getWhereClause()); }
/** * {@inheritDoc} */ public void visit(DeleteStatement expression) { if (!badExpression) { if (expression.hasWhereClause()) { expression.getWhereClause().accept(this); } else { expression.getDeleteClause().accept(this); if (expression.hasSpaceAfterDeleteClause()) { virtualSpace = true; } } queryPosition.addPosition(expression, expression.getLength() - correction); } }
/** * {@inheritDoc} */ public Expression getClause(DeleteStatement expression) { return expression.getDeleteClause(); }
/** * {@inheritDoc} */ public Expression getClause(DeleteStatement expression) { return expression.getWhereClause(); }
/** * {@inheritDoc} */ public boolean hasClause(DeleteStatement expression) { return expression.hasWhereClause(); }
/** * {@inheritDoc} */ @Override protected void parse(WordParser wordParser, boolean tolerant) { // Parse 'DELETE FROM' deleteClause = new DeleteClause(this); deleteClause.parse(wordParser, tolerant); hasSpace = wordParser.skipLeadingWhitespace() > 0; // Parse 'WHERE' if (wordParser.startsWithIdentifier(WHERE)) { whereClause = new WhereClause(this); whereClause.parse(wordParser, tolerant); } // Now fully qualify attribute names with a virtual identification variable accept(new FullyQualifyPathExpressionVisitor()); }
/** * {@inheritDoc} */ public JPQLQueryBNF getQueryBNF() { return getQueryBNF(DeleteStatementBNF.ID); }
/** * {@inheritDoc} */ @Override protected AbstractExpression buildExpression(AbstractExpression parent, WordParser wordParser, String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant) { expression = new DeleteStatement(parent); expression.parse(wordParser, tolerant); return expression; } }
/** * {@inheritDoc} */ @Override protected void addChildrenTo(Collection<Expression> children) { children.add(getDeleteClause()); children.add(getWhereClause()); }
private void buildFrom() { ListIterator<Expression> fromIter = null; if (query.isSelectStatement() && query.getSelectStatement().hasFromClause()) { FromClause fromClause = (FromClause) query.getSelectStatement().getFromClause(); fromIter = fromClause.children().iterator(); } else if (query.isUpdateStatement()) { fromIter = query.getUpdateStatement().getUpdateClause().children().iterator(); } if (query.isDeleteStatement()) { fromIter = query.getDeleteStatement().getDeleteClause().children().iterator(); } if (fromIter != null) { while (fromIter.hasNext()) { String textObj = fromIter.next().toActualText().trim(); if (!StringUtils.isEmpty(textObj)) { query.setFrom(textObj); break; } } } }
/** * Compile where. */ private void compileWhere() { WhereClause whereClause = null; if (query.isSelectStatement()) { whereClause = (WhereClause) query.getSelectStatement().getWhereClause(); } else if (query.isUpdateStatement()) { whereClause = (WhereClause) query.getUpdateStatement().getWhereClause(); } if (query.isDeleteStatement()) { whereClause = (WhereClause) query.getDeleteStatement().getWhereClause(); } String content = whereClause.getConditionalExpression().toActualText(); if (whereClause != null && content.length() == 0) { throw new JPQLParseException("keyword without value[WHERE]"); } query.setFilter(content); }
private boolean isWhereClause() { if (query.isSelectStatement()) { return query.getSelectStatement().hasWhereClause(); } else if (query.isUpdateStatement()) { return query.getUpdateStatement().hasWhereClause(); } if (query.isDeleteStatement()) { return query.getDeleteStatement().hasWhereClause(); } return false; }
/** * {@inheritDoc} */ @Override protected void parse(WordParser wordParser, boolean tolerant) { // Parse 'DELETE FROM' deleteClause = new DeleteClause(this); deleteClause.parse(wordParser, tolerant); hasSpace = wordParser.skipLeadingWhitespace() > 0; // Parse 'WHERE' if (wordParser.startsWithIdentifier(WHERE)) { whereClause = new WhereClause(this); whereClause.parse(wordParser, tolerant); } // Now fully qualify attribute names with a virtual identification variable accept(new FullyQualifyPathExpressionVisitor()); }
/** * {@inheritDoc} */ public JPQLQueryBNF getQueryBNF() { return getQueryBNF(DeleteStatementBNF.ID); }
/** * {@inheritDoc} */ @Override protected AbstractExpression buildExpression(AbstractExpression parent, WordParser wordParser, String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant) { expression = new DeleteStatement(parent); expression.parse(wordParser, tolerant); return expression; } }
/** * {@inheritDoc} */ @Override public void visit(DeleteStatement expression) { expression.getDeleteClause().accept(this); // Don't traverse the tree if the path expressions don't need to be virtually qualified if ((variableName != null) && expression.hasWhereClause()) { expression.getWhereClause().accept(this); } }
/** * {@inheritDoc} */ public void acceptChildren(ExpressionVisitor visitor) { getDeleteClause().accept(visitor); getWhereClause().accept(visitor); }