001package gudusoft.gsqlparser.stmt.mssql; 002 003import gudusoft.gsqlparser.*; 004import gudusoft.gsqlparser.nodes.*; 005import gudusoft.gsqlparser.stmt.TStoredProcedureSqlStatement; 006 007import java.util.EnumSet; 008 009/** 010 * @deprecated As of v2.0.1.0, replaced by {@link gudusoft.gsqlparser.stmt.TCreateTriggerStmt} 011 * 012 * SQL SQL create trigger statement. 013 */ 014public class TMssqlCreateTrigger extends TStoredProcedureSqlStatement { 015 public TMssqlCreateTrigger (EDbVendor dbvendor){ 016 super(dbvendor); 017 sqlstatementtype = ESqlStatementType.sstmssqlcreatetrigger ; 018 } 019 020 021 void buildsql() { 022 } 023 024 void clear() { 025 } 026 027 String getasprettytext() { 028 return ""; 029 } 030 031 void iterate(TVisitorAbs pvisitor) { 032 } 033 034 private boolean alterTrigger; 035 036 public void setAlterTrigger(boolean alterTrigger) { 037 this.alterTrigger = alterTrigger; 038 } 039 040 public boolean isAlterTrigger() { 041 042 return alterTrigger; 043 } 044 045 public TObjectName getStoredProcedureName(){ 046 return triggerName; 047 } 048 049 private TTable onTable = null; 050 051 public TTable getOnTable() { 052 return onTable; 053 } 054 055 056 public TObjectName getTriggerName() { 057 return triggerName; 058 } 059 060 private TObjectName triggerName = null; 061 062 public void setTimingPoint(ETriggerTimingPoint timingPoint) { 063 this.timingPoint = timingPoint; 064 } 065 066 public void setDmlTypes(EnumSet<ETriggerDmlType> dmlTypes) { 067 this.dmlTypes = dmlTypes; 068 } 069 070 public ETriggerTimingPoint getTimingPoint() { 071 072 return timingPoint; 073 } 074 075 public EnumSet<ETriggerDmlType> getDmlTypes() { 076 return dmlTypes; 077 } 078 079 public int doParseStatement(TCustomSqlStatement psql) { 080 if (rootNode == null) return -1; 081 if(!(rootNode instanceof TCreateTriggerSqlNode)) return -1; 082 TCreateTriggerSqlNode createTriggerNode = (TCreateTriggerSqlNode)rootNode; 083 084 super.doParseStatement(psql); 085 this.triggerName = createTriggerNode.getTriggerName(); 086 alterTrigger = createTriggerNode.isAlterTrigger(); 087 this.fireMode = createTriggerNode.getFireMode(); 088 timingPoint = createTriggerNode.getTimingPoint(); 089 090 onTable = createTriggerNode.getOnTable(); 091 onTable.setEffectType(ETableEffectType.tetTriggerOn); 092 tables.addTable(onTable); 093 094 for(int i=0;i<createTriggerNode.getDmlTpyes().size();i++){ 095 this.getDmlTpyes().add( createTriggerNode.getDmlTpyes().getDummyItem(i).st1 ); 096 if (createTriggerNode.getDmlTpyes().getDummyItem(i).st1.toString().equalsIgnoreCase("insert")){ 097 dmlTypes.add(ETriggerDmlType.tdtInsert); 098 }else if (createTriggerNode.getDmlTpyes().getDummyItem(i).st1.toString().equalsIgnoreCase("delete")){ 099 dmlTypes.add(ETriggerDmlType.tdtDelete); 100 }else if (createTriggerNode.getDmlTpyes().getDummyItem(i).st1.toString().equalsIgnoreCase("update")){ 101 dmlTypes.add(ETriggerDmlType.tdtUpdate); 102 }else{ 103 dmlTypes.add(ETriggerDmlType.tdtEvent); 104 } 105 } 106 107 if (createTriggerNode.getStmts() != null){ 108 createTriggerNode.getStmts().doParse(this,ESqlClause.unknown); 109 for(int i=0;i<createTriggerNode.getStmts().size();i++){ 110 this.getBodyStatements().add(createTriggerNode.getStmts().getStatementSqlNode(i).getStmt()); 111 } 112 } 113 114 return 0; 115 } 116 117 private int fireMode = TBaseType.tfmFor; 118 private ETriggerTimingPoint timingPoint = ETriggerTimingPoint.ttpAfter; 119 private EnumSet <ETriggerDmlType> dmlTypes = EnumSet.noneOf(ETriggerDmlType.class); 120 121 /** 122 * @deprecated As of v1.7.2.5, replaced by {@link gudusoft.gsqlparser.ETriggerDmlType} 123 * @return insert/delete/update action 124 */ 125 public TSourceTokenList getDmlTpyes() { 126 if (this.dmlTpyes == null){ 127 this.dmlTpyes = new TSourceTokenList(); 128 } 129 return this.dmlTpyes; 130 } 131 132 private TSourceTokenList dmlTpyes = null; 133 134 /** 135 * @deprecated As of v1.7.2.5, replaced by {@link gudusoft.gsqlparser.ETriggerTimingPoint} 136 * @return trigger timing point 137 */ 138 public int getFireMode() { 139 return fireMode; 140 } 141 142 public void accept(TParseTreeVisitor v){ 143 v.preVisit(this); 144 145 v.postVisit(this); 146 } 147 public void acceptChildren(TParseTreeVisitor v){ 148 v.preVisit(this); 149 if (getBodyStatements().size() > 0) getBodyStatements().acceptChildren(v); 150 v.postVisit(this); 151 } 152 153 public void setOnTable(TTable onTable) { 154 this.onTable = onTable; 155 } 156 157 public void setTriggerName(TObjectName triggerName) { 158 this.triggerName = triggerName; 159 } 160 161 public void setFireMode(int fireMode) { 162 this.fireMode = fireMode; 163 } 164}