KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > ddl > revoke > AbandonedViews


1 package com.daffodilwoods.daffodildb.server.sql99.ddl.revoke;
2
3 /**
4  * @author pardeep
5  */

6 import java.util.*;
7 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
8 import com.daffodilwoods.daffodildb.server.serversystem.*;
9 import com.daffodilwoods.daffodildb.server.sql99.*;
10 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.*;
11 import com.daffodilwoods.daffodildb.server.sql99.ddl.schemamanipulation.*;
12 import com.daffodilwoods.daffodildb.server.sql99.ddl.utility.*;
13 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*;
14 import com.daffodilwoods.daffodildb.utils.*;
15 import com.daffodilwoods.daffodildb.utils.parser.*;
16 import com.daffodilwoods.database.resource.*;
17
18 public class AbandonedViews {
19    ArrayList abandonedList;
20    _ServerSession serverSession;
21    AbandonedObjectHandler abanObjHan;
22
23    public AbandonedViews(AbandonedObjectHandler temp, _ServerSession serversession) throws DException {
24       serverSession = serversession;
25       abandonedList = new ArrayList();
26       abanObjHan = temp;
27    }
28
29    public void calculate(ColumnPrivilegeDescriptor cpd, _ServerSession currentSession) throws DException {
30       ArrayList userNSchema = abanObjHan.getUserNSchema();
31       if (userNSchema == null) {
32          return;
33       }
34       _Executer executerAbandonedViewForColumn = ( (DataDictionary) currentSession.getDataDictionary()).getPreparedStatementGetter().getAbandonedViewForColumnExecuter();
35       _SelectQueryIterator iter = (_SelectQueryIterator) executerAbandonedViewForColumn.execute(new Object JavaDoc[] {cpd.object_catalog, cpd.object_schema, cpd.object_name, cpd.column_name});
36       if (iter.first()) {
37          do {
38             ViewDescriptor viewDes = new ViewDescriptor();
39             viewDes.loadDataFromRecord(iter, serverSession);
40             for (int j = 0, tempsize = userNSchema.size(); j < tempsize; j++) {
41                Object JavaDoc[] obj = (Object JavaDoc[]) userNSchema.get(j);
42                if (cpd.getGrantee().equalsIgnoreCase( (String JavaDoc) obj[0]) && (viewDes.table_schema.equalsIgnoreCase( (String JavaDoc) obj[1]) && viewDes.table_catalog.equalsIgnoreCase( (String JavaDoc) obj[2]))) {
43                   insertInList(viewDes);
44                }
45             }
46          } while (iter.next());
47       }
48    }
49
50    public void calculate(TablePrivilegesDescriptor tpd, _ServerSession currentSession) throws DException {
51       ArrayList userNSchema = abanObjHan.getUserNSchema();
52       if (userNSchema == null) {
53          return;
54       }
55       _Executer executerAbandonedViewForTable = ( (DataDictionary) currentSession.getDataDictionary()).getPreparedStatementGetter().getAbandonedViewForTableExecuter();
56       _SelectQueryIterator iter = (_SelectQueryIterator) executerAbandonedViewForTable.execute(new Object JavaDoc[] {tpd.object_catalog, tpd.object_schema, tpd.object_name});
57       if (iter.first()) {
58          do {
59             ViewDescriptor viewDes = new ViewDescriptor();
60             viewDes.loadDataFromRecord(iter, serverSession);
61             for (int j = 0, tempsize = userNSchema.size(); j < tempsize; j++) {
62                Object JavaDoc[] obj = (Object JavaDoc[]) userNSchema.get(j);
63                if (tpd.getGrantee().equalsIgnoreCase( (String JavaDoc) obj[0]) && (viewDes.table_schema.equalsIgnoreCase( (String JavaDoc) obj[1]) && viewDes.table_catalog.equalsIgnoreCase( (String JavaDoc) obj[2]))) {
64                   insertInList(viewDes);
65                }
66             }
67          } while (iter.next());
68       }
69    }
70
71    public void process() throws DException {
72       for (int i = 0, size = abandonedList.size(); i < size; i++) {
73          ViewDescriptor temp = (ViewDescriptor) abandonedList.get(i);
74          ArrayList alreadyAbondenedObjects = abanObjHan.getAreadyAbandenedObjects();
75          if (alreadyAbondenedObjects == null || !alreadyAbondenedObjects.contains(temp)) {
76             StringBuffer JavaDoc str = new StringBuffer JavaDoc();
77             str.append("drop view ")
78                 .append(QuotedUtility.getUserIdentifier(temp.table_catalog))
79                 .append(".").append(QuotedUtility.getUserIdentifier(temp.table_schema))
80                 .append(".").append(QuotedUtility.getUserIdentifier(temp.table_name))
81                 .append(" cascade");
82             dropviewstatement st = (dropviewstatement) Parser.parseQuery(str.toString());
83             st.load(serverSession, temp);
84             String JavaDoc schemaOwner = GeneralUtility.getSchemaOwner(temp.table_catalog,
85                 temp.table_schema, serverSession);
86             ArrayList objectsAbondened = st.dropView(temp, serverSession, "cascade", schemaOwner);
87             st.refreshServerSystem(serverSession, temp);
88             abanObjHan.addToAlreadyAbondenedObjets(temp);
89             abanObjHan.addToAlreadyAbondenedObjets(objectsAbondened);
90          }
91       }
92    }
93
94    private void insertInList(ViewDescriptor view) {
95       if (!abandonedList.contains(view)) {
96          abandonedList.add(view);
97       }
98    }
99
100    public void print_abandoned() {
101       if (abandonedList.size() == 0) {
102          return;
103       }
104       for (int i = 0, size = abandonedList.size(); i < size; i++) {
105          ViewDescriptor temp = (ViewDescriptor) abandonedList.get(i);
106          print_view_descriptor(temp, "\t[" + i + "] ");
107       }
108    }
109
110    public void print_view_descriptor(ViewDescriptor vd, String JavaDoc extra) {
111    }
112 }
113
Popular Tags