001
002package gudusoft.gsqlparser.dlineage.dataflow.model;
003
004import gudusoft.gsqlparser.ESetOperatorType;
005import gudusoft.gsqlparser.nodes.TResultColumnList;
006import gudusoft.gsqlparser.stmt.TSelectSqlStatement;
007
008public class SelectSetResultSet extends ResultSet {
009
010    private TSelectSqlStatement selectObject;
011
012    public SelectSetResultSet(TSelectSqlStatement select, boolean isTarget) {
013        super(select, isTarget);
014        this.selectObject = select;
015    }
016
017    public ESetOperatorType getSetOperatorType() {
018        return selectObject.getSetOperatorType();
019    }
020
021    public TResultColumnList getResultColumnObject() {
022        return getResultColumnList(selectObject);
023    }
024    
025        private TResultColumnList getResultColumnList(TSelectSqlStatement stmt) {
026                if (stmt.isCombinedQuery()) {
027                        TResultColumnList columns = getResultColumnList(stmt.getLeftStmt());
028                        if(columns!=null){
029                                return columns;
030                        }
031                        return getResultColumnList(stmt.getRightStmt());
032                } else {
033                        return stmt.getResultColumnList();
034                }
035        }
036
037    public TSelectSqlStatement getSelectObject() {
038        return selectObject;
039    }
040}