public void visit(CaseExpression obj) { if (obj.getType() == null){ this.unresolvedSymbols.add(obj); } }
/** * @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 void testSetType() { CaseExpression expr = example(4); expr.setType(DataTypeManager.DefaultDataClasses.BIG_DECIMAL); assertEquals(DataTypeManager.DefaultDataClasses.BIG_DECIMAL, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.BIG_INTEGER); assertEquals(DataTypeManager.DefaultDataClasses.BIG_INTEGER, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.BLOB); assertEquals(DataTypeManager.DefaultDataClasses.BLOB, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.BOOLEAN); assertEquals(DataTypeManager.DefaultDataClasses.BOOLEAN, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.BYTE); assertEquals(DataTypeManager.DefaultDataClasses.BYTE, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.CHAR); assertEquals(DataTypeManager.DefaultDataClasses.CHAR, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.CLOB); assertEquals(DataTypeManager.DefaultDataClasses.CLOB, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.DATE); assertEquals(DataTypeManager.DefaultDataClasses.DATE, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.DOUBLE); assertEquals(DataTypeManager.DefaultDataClasses.DOUBLE, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.FLOAT); assertEquals(DataTypeManager.DefaultDataClasses.FLOAT, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.INTEGER); assertEquals(DataTypeManager.DefaultDataClasses.INTEGER, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.LONG); assertEquals(DataTypeManager.DefaultDataClasses.LONG, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.NULL); assertEquals(DataTypeManager.DefaultDataClasses.NULL, expr.getType()); expr.setType(DataTypeManager.DefaultDataClasses.OBJECT); assertEquals(DataTypeManager.DefaultDataClasses.OBJECT, expr.getType());
void resolveCaseExpression(CaseExpression obj) throws QueryResolverException { if (obj.getType() != null) { return;
void resolveCaseExpression(CaseExpression obj) throws QueryResolverException { if (obj.getType() != null) { return;
void resolveCaseExpression(CaseExpression obj) throws QueryResolverException { if (obj.getType() != null) { return;