001package gudusoft.gsqlparser.nodes;
002
003import gudusoft.gsqlparser.ESqlClause;
004import gudusoft.gsqlparser.ETableSource;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.stmt.oracle.TPlsqlCreateTrigger;
007
008/**
009* Use this clause to define a compound trigger on a DML event.
010*/
011public class TCompoundDmlTriggerClause extends TTriggeringClause {
012
013    /**
014     * The DML_event_clause lets you specify one of three DML statements that can cause the trigger to fire.
015     * @return
016     */
017    private TDmlEventClause dmlEventClause = null;
018
019    public void init(Object arg1)
020    {
021        dmlEventClause = (TDmlEventClause)arg1;
022    }
023
024    public void doParse(TCustomSqlStatement psql, ESqlClause plocation){
025      if (psql instanceof TPlsqlCreateTrigger){
026          TTable lcTable = new TTable();
027          lcTable.setTableType(ETableSource.objectname);
028          //lcTable.aliasClause = null;
029          lcTable.setTableName(dmlEventClause.getTableName());
030          psql.tables.addTable(lcTable);
031      }
032    }
033
034    public void setDmlEventClause(TDmlEventClause dmlEventClause) {
035        this.dmlEventClause = dmlEventClause;
036    }
037
038
039    public void accept(TParseTreeVisitor v){
040        v.preVisit(this);
041        v.postVisit(this);
042    }
043
044    public void acceptChildren(TParseTreeVisitor v){
045        v.preVisit(this);
046        v.postVisit(this);
047    }
048}