001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.*;
008
009public class TAlterProcedureStmt extends TCustomSqlStatement {
010
011    private TObjectName ownerName;
012
013    public TObjectName getOwnerName() {
014        return ownerName;
015    }
016
017    public enum AlterType { unknown, sqlForm, externalForm, recompile,encryption,add};
018
019    private TAlterProcedureStmt.AlterType alterType;
020
021    public TAlterProcedureStmt.AlterType getAlterType() {
022        return alterType;
023    }
024
025
026    private TObjectName procedureName;
027    private TParameterDeclarationList argTypeList;
028
029    /**
030     * function name
031     *
032     * @return function name
033     */
034    public TObjectName getProcedureName() {
035        return procedureName;
036    }
037
038    public TParameterDeclarationList getArgTypeList() {
039        return argTypeList;
040    }
041
042    public TAlterProcedureStmt(EDbVendor dbvendor) {
043        super(dbvendor);
044        sqlstatementtype = ESqlStatementType.sstalterprocedure;
045    }
046
047    public int doParseStatement(TCustomSqlStatement psql) {
048        if (rootNode == null) return -1;
049        super.doParseStatement(psql);
050        TAlterProcedureSqlNode node = (TAlterProcedureSqlNode) rootNode;
051        alterType = node.getAlterType();
052        procedureName = node.getProcedureName();
053        procedureName.setDbObjectType(EDbObjectType.procedure);
054
055        return 0;
056    }
057
058    public void accept(TParseTreeVisitor v){
059        v.preVisit(this);
060
061        v.postVisit(this);
062    }
063
064    public void acceptChildren(TParseTreeVisitor v){
065        v.preVisit(this);
066        v.postVisit(this);
067    }
068
069
070}