public void visit(CaseExpression obj) { obj.setExpression(replaceExpression(obj.getExpression())); final int whenCount = obj.getWhenCount(); ArrayList whens = new ArrayList(whenCount); ArrayList thens = new ArrayList(whenCount); for (int i = 0; i < whenCount; i++) { whens.add(replaceExpression(obj.getWhenExpression(i))); thens.add(replaceExpression(obj.getThenExpression(i))); } obj.setWhen(whens, thens); if (obj.getElseExpression() != null) { obj.setElseExpression(replaceExpression(obj.getElseExpression())); } }
public void testGetWhenCount() { assertEquals(1, example(1).getWhenCount()); assertEquals(2, example(2).getWhenCount()); assertEquals(3, example(3).getWhenCount()); assertEquals(4, example(4).getWhenCount()); }
public void visit(CaseExpression obj) { obj.setExpression(replaceExpression(obj.getExpression())); final int whenCount = obj.getWhenCount(); ArrayList whens = new ArrayList(whenCount); ArrayList thens = new ArrayList(whenCount); for (int i = 0; i < whenCount; i++) { whens.add(replaceExpression(obj.getWhenExpression(i))); thens.add(replaceExpression(obj.getThenExpression(i))); } obj.setWhen(whens, thens); if (obj.getElseExpression() != null) { obj.setElseExpression(replaceExpression(obj.getElseExpression())); } }
public void visit(CaseExpression obj) { obj.setExpression(replaceExpression(obj.getExpression())); final int whenCount = obj.getWhenCount(); ArrayList whens = new ArrayList(whenCount); ArrayList thens = new ArrayList(whenCount); for (int i = 0; i < whenCount; i++) { whens.add(replaceExpression(obj.getWhenExpression(i))); thens.add(replaceExpression(obj.getThenExpression(i))); } obj.setWhen(whens, thens); if (obj.getElseExpression() != null) { obj.setElseExpression(replaceExpression(obj.getElseExpression())); } }
/** * @see java.lang.Object#clone() */ public Object clone() { Expression expr = (Expression)expression.clone(); int whenCount = getWhenCount(); ArrayList whenCopy = new ArrayList(whenCount); ArrayList thenCopy = new ArrayList(whenCount); for(int i = 0; i < whenCount; i++) { whenCopy.add(getWhenExpression(i).clone()); thenCopy.add(getThenExpression(i).clone()); } Expression elseExpr = getElseExpression(); if (elseExpr != null) { elseExpr = (Expression)elseExpr.clone(); } CaseExpression copy = new CaseExpression(expr, whenCopy, thenCopy); copy.setType(getType()); copy.setElseExpression(elseExpr); return copy; }
/** * @see java.lang.Object#clone() */ public Object clone() { Expression expr = (Expression)expression.clone(); int whenCount = getWhenCount(); ArrayList whenCopy = new ArrayList(whenCount); ArrayList thenCopy = new ArrayList(whenCount); for(int i = 0; i < whenCount; i++) { whenCopy.add(getWhenExpression(i).clone()); thenCopy.add(getThenExpression(i).clone()); } Expression elseExpr = getElseExpression(); if (elseExpr != null) { elseExpr = (Expression)elseExpr.clone(); } CaseExpression copy = new CaseExpression(expr, whenCopy, thenCopy); copy.setType(getType()); copy.setElseExpression(elseExpr); return copy; }
/** * @see java.lang.Object#clone() */ public Object clone() { Expression expr = (Expression)expression.clone(); int whenCount = getWhenCount(); ArrayList whenCopy = new ArrayList(whenCount); ArrayList thenCopy = new ArrayList(whenCount); for(int i = 0; i < whenCount; i++) { whenCopy.add(getWhenExpression(i).clone()); thenCopy.add(getThenExpression(i).clone()); } Expression elseExpr = getElseExpression(); if (elseExpr != null) { elseExpr = (Expression)elseExpr.clone(); } CaseExpression copy = new CaseExpression(expr, whenCopy, thenCopy); copy.setType(getType()); copy.setElseExpression(elseExpr); return copy; }
private Expression rewriteCaseExpression(CaseExpression expr) throws TeiidComponentException, TeiidProcessingException{ List<CompareCriteria> whens = new ArrayList<CompareCriteria>(expr.getWhenCount()); for (Expression expression: (List<Expression>)expr.getWhen()) { whens.add(new CompareCriteria((Expression)expr.getExpression().clone(), CompareCriteria.EQ, expression)); } SearchedCaseExpression sce = new SearchedCaseExpression(whens, expr.getThen()); sce.setElseExpression(expr.getElseExpression()); sce.setType(expr.getType()); return rewriteCaseExpression(sce); }
private Expression rewriteCaseExpression(CaseExpression expr) throws TeiidComponentException, TeiidProcessingException{ List<CompareCriteria> whens = new ArrayList<CompareCriteria>(expr.getWhenCount()); for (Expression expression: (List<Expression>)expr.getWhen()) { whens.add(new CompareCriteria((Expression)expr.getExpression().clone(), CompareCriteria.EQ, expression)); } SearchedCaseExpression sce = new SearchedCaseExpression(whens, expr.getThen()); sce.setElseExpression(expr.getElseExpression()); sce.setType(expr.getType()); return rewriteCaseExpression(sce); }
private Expression rewriteCaseExpression(CaseExpression expr) throws TeiidComponentException, TeiidProcessingException{ List<CompareCriteria> whens = new ArrayList<CompareCriteria>(expr.getWhenCount()); for (Expression expression: (List<Expression>)expr.getWhen()) { whens.add(new CompareCriteria((Expression)expr.getExpression().clone(), CompareCriteria.EQ, expression)); } SearchedCaseExpression sce = new SearchedCaseExpression(whens, expr.getThen()); sce.setElseExpression(expr.getElseExpression()); sce.setType(expr.getType()); return rewriteCaseExpression(sce); }
public static void helpTestWhenExpressions(CaseExpression caseExpr, int expectedWhens) { assertEquals(expectedWhens, caseExpr.getWhenCount()); for (int i = 0; i < expectedWhens; i++) { assertEquals(new Constant(String.valueOf((char)('a' + i))), caseExpr.getWhenExpression(i)); } }
public void visit(CaseExpression obj) { preVisitVisitor(obj); visitNode(obj.getExpression()); for(int i=0; i<obj.getWhenCount(); i++) { visitNode(obj.getWhenExpression(i)); visitNode(obj.getThenExpression(i)); } visitNode(obj.getElseExpression()); postVisitVisitor(obj); } public void visit(CommandStatement obj) {
public void visit(CaseExpression obj) { preVisitVisitor(obj); visitNode(obj.getExpression()); for(int i=0; i<obj.getWhenCount(); i++) { visitNode(obj.getWhenExpression(i)); visitNode(obj.getThenExpression(i)); } visitNode(obj.getElseExpression()); postVisitVisitor(obj); } public void visit(CommandStatement obj) {
public void visit(CaseExpression obj) { preVisitVisitor(obj); visitNode(obj.getExpression()); for(int i=0; i<obj.getWhenCount(); i++) { visitNode(obj.getWhenExpression(i)); visitNode(obj.getThenExpression(i)); } visitNode(obj.getElseExpression()); postVisitVisitor(obj); } public void visit(CommandStatement obj) {
private Object evaluate(CaseExpression expr, List<?> tuple) throws ExpressionEvaluationException, BlockedException, TeiidComponentException { Object exprVal = internalEvaluate(expr.getExpression(), tuple); for (int i = 0; i < expr.getWhenCount(); i++) { if (EquivalenceUtil.areEqual(exprVal, internalEvaluate(expr.getWhenExpression(i), tuple))) { return internalEvaluate(expr.getThenExpression(i), tuple); } } if (expr.getElseExpression() != null) { return internalEvaluate(expr.getElseExpression(), tuple); } return null; }
private Object evaluate(CaseExpression expr, List<?> tuple) throws ExpressionEvaluationException, BlockedException, TeiidComponentException { Object exprVal = internalEvaluate(expr.getExpression(), tuple); for (int i = 0; i < expr.getWhenCount(); i++) { if (EquivalenceUtil.areEqual(exprVal, internalEvaluate(expr.getWhenExpression(i), tuple))) { return internalEvaluate(expr.getThenExpression(i), tuple); } } if (expr.getElseExpression() != null) { return internalEvaluate(expr.getElseExpression(), tuple); } return null; }
private Object evaluate(CaseExpression expr, List<?> tuple) throws ExpressionEvaluationException, BlockedException, TeiidComponentException { Object exprVal = internalEvaluate(expr.getExpression(), tuple); for (int i = 0; i < expr.getWhenCount(); i++) { if (EquivalenceUtil.areEqual(exprVal, internalEvaluate(expr.getWhenExpression(i), tuple))) { return internalEvaluate(expr.getThenExpression(i), tuple); } } if (expr.getElseExpression() != null) { return internalEvaluate(expr.getElseExpression(), tuple); } return null; }
@Override public void visit( CaseExpression obj ) { append(CASE); append(SPACE); visitNode(obj.getExpression()); append(SPACE); for (int i = 0; i < obj.getWhenCount(); i++) { append(WHEN); append(SPACE); visitNode(obj.getWhenExpression(i)); append(SPACE); append(THEN); append(SPACE); visitNode(obj.getThenExpression(i)); append(SPACE); } if (obj.getElseExpression() != null) { append(ELSE); append(SPACE); visitNode(obj.getElseExpression()); append(SPACE); } append(END); }
@Override public void visit( CaseExpression obj ) { append(CASE); append(SPACE); visitNode(obj.getExpression()); append(SPACE); for (int i = 0; i < obj.getWhenCount(); i++) { append(WHEN); append(SPACE); visitNode(obj.getWhenExpression(i)); append(SPACE); append(THEN); append(SPACE); visitNode(obj.getThenExpression(i)); append(SPACE); } if (obj.getElseExpression() != null) { append(ELSE); append(SPACE); visitNode(obj.getElseExpression()); append(SPACE); } append(END); }
@Override public void visit( CaseExpression obj ) { append(CASE); append(SPACE); visitNode(obj.getExpression()); append(SPACE); for (int i = 0; i < obj.getWhenCount(); i++) { append(WHEN); append(SPACE); visitNode(obj.getWhenExpression(i)); append(SPACE); append(THEN); append(SPACE); visitNode(obj.getThenExpression(i)); append(SPACE); } if (obj.getElseExpression() != null) { append(ELSE); append(SPACE); visitNode(obj.getElseExpression()); append(SPACE); } append(END); }