001package gudusoft.gsqlparser.nodes; 002 003 004import gudusoft.gsqlparser.EDbObjectType; 005import gudusoft.gsqlparser.TSourceTokenList; 006import gudusoft.gsqlparser.nodes.mssql.TProcedureOption; 007import gudusoft.gsqlparser.nodes.oracle.TInvokerRightsClause; 008import gudusoft.gsqlparser.TBaseType; 009 010/** 011 * Internal use in the parser. 012*/ 013 014public class TCreateProcedureSqlNode extends TParseTreeNode { 015 016 private TTypeName returnDataType = null; 017 018 public void setReturnDataType(TTypeName returnDataType) { 019 this.returnDataType = returnDataType; 020 } 021 022 public TTypeName getReturnDataType() { 023 024 return returnDataType; 025 } 026 027 private TConstant functionBody = null; 028 029 public TSourceTokenList getFunctionBodyTokenList() { 030 return functionBodyTokenList; 031 } 032 033 private TSourceTokenList functionBodyTokenList = null; 034 035 public void setFunctionBody(TConstant functionBody) { 036 this.functionBody = functionBody; 037 } 038 public void setFunctionBody(TDummy functionBody) { 039 // used in netezza 040 if (functionBody.node1 != null){ 041 if (functionBody.node1 instanceof TConstant){ 042 this.functionBody = (TConstant)functionBody.node1; 043 } 044 }else if ((functionBody.st1 != null)&&(functionBody.st2 != null)){ 045 functionBodyTokenList = new TSourceTokenList(); 046 for(int i=functionBody.st1.posinlist; i< functionBody.st2.posinlist;i++){ 047 functionBodyTokenList.add(functionBody.st1.container.get(i)); 048 } 049 } 050 051 } 052 053 public TConstant getFunctionBody() { 054 return functionBody; 055 } 056 private TConstant procedureLanguage; 057 058 public void setProcedureLanguage(TConstant procedureLanguage) { 059 this.procedureLanguage = procedureLanguage; 060 } 061 062 public TConstant getProcedureLanguage() { 063 return procedureLanguage; 064 } 065 private TConstant objfile; 066 private TConstant linkSymbol; 067 068 public TConstant getLinkSymbol() { 069 return linkSymbol; 070 } 071 072 public TConstant getObjfile() { 073 return objfile; 074 } 075 076 public void setFunctionOption(TCreateFunctionOption option){ 077 switch (option.getOptionType()){ 078 case block: 079 functionBody = option.getFunctionBody(); 080 break; 081 case stmts: 082 //setStmts(option.getSqlNodes()); 083 functionBody = option.getFunctionBody(); 084 break; 085 case language: 086 procedureLanguage = option.getLanguage(); 087 break; 088 case objfile: 089 objfile = option.getObjfile(); 090 linkSymbol = option.getLinkSymbol(); 091 break; 092 default: 093 break; 094 } 095 } 096 097 public void setFunctionOptions(TPTNodeList<TCreateFunctionOption> options){ 098 if (options == null) return; 099 for(int i=0;i<options.size();i++){ 100 setFunctionOption(options.getElement(i)); 101 } 102 } 103 104 private TObjectName endlabelName; 105 106 public void setEndlabelName(TObjectName endlabelName) { 107 this.endlabelName = endlabelName; 108 } 109 110 public TObjectName getEndlabelName() { 111 112 return endlabelName; 113 } 114 115 private TPTNodeList <TProcedureOption> procedureOptions; 116 117 public void setProcedureOptions(TPTNodeList<TProcedureOption> procedureOptions) { 118 this.procedureOptions = procedureOptions; 119 } 120 121 public TPTNodeList<TProcedureOption> getProcedureOptions() { 122 123 return procedureOptions; 124 } 125 126 private boolean isForReplication; 127 128 public void setForReplication(boolean isForReplication) { 129 this.isForReplication = isForReplication; 130 } 131 132 public boolean isForReplication() { 133 134 return isForReplication; 135 } 136 137 private TObjectName labelName; 138 139 public void setLabelName(TObjectName labelName) { 140 this.labelName = labelName; 141 } 142 143 public TObjectName getLabelName() { 144 145 return labelName; 146 } 147 148 private TInvokerRightsClause invokerRightsClause; 149 150 public void setInvokerRightsClause(TInvokerRightsClause invokerRightsClause) { 151 this.invokerRightsClause = invokerRightsClause; 152 } 153 154 public TInvokerRightsClause getInvokerRightsClause() { 155 156 return invokerRightsClause; 157 } 158 159 private TCallSpec callSpec = null; 160 161 public void setCallSpec(TCallSpec callSpec) { 162 this.callSpec = callSpec; 163 } 164 165 public TCallSpec getCallSpec() { 166 167 return callSpec; 168 } 169 170 public TObjectName getProcedureName() { 171 return procedureName; 172 } 173 174 private TObjectName procedureName = null; 175 176 public TParameterDeclarationList getParameters() { 177 return parameters; 178 } 179 180 private TParameterDeclarationList parameters = null; 181 182 public void setParameters(TParameterDeclarationList parameters) { 183 this.parameters = parameters; 184 } 185 186 public void setParametersByDummy(TDummy node) { 187 if (node == null) return; 188 if (node.node1 != null){ 189 this.parameters = (TParameterDeclarationList)node.node1; 190 } 191 } 192 193 private TStatementListSqlNode innerStmts = null; //oracle plsql 194 195 public void setInnerStmts(TStatementListSqlNode innerStmts) { 196 this.innerStmts = innerStmts; 197 } 198 199 private TStatementSqlNode stmt = null;//mysql single stmt in function body 200 201 public void setStmt(TStatementSqlNode stmt) { 202 this.stmt = stmt; 203 } 204 205 public TStatementSqlNode getStmt() { 206 207 return stmt; 208 } 209 210 private TBlockSqlNode blcok = null; // MySQL 211 212 public void setBlcok(TBlockSqlNode blcok) { 213 this.blcok = blcok; 214 } 215 216 public TBlockSqlNode getBlcok() { 217 218 return blcok; 219 } 220 221 public void init(Object arg1) 222 { 223 procedureName = (TObjectName)arg1; 224 //procedureName.setObjectType(TObjectName.ttobjProcedureName); 225 procedureName.setDbObjectType(EDbObjectType.procedure); 226 procedureName.splitNameInQuotedIdentifier(); 227 } 228 229 public int getKind() { 230 return kind; 231 } 232 233 public void setKind(int kind) { 234 this.kind = kind; 235 236 } 237 238 private int kind = TBaseType.kind_create; 239 240 public TExceptionClause getExceptionClause() { 241 return exceptionClause; 242 } 243 244 public void setExceptionClause(TExceptionClause exceptionClause) { 245 this.exceptionClause = exceptionClause; 246 } 247 248 private TExceptionClause exceptionClause = null; //plsql exception 249 250 public TStatementListSqlNode getInnerStmts() { 251 return innerStmts; 252 } 253 254 public TStatementListSqlNode getStmts() { 255 return stmts; 256 } 257 258 private TStatementListSqlNode stmts = null; 259 260 public TStatementListSqlNode getDeclareStmts() { 261 return declareStmts; 262 } 263 264 public void setDeclareStmts(TStatementListSqlNode declareStmts) { 265 this.declareStmts = declareStmts; 266 267 } 268 269 private TStatementListSqlNode declareStmts = null; 270 271 public void setStmts(TStatementListSqlNode stmts) { 272 this.stmts = stmts; 273 } 274 275 private TCompoundSqlNode compoundSqls = null; 276 277 public void setCompoundSqls(TCompoundSqlNode compoundSqls) { 278 this.compoundSqls = compoundSqls; 279 } 280 281 public TCompoundSqlNode getCompoundSqls() { 282 283 return compoundSqls; 284 } 285}