KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > ddl > schemamanipulation > droptriggerstatement


1 package com.daffodilwoods.daffodildb.server.sql99.ddl.schemamanipulation;
2
3 import com.daffodilwoods.daffodildb.server.serversystem.*;
4 import com.daffodilwoods.daffodildb.server.sql99.common.*;
5 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.*;
6 import com.daffodilwoods.daffodildb.server.sql99.ddl.schemadefinition.*;
7 import com.daffodilwoods.daffodildb.server.sql99.ddl.utility.*;
8 import com.daffodilwoods.daffodildb.server.sql99.token.*;
9 import com.daffodilwoods.database.general.*;
10 import com.daffodilwoods.database.resource.*;
11
12 public class droptriggerstatement implements SQLschemamanipulationstatement {
13    public triggername _triggername0;
14    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439221;
15    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439222;
16
17    /** @todo algo
18     * initialize currentSession, globalSession, TriggerDescriptor
19     * commit the currentSession
20     * setTriggerName
21     * a. set name
22     * b. set catalog and schema name
23     * c. ensure schema
24     * d. ensure trigger exists
25     * validate user rights
26     * delete the descriptor
27     * delete data from trigger_table_usage
28     * delete data from trigger_column_usage
29     * commit the global session
30     * remove trigger from the DataDictionary
31     * */

32
33    public Object JavaDoc run(Object JavaDoc object) throws DException {
34       _ServerSession currentSession = ( (_ServerSession) object);
35
36       TriggerDescriptor triggerDescriptor = new TriggerDescriptor();
37       setTriggerName(triggerDescriptor, currentSession);
38       String JavaDoc schemaOwner = GeneralUtility.getSchemaOwner(triggerDescriptor.
39           trigger_catalog, triggerDescriptor.trigger_schema, currentSession);
40       GeneralUtility.validateUserRights(schemaOwner, currentSession);
41       dropTrigger(currentSession, triggerDescriptor);
42
43       refreshDataDictionary(currentSession, triggerDescriptor);
44       return null;
45    }
46
47    public void dropTrigger(_ServerSession currentSession,
48                            TriggerDescriptor triggerDes) throws DException {
49       triggerDes.delete(currentSession);
50    }
51
52    public void refreshDataDictionary(_ServerSession currentSession,
53                                      TriggerDescriptor triggerDes) throws
54        DException {
55       QualifiedIdentifier tableName = new QualifiedIdentifier(
56           triggerDes.event_object_catalog, triggerDes.event_object_schema,
57           triggerDes.event_object_name);
58         currentSession.refreshTriggers(tableName);
59       currentSession.getDataDictionary().getDDSTriggerOperation()
60           .removeTrigger(tableName,
61                          triggerDes.action_orientation.equalsIgnoreCase(SqlKeywords.ROW),
62                          triggerDes);
63    }
64
65    private void setTriggerName(TriggerDescriptor triggerDescriptor,
66                                _ServerSession currentSession) throws DException {
67       _triggername0.run(null);
68       triggerDescriptor.trigger_catalog = _triggername0.getCatalogName();
69       triggerDescriptor.trigger_schema = _triggername0.getSchemaName();
70       triggerDescriptor.trigger_name = _triggername0.getTriggerName();
71       if (triggerDescriptor.trigger_catalog == null) {
72          triggerDescriptor.trigger_catalog = currentSession.getCurrentCatalog();
73       }
74       if (triggerDescriptor.trigger_schema == null) {
75          triggerDescriptor.trigger_schema = currentSession.getCurrentSchema();
76       }
77       try {
78          triggerDescriptor.load(currentSession);
79       } catch (DException ex) {
80          throw new DException("DSE7065",
81                               new Object JavaDoc[] {triggerDescriptor.getQualifiedIdentifier().
82                               getIdentifier()});
83       }
84    }
85
86    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
87       return this;
88    }
89
90    public String JavaDoc toString() {
91       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
92       sb.append(" ");
93       sb.append(_SRESERVEDWORD12065439222);
94       sb.append(" ");
95       sb.append(_SRESERVEDWORD12065439221);
96       sb.append(" ");
97       sb.append(_triggername0);
98       return sb.toString();
99    }
100 }
101
Popular Tags