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