//expected results
Table tableN1 = new Table(); tableN1.setName("N1");
Table tableN2 = new Table(); tableN2.setName("N2");
Table tableLineitem = new Table(); tableLineitem.setName("LINEITEM");
Column se1 = new Column(); se1.setTable(tableN1); se1.setColumnName("NAME");
Column se2 = new Column(); se2.setTable(tableN2); se2.setColumnName("NAME");
Column ls = new Column(); ls.setTable(tableLineitem); ls.setColumnName("SHIPDATE");
ExpressionList el = new ExpressionList();
el.setExpressions(Arrays.asList(ls));
Function se3 = new Function(); se3.setName("EXTRACT_YEAR"); se3.setParameters(el);
Column le = new Column(); le.setTable(tableLineitem); le.setColumnName("EXTENDEDPRICE");
Column ld = new Column(); ld.setTable(tableLineitem); ld.setColumnName("DISCOUNT");
Subtraction diff = new Subtraction(); diff.setLeftExpression(new DoubleValue("1.0")); diff.setRightExpression(ld);
Parenthesis diffPnths = new Parenthesis();diffPnths.setExpression(diff);
Multiplication se4 = new Multiplication(); se4.setLeftExpression(le); se4.setRightExpression(diffPnths);
List<Expression> expListExpr = Arrays.asList(se1, se2, se3, se4);