43
48
* Whether the trigger should be fired on UPDATE.
45
50
private boolean onUpdate;
52
* Whether the trigger should be fired on TRUNCATE.
54
private boolean onTruncate;
48
61
* Setter for {@link #before}.
66
79
* Creates and returns SQL for creation of trigger.
68
* @param quoteNames whether names should be quoted
70
81
* @return created SQL
72
public String getCreationSQL(final boolean quoteNames) {
73
final StringBuilder sbDDL = new StringBuilder();
74
sbDDL.append("CREATE TRIGGER ");
75
sbDDL.append(PgDiffUtils.getQuotedName(getName(), quoteNames));
77
sbDDL.append(isBefore() ? "BEFORE" : "AFTER");
83
public String getCreationSQL() {
84
final StringBuilder sbSQL = new StringBuilder(100);
85
sbSQL.append("CREATE TRIGGER ");
86
sbSQL.append(PgDiffUtils.getQuotedName(getName()));
88
sbSQL.append(isBefore() ? "BEFORE" : "AFTER");
79
90
boolean firstEvent = true;
81
92
if (isOnInsert()) {
82
sbDDL.append(" INSERT");
93
sbSQL.append(" INSERT");
83
94
firstEvent = false;
88
99
firstEvent = false;
93
sbDDL.append(" UPDATE");
104
sbSQL.append(" UPDATE");
96
107
if (isOnDelete()) {
97
108
if (!firstEvent) {
101
sbDDL.append(" DELETE");
104
sbDDL.append(" ON ");
105
sbDDL.append(PgDiffUtils.getQuotedName(getTableName(), quoteNames));
106
sbDDL.append("\n\tFOR EACH ");
107
sbDDL.append(isForEachRow() ? "ROW" : "STATEMENT");
108
sbDDL.append("\n\tEXECUTE PROCEDURE ");
109
sbDDL.append(getFunction());
112
return sbDDL.toString();
112
sbSQL.append(" DELETE");
115
if (isOnTruncate()) {
120
sbSQL.append(" TRUNCATE");
123
sbSQL.append(" ON ");
124
sbSQL.append(PgDiffUtils.getQuotedName(getTableName()));
125
sbSQL.append("\n\tFOR EACH ");
126
sbSQL.append(isForEachRow() ? "ROW" : "STATEMENT");
128
if (when != null && !when.isEmpty()) {
129
sbSQL.append("\n\tWHEN (");
134
sbSQL.append("\n\tEXECUTE PROCEDURE ");
135
sbSQL.append(getFunction());
138
return sbSQL.toString();
116
142
* Creates and returns SQL for dropping the trigger.
118
* @param quoteNames whether names should be quoted
120
144
* @return created SQL
122
public String getDropSQL(final boolean quoteNames) {
123
return "DROP TRIGGER "
124
+ PgDiffUtils.getQuotedName(getName(), quoteNames) + " ON "
125
+ PgDiffUtils.getQuotedName(getTableName(), quoteNames) + ";";
146
public String getDropSQL() {
147
return "DROP TRIGGER " + PgDiffUtils.getQuotedName(getName()) + " ON "
148
+ PgDiffUtils.getQuotedName(getTableName()) + ";";
260
* Getter for {@link #onTruncate}.
262
* @return {@link #onTruncate}
264
public boolean isOnTruncate() {
269
* Setter for {@link #onTruncate}.
271
* @param onTruncate {@link #onTruncate}
273
public void setOnTruncate(final boolean onTruncate) {
274
this.onTruncate = onTruncate;
237
278
* Setter for {@link #tableName}.
239
280
* @param tableName {@link #tableName}
257
* @param object {@inheritDoc}
259
* @return {@inheritDoc}
296
* Getter for {@link #when}.
298
* @return {@link #when}
300
public String getWhen() {
305
* Setter for {@link #when}.
307
* @param when {@link #when}
309
public void setWhen(final String when) {
262
314
public boolean equals(final Object object) {
263
315
boolean equals = false;
267
319
} else if (object instanceof PgTrigger) {
268
320
final PgTrigger trigger = (PgTrigger) object;
269
equals = (before == trigger.before)
270
&& (forEachRow == trigger.forEachRow)
271
&& function.equals(trigger.function)
272
&& name.equals(trigger.name)
273
&& (onDelete == trigger.onDelete)
274
&& (onInsert == trigger.onInsert)
275
&& (onUpdate == trigger.onUpdate)
276
&& tableName.equals(trigger.tableName);
321
equals = (before == trigger.isBefore())
322
&& (forEachRow == trigger.isForEachRow())
323
&& function.equals(trigger.getFunction())
324
&& name.equals(trigger.getName())
325
&& (onDelete == trigger.isOnDelete())
326
&& (onInsert == trigger.isOnInsert())
327
&& (onUpdate == trigger.isOnUpdate())
328
&& (onTruncate == trigger.isOnTruncate())
329
&& tableName.equals(trigger.getTableName());
285
* @return {@inheritDoc}
288
336
public int hashCode() {
289
337
return (getClass().getName() + "|" + before + "|" + forEachRow + "|"
290
338
+ function + "|" + name + "|" + onDelete + "|" + onInsert + "|"
291
+ onUpdate + "|" + tableName).hashCode();
339
+ onUpdate + "|" + onTruncate + "|" + tableName).hashCode();