001package gudusoft.gsqlparser.stmt.db2;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
005import gudusoft.gsqlparser.stmt.TSelectSqlStatement;
006import gudusoft.gsqlparser.nodes.TReturnSqlNode;
007import gudusoft.gsqlparser.nodes.TExpression;
008
009public class TDb2ReturnStmt extends TCustomDb2Stmt {
010     public TDb2ReturnStmt (EDbVendor dbvendor){
011        super(dbvendor);
012        sqlstatementtype = ESqlStatementType.sstdb2returnstmt ;
013        }
014
015    void buildsql() {
016    }
017
018    void clear() {
019    }
020
021    String getasprettytext() {
022        return "";
023    }
024
025    void iterate(TVisitorAbs pvisitor) {
026    }
027
028    public int doParseStatement(TCustomSqlStatement psql) {
029        if (rootNode == null) return -1;
030        TReturnSqlNode returnSqlNode = (TReturnSqlNode)rootNode;
031
032        super.doParseStatement(psql);
033        if (returnSqlNode.getExpr() != null){
034            this.returnExpr = returnSqlNode.getExpr();
035        }
036        if (returnSqlNode.getSelectSqlNode() != null){
037            subquery = new TSelectSqlStatement(this.dbvendor);
038            subquery.rootNode = returnSqlNode.getSelectSqlNode();
039            subquery.doParseStatement(this);
040        }
041        return 0;
042    }
043
044    private TExpression returnExpr = null;
045    private TSelectSqlStatement subquery = null;
046
047    public TExpression getReturnExpr() {
048        return returnExpr;
049    }
050
051    public TSelectSqlStatement getSubquery() {
052        return subquery;
053    }
054
055    public void accept(TParseTreeVisitor v){
056        v.preVisit(this);
057        if (returnExpr != null) returnExpr.accept(v);
058        if (subquery != null) subquery.accept(v);
059        v.postVisit(this);
060    }
061
062    public void setReturnExpr(TExpression returnExpr) {
063        this.returnExpr = returnExpr;
064    }
065
066    public void setSubquery(TSelectSqlStatement subquery) {
067        this.subquery = subquery;
068    }
069}