001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.EDbObjectType; 004import gudusoft.gsqlparser.ETableSource; 005import gudusoft.gsqlparser.ETriggerTimingPoint; 006import gudusoft.gsqlparser.TBaseType; 007 008/** 009 * Internal use in the parser. 010*/ 011public class TCreateTriggerSqlNode extends TParseTreeNode { 012 013 public TTriggeringClause getTriggeringClause() { 014 return triggeringClause; 015 } 016 017 private TTriggeringClause triggeringClause; 018 019 private boolean alterTrigger = false; 020 021 public void setAlterTrigger(boolean alterTrigger) { 022 this.alterTrigger = alterTrigger; 023 } 024 025 public boolean isAlterTrigger() { 026 027 return alterTrigger; 028 } 029 030 private TObjectNameList followsTriggerList; 031 032 public void setFollowsTriggerList(TObjectNameList followsTriggerList) { 033 this.followsTriggerList = followsTriggerList; 034 } 035 036 public TObjectNameList getFollowsTriggerList() { 037 038 return followsTriggerList; 039 } 040 041 private TStatementListSqlNode stmts = null; 042 043 private TObjectName triggerName = null; 044 private TTable onTable = null; 045 private TExpression whenCondition = null; //plsql 046 private int fireMode = TBaseType.tfmFor; 047 private ETriggerTimingPoint timingPoint = ETriggerTimingPoint.ttpAfter; 048 049 public ETriggerTimingPoint getTimingPoint() { 050 return timingPoint; 051 } 052 053 public void setTimingPoint(ETriggerTimingPoint timingPoint) { 054 055 this.timingPoint = timingPoint; 056 } 057 058 private TFunctionCall functionCall;//postgresql 059 060 public void setFunctionCall(TFunctionCall functionCall) { 061 this.functionCall = functionCall; 062 } 063 064 public TFunctionCall getFunctionCall() { 065 066 return functionCall; 067 } 068 069 private TBlockSqlNode blcok = null; // MySQL 070 071 public void setBlcok(TBlockSqlNode blcok) { 072 this.blcok = blcok; 073 } 074 075 public TBlockSqlNode getBlcok() { 076 077 return blcok; 078 } 079 080 public void setDmlTpyes(TDummyList dmlTpyes) { 081 this.dmlTpyes = dmlTpyes; 082 } 083 084 public TDummyList getDmlTpyes() { 085 086 return dmlTpyes; 087 } 088 089 private TDummyList dmlTpyes = null; 090 091 public void setFireMode(int fireMode) { 092 this.fireMode = fireMode; 093 switch (fireMode){ 094 case TBaseType.tfmAfter: 095 timingPoint = ETriggerTimingPoint.ttpAfter; 096 break; 097 case TBaseType.tfmFor: 098 timingPoint = ETriggerTimingPoint.ttpFor; 099 break; 100 case TBaseType.tfmInsteadOf: 101 timingPoint = ETriggerTimingPoint.ttpTinsteadOf; 102 break; 103 default: 104 timingPoint = ETriggerTimingPoint.ttpBefore; 105 break; 106 } 107 } 108 109 public int getFireMode() { 110 111 return fireMode; 112 } 113 114 public TObjectName getTriggerName() { 115 return triggerName; 116 } 117 118 public void setTrigger_event_clause(TParseTreeNode trigger_event_clause) { 119 this.trigger_event_clause = trigger_event_clause; 120 } 121 122 /** 123 * @deprecated As of v2.0.1.0, replaced by {@link #getTriggeringClause()} 124 * 125 * @return trigger clause 126 */ 127 public TParseTreeNode getTrigger_event_clause() { 128 return trigger_event_clause; 129 } 130 131 private TParseTreeNode trigger_event_clause = null;//plsql, one of TNonDmlTriggerClause,TCompoundDmlTriggerClause and TSimpleDmlTriggerClause 132 133 public void setWhenCondition(TExpression whenCondition) { 134 this.whenCondition = whenCondition; 135 } 136 137 public TExpression getWhenCondition() { 138 return whenCondition; 139 } 140 141 public TStatementSqlNode getStmt() { 142 return stmt; 143 } 144 145 private TStatementSqlNode stmt = null;//plsql,db2 146 147 public void setStmt(TStatementSqlNode stmt) { 148 this.stmt = stmt; 149 } 150 151 /** 152 * @deprecated As of v2.0.1.0, use {@link #getTriggeringClause()} instead 153 * @return onTable 154 */ 155 public TTable getOnTable() { 156 return onTable; 157 } 158 159 public TStatementListSqlNode getStmts() { 160 161 return stmts; 162 } 163 164 public void setStmts(TStatementListSqlNode stmts) { 165 this.stmts = stmts; 166 } 167 168 public void setTriggeringClause(TTriggeringClause triggeringClause) { 169 this.triggeringClause = triggeringClause; 170 } 171 172 public void init(Object arg1,Object arg2) 173 { // used by sql server 174 triggerName = (TObjectName)arg1; 175 //this.triggerName.setObjectType(TObjectName.ttobjTrigger); 176 this.triggerName.setDbObjectType(EDbObjectType.trigger); 177 178 onTable = new TTable(); 179 ((TObjectName)arg2).setObjectType(TObjectName.ttobjTable); 180 onTable.setTableName((TObjectName)arg2); 181 onTable.setTableType( ETableSource.objectname); 182 } 183 184 public void init(Object arg1) 185 { 186 // used by plsql 187 triggerName = (TObjectName)arg1; 188 // triggerName.setObjectType(TObjectName.ttobjTrigger); 189 triggerName.setDbObjectType(EDbObjectType.trigger); 190 191 } 192 193 private TTriggerAction triggerAction = null; 194 195 public TTriggerAction getTriggerAction() { 196 return triggerAction; 197 } 198 199 public void setTriggerAction(TTriggerAction triggerAction) { 200 201 this.triggerAction = triggerAction; 202 } 203}