@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 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 void visit(GeneralCaseExpression expression) { handleCaseWhen(null, expression.getWhenClauses(), expression.getDefaultExpr()); }
@Override public void visit(GeneralCaseExpression expression) { handleCaseWhen(null, expression.getWhenClauses(), expression.getDefaultExpr()); }
@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 void visit(GeneralCaseExpression expression) { List<PathPosition> currentPositions = pathPositions; List<PathPosition> newPositions = new ArrayList<PathPosition>(); int positionsSize = currentPositions.size(); for (int j = 0; j < positionsSize; j++) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { PathPosition position = currentPositions.get(j).copy(); pathPositions = new ArrayList<>(); pathPositions.add(currentPosition = position); expressions.get(i).accept(this); newPositions.addAll(pathPositions); } if (expression.getDefaultExpr() != null) { PathPosition position = currentPositions.get(j).copy(); pathPositions = new ArrayList<>(); pathPositions.add(currentPosition = position); expression.getDefaultExpr().accept(this); newPositions.addAll(pathPositions); } } currentPosition = null; pathPositions = newPositions; }
@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> 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 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 Boolean visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (expressions.get(i).accept(this)) { return true; } } if (expression.getDefaultExpr() != null) { return expression.getDefaultExpr().accept(this); } return false; }
@Override public void visit(GeneralCaseExpression expression) { List<PathPosition> currentPositions = pathPositions; List<PathPosition> newPositions = new ArrayList<PathPosition>(); int positionsSize = currentPositions.size(); for (int j = 0; j < positionsSize; j++) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { PathPosition position = currentPositions.get(j).copy(); pathPositions = new ArrayList<>(); pathPositions.add(currentPosition = position); expressions.get(i).accept(this); newPositions.addAll(pathPositions); } if (expression.getDefaultExpr() != null) { PathPosition position = currentPositions.get(j).copy(); pathPositions = new ArrayList<>(); pathPositions.add(currentPosition = position); expression.getDefaultExpr().accept(this); newPositions.addAll(pathPositions); } } currentPosition = null; pathPositions = newPositions; }
@Override public Boolean visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (expressions.get(i).accept(this)) { return true; } } if (expression.getDefaultExpr() != null) { return expression.getDefaultExpr().accept(this); } return false; }
private static boolean isNullable(EntityMetamodel metamodel, GeneralCaseExpression expr) { if (expr.getDefaultExpr() != null && isNullable(metamodel, expr.getDefaultExpr())) { return true; } List<WhenClauseExpression> expressions = expr.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (isNullable(metamodel, expressions.get(i).getResult())) { return true; } } return false; }
List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); EXPRESSION_LOOP: for (int i = 0; i < size; i++) {
@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 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 Boolean visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (Boolean.TRUE == expressions.get(i).accept(this)) { onModifier(new ExpressionListModifier(expressions, i)); } } if (expression.getDefaultExpr() != null && Boolean.TRUE == expression.getDefaultExpr().accept(this)) { onModifier(new GeneralCaseExpressionDefaultModifier(expression)); } return Boolean.FALSE; }
@Override public Boolean visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (Boolean.TRUE == expressions.get(i).accept(this)) { onModifier(new ExpressionListModifier(expressions, i)); } } if (expression.getDefaultExpr() != null && Boolean.TRUE == expression.getDefaultExpr().accept(this)) { onModifier(new GeneralCaseExpressionDefaultModifier(expression)); } return Boolean.FALSE; }
@Override public Boolean visit(GeneralCaseExpression expression) { List<WhenClauseExpression> expressions = expression.getWhenClauses(); int size = expressions.size(); boolean oldCollect = setCollect(false); for (int i = 0; i < size; i++) { if (expressions.get(i).accept(this)) { setCollect(true); collectExpressions(expressions, 0, i); collectExpressions(expressions, i + 1, size); if (expression.getDefaultExpr() != null) { expression.getDefaultExpr().accept(this); } setCollect(oldCollect); return true; } } if (expression.getDefaultExpr() != null && expression.getDefaultExpr().accept(this)) { collectExpressions(expressions, 0, size); setCollect(oldCollect); return true; } setCollect(oldCollect); if (oldCollect) { this.expressions.add(expression); } return false; }