KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > ddl > descriptors > ColumnPrivilegeDescriptor


1 package com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors;
2
3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
4 import com.daffodilwoods.daffodildb.server.serversystem.*;
5 import com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.constraintsystem.*;
6 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*;
7 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*;
8 import com.daffodilwoods.database.general.*;
9 import com.daffodilwoods.database.resource.*;
10
11 public class ColumnPrivilegeDescriptor extends PrivilegeDescriptor {
12
13    public String JavaDoc column_name;
14    public String JavaDoc privilege_type;
15
16    public ColumnPrivilegeDescriptor() throws DException {
17    }
18
19    public ColumnPrivilegeDescriptor(ColumnPrivilegeDescriptor cpd) throws DException {
20       object_catalog = (cpd.object_catalog == null)
21           ? null : cpd.object_catalog.toString();
22       object_name = (cpd.object_name == null)
23           ? null : cpd.object_name.toString();
24       object_schema = (cpd.object_schema == null)
25           ? null : cpd.object_schema.toString();
26       privilege_type = (cpd.privilege_type == null)
27           ? null : cpd.privilege_type;
28       column_name = (cpd.column_name == null) ? null : cpd.column_name;
29       grantee = (cpd.grantee == null) ? null : cpd.grantee.toString();
30       grantor = (cpd.grantor == null) ? null : cpd.grantor.toString();
31       is_grantable = (cpd.is_grantable == null)
32           ? null : cpd.is_grantable.toString();
33    }
34
35    public int hashCode() {
36       return privilege_type.hashCode() * 3
37           + column_name.toUpperCase().hashCode() * 5
38           + getGrantee().toUpperCase().hashCode() * 7
39           + getGrantor().toUpperCase().hashCode() * 9
40           + object_catalog.toUpperCase().hashCode() * 11
41           + object_schema.toUpperCase().hashCode() * 13
42           + object_name.toUpperCase().hashCode() * 17;
43    }
44
45    public boolean equals(Object JavaDoc temp) {
46       if (! (temp instanceof ColumnPrivilegeDescriptor)) {
47          return false;
48       }
49
50       ColumnPrivilegeDescriptor pd = (ColumnPrivilegeDescriptor) temp;
51       return ( ( (privilege_type == null) && (pd.privilege_type == null)) || privilege_type.equalsIgnoreCase(pd.privilege_type))
52           && ( ( (column_name == null) && (pd.column_name == null)) || column_name.equalsIgnoreCase(pd.column_name))
53           && ( ( (getGrantee() == null) && (pd.getGrantee() == null)) || getGrantee().equalsIgnoreCase(pd.getGrantee()))
54           && ( ( (getGrantor() == null) && (pd.getGrantor() == null)) || getGrantor().equalsIgnoreCase(pd.getGrantor()))
55           && ( ( (object_catalog == null) && (pd.object_catalog == null)) || object_catalog.equalsIgnoreCase(pd.object_catalog))
56           && ( ( (object_schema == null) && (pd.object_schema == null)) || object_schema.equalsIgnoreCase(pd.object_schema))
57           && ( ( (object_name == null) && (pd.object_name == null)) || object_name.equalsIgnoreCase(pd.object_name))
58           && ( ( (is_grantable == null) && (pd.is_grantable == null)) || is_grantable.equalsIgnoreCase(pd.is_grantable));
59    }
60
61    public void load(_ServerSession serverSession) throws DException {
62       DataDictionary dd = (DataDictionary) serverSession.getDataDictionary();
63       _SelectQueryIterator iter = (_SelectQueryIterator) dd.getPreparedStatementGetter().getColumnPrivilegesTableExecuter().executeForFresh(new Object JavaDoc[] {grantor, grantee, object_catalog, object_schema, object_name, column_name, privilege_type});
64       if (!iter.first()) {
65          throw new DException("DSE264", new Object JavaDoc[] {object_catalog, object_schema, object_name, column_name, privilege_type});
66       } else {
67          Object JavaDoc[] obj = (Object JavaDoc[]) iter.getObject();
68          loadDataFromRecord(obj);
69       }
70    }
71
72    public void save(_ServerSession serverSession) throws DException {
73       Object JavaDoc[] parameters = new Object JavaDoc[] {grantor,
74           grantee,
75           object_catalog,
76           object_schema,
77           object_name,
78           column_name,
79           privilege_type,
80           is_grantable
81       };
82       try {
83          SqlSchemaConstants.insert(serverSession, SqlSchemaConstants.column_privileges_TableName, null, parameters);
84       } catch (PrimaryConstraintException de) {
85          DException tde = new DException("DSE1139", new Object JavaDoc[] {privilege_type, grantor, grantee, getTableName(), column_name});
86          throw tde;
87       } catch (SizeMisMatchException de) {
88          if (de.getDseCode().equals("DSE773")) {
89             DException tde = new DException("DSE8103", null);
90             throw tde;
91          }
92       } catch (DException de) {
93          if (de.getDseCode().equals("DSE1255")) {
94             DException tde = new DException("DSE1139", new Object JavaDoc[] {privilege_type, grantor, grantee, getTableName(), column_name});
95             throw tde;
96          }
97          if (de.getDseCode().equals("DSE773")) {
98             DException tde = new DException("DSE8103", null);
99             throw tde;
100          }
101          throw de;
102       }
103    }
104
105    public void delete(_ServerSession serverSession) throws DException {
106       booleanvalueexpression condition = ( (DataDictionary) serverSession.getDataDictionary()).getPreparedStatementGetter().getColumnPrivilegesTableCondition();
107       super.deleteColumnPrivilegeDescriptor(serverSession, SqlSchemaConstants.column_privileges_TableName, condition, new Object JavaDoc[] {grantor, grantee, object_catalog, object_schema, object_name, privilege_type, column_name});
108    }
109
110    private void loadDataFromRecord(Object JavaDoc[] values) throws DException {
111       grantor = values[SystemTablesFields.columnPrivileges_grantor];
112       grantee = values[SystemTablesFields.columnPrivileges_grantee];
113       object_catalog = (String JavaDoc) values[SystemTablesFields.columnPrivileges_object_catalog];
114       object_schema = (String JavaDoc) values[SystemTablesFields.columnPrivileges_object_schema];
115       object_name = (String JavaDoc) values[SystemTablesFields.columnPrivileges_object_name];
116       column_name = (String JavaDoc) values[SystemTablesFields.columnPrivileges_column_name];
117       privilege_type = (String JavaDoc) values[SystemTablesFields.columnPrivileges_privilege_type];
118       is_grantable = (String JavaDoc) values[SystemTablesFields.columnPrivileges_is_grantable];
119    }
120
121    public void loadDataFromRecord(_SelectQueryIterator iter) throws DException {
122       loadDataFromRecord( (Object JavaDoc[]) iter.getObject());
123    }
124
125    private String JavaDoc getTableName() {
126       StringBuffer JavaDoc tableName = new StringBuffer JavaDoc();
127       tableName.append(object_catalog).append(".").append(object_schema).append(".").append(object_name);
128       return tableName.toString();
129    }
130
131    public int getDescriptorType() {
132       return COLUMN_PRIVILEGE_DESCRIPTOR;
133    }
134
135    public void updateIsGrantableValue(_ServerSession serversession, String JavaDoc isGrantable) throws DException {
136       booleanvalueexpression condition = ( (DataDictionary) serversession.
137                                           getDataDictionary()).
138           getPreparedStatementGetter().getColumnPrivilegesTableCondition();
139       super.update(serversession, SystemTables.column_privileges_TableName, condition,
140                    new Object JavaDoc[] {grantor, grantee, object_catalog, object_schema,
141                    object_name, privilege_type, column_name}
142                    ,
143                    new Object JavaDoc[] {isGrantable}
144                    ,
145                    new int[] {SystemTablesFields.columnPrivileges_is_grantable});
146    }
147 }
148
Popular Tags