@Override public void visit(GeneralCaseExpression expression) { handleCaseWhen(null, expression.getWhenClauses(), expression.getDefaultExpr()); }
@Override public Expression visit(GeneralCaseExpression expression) { List<WhenClauseExpression> newExpressions = visitExpressionList(expression.getWhenClauses()); Expression newDefaultExpr = null; if (expression.getDefaultExpr() != null) { newDefaultExpr = expression.getDefaultExpr().accept(this); } if (newExpressions != null) { return new GeneralCaseExpression(newExpressions, newDefaultExpr); } else if (expression.getDefaultExpr() != newDefaultExpr) { return new GeneralCaseExpression(expression.getWhenClauses(), newDefaultExpr); } return expression; }
@Override public int hashCode() { int hash = super.hashCode(); hash = 89 * hash + (this.caseOperand != null ? this.caseOperand.hashCode() : 0); return hash; }
@Override public Expression visit(GeneralCaseExpression expression) { for (int i = 0; i < expression.getWhenClauses().size(); i++) { expression.getWhenClauses().set(i, (WhenClauseExpression) expression.getWhenClauses().get(i).accept(this)); } if (expression.getDefaultExpr() != null) { expression.setDefaultExpr(expression.getDefaultExpr().accept(this)); } return expression; }
@Override public GeneralCaseExpression clone(boolean resolved) { int size = whenClauses.size(); List<WhenClauseExpression> newWhenClauses = new ArrayList<WhenClauseExpression>(size); for (int i = 0; i < size; i++) { newWhenClauses.add(whenClauses.get(i).clone(resolved)); } if (defaultExpr == null) { return new GeneralCaseExpression(whenClauses, null); } else { return new GeneralCaseExpression(newWhenClauses, defaultExpr.clone(resolved)); } }
@Override public Expression get() { return target.getDefaultExpr(); }
@Override public void set(Expression expression) { target.setDefaultExpr(expression); }
@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final SimpleCaseExpression other = (SimpleCaseExpression) obj; if (!super.equals(other)) { return false; } else if (this.caseOperand != other.caseOperand && (this.caseOperand == null || !this.caseOperand.equals(other.caseOperand))) { return false; } return true; } }
@Override public Expression visit(GeneralCaseExpression expression) { for (int i = 0; i < expression.getWhenClauses().size(); i++) { expression.getWhenClauses().set(i, (WhenClauseExpression) expression.getWhenClauses().get(i).accept(this)); } if (expression.getDefaultExpr() != null) { expression.setDefaultExpr(expression.getDefaultExpr().accept(this)); } return expression; }
@Override public GeneralCaseExpression clone(boolean resolved) { int size = whenClauses.size(); List<WhenClauseExpression> newWhenClauses = new ArrayList<WhenClauseExpression>(size); for (int i = 0; i < size; i++) { newWhenClauses.add(whenClauses.get(i).clone(resolved)); } if (defaultExpr == null) { return new GeneralCaseExpression(whenClauses, null); } else { return new GeneralCaseExpression(newWhenClauses, defaultExpr.clone(resolved)); } }
@Override public Expression get() { return target.getDefaultExpr(); }
@Override public void set(Expression expression) { target.setDefaultExpr(expression); }
@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final SimpleCaseExpression other = (SimpleCaseExpression) obj; if (!super.equals(other)) { return false; } else if (this.caseOperand != other.caseOperand && (this.caseOperand == null || !this.caseOperand.equals(other.caseOperand))) { return false; } return true; } }
@Override public void visit(GeneralCaseExpression expression) { handleCaseWhen(null, expression.getWhenClauses(), expression.getDefaultExpr()); }
@Override public Expression visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.set(i, (WhenClauseExpression) expressions.get(i).accept(this)); } if (expression.getDefaultExpr() != null) { expression.setDefaultExpr(expression.getDefaultExpr().accept(this)); } return expression; }
@Override public Expression visit(GeneralCaseExpression expression) { List<WhenClauseExpression> newExpressions = visitExpressionList(expression.getWhenClauses()); Expression newDefaultExpr = null; if (expression.getDefaultExpr() != null) { newDefaultExpr = expression.getDefaultExpr().accept(this); } if (newExpressions != null) { return new GeneralCaseExpression(newExpressions, newDefaultExpr); } else if (expression.getDefaultExpr() != newDefaultExpr) { return new GeneralCaseExpression(expression.getWhenClauses(), newDefaultExpr); } return expression; }
@Override public T otherwiseExpression(String elseExpression) { verifyBuilderEnded(); if (whenClauses.isEmpty()) { throw new IllegalStateException("No when clauses specified"); } if (expression != null) { throw new IllegalStateException("Method otherwise/otherwiseExpression called multiple times"); } expression = new GeneralCaseExpression(whenClauses, expressionFactory.createScalarExpression(elseExpression)); listener.onBuilderEnded(this); return result; }
@Override public int hashCode() { int hash = super.hashCode(); hash = 89 * hash + (this.caseOperand != null ? this.caseOperand.hashCode() : 0); return hash; }
@Override public void visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.get(i).accept(this); } if (expression.getDefaultExpr() != null) { expression.getDefaultExpr().accept(this); } }
@Override public Expression visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.set(i, (WhenClauseExpression) expressions.get(i).accept(this)); } if (expression.getDefaultExpr() != null) { expression.setDefaultExpr(expression.getDefaultExpr().accept(this)); } return expression; }