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}