001package gudusoft.gsqlparser.stmt.mysql;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.TDeclareSqlNode;
005import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
006import gudusoft.gsqlparser.nodes.TObjectName;
007import gudusoft.gsqlparser.nodes.TDeclareVariableList;
008
009public class TMySQLDeclare extends TCustomMySQLStmt {
010     public TMySQLDeclare (EDbVendor dbvendor){
011        super(dbvendor);
012        sqlstatementtype = ESqlStatementType.sstmysqldeclare ;
013        }
014
015    void buildsql() {
016    }
017
018    void clear() {
019    }
020
021    String getasprettytext() {
022        return "";
023    }
024
025    private TObjectName cursorName = null;
026    private EDeclareType declareType = EDeclareType.variable;
027
028    public TObjectName getCursorName() {
029        return cursorName;
030    }
031
032    /**
033     *
034     * @return   EDeclareType.variable or EDeclareType.cursor
035     */
036    public EDeclareType getDeclareType() {
037        return declareType;
038    }
039
040    public TDeclareVariableList getVariables() {
041        return variables;
042    }
043
044    private TDeclareVariableList variables = null;
045
046    public int doParseStatement(TCustomSqlStatement psql) {
047        if (rootNode == null) return -1;
048        TDeclareSqlNode declareSqlNode = (TDeclareSqlNode)rootNode;
049
050        super.doParseStatement(psql);
051        this.declareType = declareSqlNode.getDeclareType();
052        if (this.declareType == EDeclareType.variable){
053            this.variables = declareSqlNode.getVariables();
054        }
055
056        return 0;
057    }
058
059    public void accept(TParseTreeVisitor v){
060        v.preVisit(this);
061
062        v.postVisit(this);
063    }
064
065    public void acceptChildren(TParseTreeVisitor v){
066        v.preVisit(this);
067        if (variables != null) variables.acceptChildren(v);
068        v.postVisit(this);
069    }
070
071    public void setCursorName(TObjectName cursorName) {
072        this.cursorName = cursorName;
073    }
074
075    public void setDeclareType(EDeclareType declareType) {
076        this.declareType = declareType;
077    }
078
079    public void setVariables(TDeclareVariableList variables) {
080        this.variables = variables;
081    }
082}