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}