001package gudusoft.gsqlparser.stmt.mysql;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.TTable;
005import gudusoft.gsqlparser.nodes.TObjectName;
006import gudusoft.gsqlparser.nodes.TCreateTriggerSqlNode;
007import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
008import gudusoft.gsqlparser.stmt.TStoredProcedureSqlStatement;
009
010/**
011 * Create trigger
012 *
013 * @deprecated As of v2.0.1.0, replaced by {@link gudusoft.gsqlparser.stmt.TCreateTriggerStmt}
014 *
015 */
016public class TMySQLCreateTrigger extends TStoredProcedureSqlStatement {
017     public TMySQLCreateTrigger (EDbVendor dbvendor){
018        super(dbvendor);
019        sqlstatementtype = ESqlStatementType.sstmysqlcreatetrigger ;
020        }
021
022    void buildsql() {
023    }
024
025    void clear() {
026    }
027
028    String getasprettytext() {
029        return "";
030    }
031
032    void iterate(TVisitorAbs pvisitor) {
033    }
034
035    public TObjectName getStoredProcedureName(){
036        return triggerName;
037    }
038
039    private TTable onTable = null;
040
041    public TTable getOnTable() {
042        return onTable;
043    }
044
045    /**
046     * Statements in body.
047     * @return
048     */
049    public TStatementList getBodyStatements() {
050        if (bodyStatements == null){
051            bodyStatements = new TStatementList();
052        }
053        return bodyStatements;
054    }
055    private TStatementList bodyStatements = null;
056
057    public TObjectName getTriggerName() {
058        return triggerName;
059    }
060
061    private TObjectName triggerName = null;
062
063    public int doParseStatement(TCustomSqlStatement psql) {
064        if (rootNode == null) return -1;
065        TCreateTriggerSqlNode createTriggerNode = (TCreateTriggerSqlNode)rootNode;
066
067        super.doParseStatement(psql);
068        this.triggerName = createTriggerNode.getTriggerName();
069        onTable = createTriggerNode.getOnTable();
070        tables.addTable(onTable);
071
072
073        if (createTriggerNode.getStmt() != null){
074            createTriggerNode.getStmt().doParse(this,ESqlClause.unknown);
075            this.getBodyStatements().add(createTriggerNode.getStmt().getStmt());
076        }
077        else if (createTriggerNode.getBlcok() != null){
078            createTriggerNode.getBlcok().getStmts().doParse(this,ESqlClause.unknown);
079
080            for(int i=0;i<createTriggerNode.getBlcok().getStmts().size();i++){
081               this.getBodyStatements().add(createTriggerNode.getBlcok().getStmts().getStatementSqlNode(i).getStmt());
082            }
083
084        }
085
086        return 0;
087    }
088
089    public void accept(TParseTreeVisitor v){
090        v.preVisit(this);
091
092        v.postVisit(this);
093    }
094
095    public void acceptChildren(TParseTreeVisitor v){
096        v.preVisit(this);
097        getBodyStatements().acceptChildren(v);
098        v.postVisit(this);
099    }
100
101    public void setOnTable(TTable onTable) {
102        this.onTable = onTable;
103    }
104
105//    @Override
106//    public void setBodyStatements(TStatementList bodyStatements) {
107//        this.bodyStatements = bodyStatements;
108//    }
109
110    public void setTriggerName(TObjectName triggerName) {
111        this.triggerName = triggerName;
112    }
113}