/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package net.sf.jsqlparser; import java.util.ArrayList; import java.util.List; import net.sf.jsqlparser.statement.select.AllColumns; import net.sf.jsqlparser.statement.select.AllTableColumns; import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.SelectBody; import net.sf.jsqlparser.statement.select.SelectExpressionItem; import net.sf.jsqlparser.statement.select.SelectItem; import net.sf.jsqlparser.statement.select.SelectItemVisitor; import net.sf.jsqlparser.statement.select.SelectVisitor; import net.sf.jsqlparser.statement.select.Union; /** * * @author mg */ public class ResultsFinder implements SelectVisitor, SelectItemVisitor { private List<SelectItem> results = new ArrayList<>(); public static List<SelectItem> getResults(SelectBody aSelectBody) { ResultsFinder instance = new ResultsFinder(); aSelectBody.accept(instance); return instance.results; } @Override public void visit(AllColumns allColumns) { results.add(allColumns); } @Override public void visit(AllTableColumns allTableColumns) { results.add(allTableColumns); } @Override public void visit(SelectExpressionItem selectExpressionItem) { results.add(selectExpressionItem); } @Override public void visit(PlainSelect plainSelect) { for (Object oItem : plainSelect.getSelectItems()) { SelectItem item = (SelectItem) oItem; item.accept(this); } } @Override public void visit(Union union) { List selects = union.getPlainSelects(); if (selects != null && !selects.isEmpty()) { ((PlainSelect) selects.get(0)).accept(this); } } }