@Test public void testInExpressionProblem() throws JSQLParserException { final List exprList = new ArrayList(); Select select = (Select) CCJSqlParserUtil.parse( "select * from foo where x in (?,?,?)" ); PlainSelect plainSelect = (PlainSelect) select.getSelectBody(); Expression where = plainSelect.getWhere(); where.accept( new ExpressionVisitorAdapter() { @Override public void visit(InExpression expr) { super.visit(expr); exprList.add(expr.getLeftExpression()); exprList.add(expr.getLeftItemsList()); exprList.add(expr.getRightItemsList()); } }); assertTrue(exprList.get(0) instanceof Expression); assertNull(exprList.get(1)); assertTrue(exprList.get(2) instanceof ItemsList); }
@Override public void visit(NullValue value) { }
ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor, PivotVisitor, SelectItemVisitor { @Override public void visit(NullValue value) { } }
ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor, PivotVisitor, SelectItemVisitor { @Override public void visit(NullValue value) { }  }
ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor, PivotVisitor, SelectItemVisitor { @Override public void visit(NullValue value) { }  SelectVisitor getSelectVisitor(); void setSelectVisitor(SelectVisitor selectVisitor); @Override void visit(NullValue value); @Override void visit(Function function); @Override void visit(SignedExpression expr); @Override void visit(JdbcParameter parameter); @Override void visit(JdbcNamedParameter parameter); @Override void visit(DoubleValue value); @Override void visit(LongValue value); @Override void visit(DateValue value); @Override void visit(TimeValue value); @Override void visit(TimestampValue value); @Override void visit(Parenthesis parenthesis); @Override void visit(StringValue value); @Override void visit(Addition expr); @Override void visit(Division expr); @Override void visit(Multiplication expr); @Override void visit(Subtraction expr); @Override void visit(AndExpression expr); @Override void visit(OrExpression expr); @Override void visit(Between expr); @Override void visit(EqualsTo expr); @Override void visit(GreaterThan expr); @Override void visit(GreaterThanEquals expr); @Override void visit(InExpression expr); @Override void visit(IsNullExpression expr); @Override void visit(LikeExpression expr); @Override void visit(MinorThan expr); @Override void visit(MinorThanEquals expr); @Override void visit(NotEqualsTo expr); @Override void visit(Column column); @Override void visit(SubSelect subSelect); @Override void visit(CaseExpression expr); @Override void visit(WhenClause expr); @Override void visit(ExistsExpression expr); @Override void visit(AllComparisonExpression expr); @Override void visit(AnyComparisonExpression expr); @Override void visit(Concat expr); @Override void visit(Matches expr); @Override void visit(BitwiseAnd expr); @Override void visit(BitwiseOr expr); @Override void visit(BitwiseXor expr); @Override void visit(CastExpression expr); @Override void visit(Modulo expr); @Override void visit(AnalyticExpression expr); @Override void visit(ExtractExpression expr); @Override void visit(IntervalExpression expr); @Override void visit(OracleHierarchicalExpression expr); @Override void visit(RegExpMatchOperator expr); @Override void visit(ExpressionList expressionList); @Override void visit(MultiExpressionList multiExprList); @Override void visit(JsonExpression jsonExpr); @Override void visit(JsonOperator expr); @Override void visit(RegExpMySQLOperator expr); @Override void visit(WithinGroupExpression wgexpr); @Override void visit(UserVariable var); @Override void visit(NumericBind bind); @Override void visit(KeepExpression expr); @Override void visit(MySQLGroupConcat groupConcat); @Override void visit(Pivot pivot); @Override void visit(PivotXml pivot); @Override void visit(AllColumns allColumns); @Override void visit(AllTableColumns allTableColumns); @Override void visit(SelectExpressionItem selectExpressionItem); @Override void visit(RowConstructor rowConstructor); @Override void visit(HexValue hexValue); @Override void visit(OracleHint hint); @Override void visit(TimeKeyExpression timeKeyExpression); @Override void visit(DateTimeLiteralExpression literal); }
ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor, PivotVisitor, SelectItemVisitor { @Override public void visit(NullValue value) { }  SelectVisitor getSelectVisitor(); void setSelectVisitor(SelectVisitor selectVisitor); @Override void visit(NullValue value); @Override void visit(Function function); @Override void visit(SignedExpression expr); @Override void visit(JdbcParameter parameter); @Override void visit(JdbcNamedParameter parameter); @Override void visit(DoubleValue value); @Override void visit(LongValue value); @Override void visit(DateValue value); @Override void visit(TimeValue value); @Override void visit(TimestampValue value); @Override void visit(Parenthesis parenthesis); @Override void visit(StringValue value); @Override void visit(Addition expr); @Override void visit(Division expr); @Override void visit(Multiplication expr); @Override void visit(Subtraction expr); @Override void visit(AndExpression expr); @Override void visit(OrExpression expr); @Override void visit(Between expr); @Override void visit(EqualsTo expr); @Override void visit(GreaterThan expr); @Override void visit(GreaterThanEquals expr); @Override void visit(InExpression expr); @Override void visit(IsNullExpression expr); @Override void visit(LikeExpression expr); @Override void visit(MinorThan expr); @Override void visit(MinorThanEquals expr); @Override void visit(NotEqualsTo expr); @Override void visit(Column column); @Override void visit(SubSelect subSelect); @Override void visit(CaseExpression expr); @Override void visit(WhenClause expr); @Override void visit(ExistsExpression expr); @Override void visit(AllComparisonExpression expr); @Override void visit(AnyComparisonExpression expr); @Override void visit(Concat expr); @Override void visit(Matches expr); @Override void visit(BitwiseAnd expr); @Override void visit(BitwiseOr expr); @Override void visit(BitwiseXor expr); @Override void visit(CastExpression expr); @Override void visit(Modulo expr); @Override void visit(AnalyticExpression expr); @Override void visit(ExtractExpression expr); @Override void visit(IntervalExpression expr); @Override void visit(OracleHierarchicalExpression expr); @Override void visit(RegExpMatchOperator expr); @Override void visit(ExpressionList expressionList); @Override void visit(MultiExpressionList multiExprList); @Override void visit(JsonExpression jsonExpr); @Override void visit(JsonOperator expr); @Override void visit(RegExpMySQLOperator expr); @Override void visit(WithinGroupExpression wgexpr); @Override void visit(UserVariable var); @Override void visit(NumericBind bind); @Override void visit(KeepExpression expr); @Override void visit(MySQLGroupConcat groupConcat); @Override void visit(Pivot pivot); @Override void visit(PivotXml pivot); @Override void visit(AllColumns allColumns); @Override void visit(AllTableColumns allTableColumns); @Override void visit(SelectExpressionItem selectExpressionItem); @Override void visit(RowConstructor rowConstructor); @Override void visit(HexValue hexValue); @Override void visit(OracleHint hint); @Override void visit(TimeKeyExpression timeKeyExpression); @Override void visit(DateTimeLiteralExpression literal);  }