KickJava   Java API By Example, From Geeks To Geeks.

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


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.daffodildb.server.sql99.utils.parser.*;
9 import com.daffodilwoods.database.general.*;
10 import com.daffodilwoods.database.resource.*;
11
12 public class RoleDescriptor extends Descriptor {
13    public String JavaDoc role_name;
14
15    public RoleDescriptor() {
16    }
17
18    /**
19     * Query to load all information (Such as role_name) from roles system table. */

20    private static String JavaDoc roleQuery = "select * from " + SystemTables.roles_TableName + " where role_name = ? ";
21
22    /**
23     * Load method tries to load the all information (Such as role_name) from roles system table.
24     * If no information found for role then it throws DException. */

25    public void load(_ServerSession serverSession) throws DException {
26       _SelectQueryIterator tableIterator = SqlSchemaConstants.getIterator(serverSession,
27           roleQuery, new Object JavaDoc[] {role_name});
28       if (!tableIterator.first()) {
29          throw new DException("DSE8092", new Object JavaDoc[] {role_name});
30       }
31       Object JavaDoc[] record = (Object JavaDoc[]) tableIterator.getObject();
32       loadDataFromRecord(record);
33    }
34
35    private void loadDataFromRecord(Object JavaDoc[] record) throws DException {
36       role_name = (String JavaDoc) record[SystemTablesFields.roles_table_role_name];
37    }
38
39    /**
40     * Save all the information(Such as role_name) roles system table at the time of role creation. If such information is already exists
41     * in system table then it throws PrimaryConstraintException. */

42    public void save(_ServerSession serverSession) throws DException {
43       try {
44          SqlSchemaConstants.insert(serverSession, SystemTables.roles_TableName, null,
45                                    new Object JavaDoc[] {role_name});
46       } catch (PrimaryConstraintException de) {
47          DException tde = new DException("DSE876", new Object JavaDoc[] {role_name});
48          throw tde;
49       } catch (SizeMisMatchException de) {
50          if (de.getDseCode().equals("DSE773")) {
51             DException tde = new DException("DSE8103", null);
52             throw tde;
53          }
54       } catch (DException de) {
55          if (de.getDseCode().equals("DSE1255")) {
56             DException tde = new DException("DSE876", new Object JavaDoc[] {role_name});
57             throw tde;
58          }
59          if (de.getDseCode().equals("DSE773")) {
60             DException tde = new DException("DSE8103", null);
61             throw tde;
62          }
63          throw de;
64       }
65    }
66
67    /**
68     * Remove the all information of a particular role from roles system table */

69    public void delete(_ServerSession serverSession) throws DException {
70       String JavaDoc bve = "role_name = ?";
71       _ServerSession globalSession = serverSession.getGlobalSession();
72       booleanvalueexpression condition = ConditionParser.parseCondition(bve, globalSession, SqlSchemaConstants.roles_TableName);
73       super.delete(serverSession, SqlSchemaConstants.roles_TableName, condition,
74                    new Object JavaDoc[] {role_name});
75    }
76
77    /**
78     * Returns the int value 5 for COLLATION_DESCRIPTOR. */

79    public int getDescriptorType() {
80       return COLLATION_DESCRIPTOR;
81    }
82 }
83
Popular Tags