KickJava   Java API By Example, From Geeks To Geeks.

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


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.common.*;
7 import com.daffodilwoods.daffodildb.server.sql99.dql.execution.*;
8 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*;
9 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*;
10 import com.daffodilwoods.daffodildb.server.sql99.utils.parser.*;
11 import com.daffodilwoods.daffodildb.utils.*;
12 import com.daffodilwoods.database.general.*;
13 import com.daffodilwoods.database.resource.*;
14
15 public class UserDescriptor {
16    private static String JavaDoc userQuery = "select * from " +
17        SystemTables.users_TableName + " where user_name = ?";
18
19    /**
20     * CONSTRAINT USERS_PRIMARY_KEY
21     * PRIMARY KEY ( USER_NAME ),
22     */

23
24    /**
25     * CONSTRAINT USERS_CHECK
26     * CHECK ( USER_NAME NOT IN
27     * ( SELECT ROLE_NAME FROM ROLES ) )
28     */

29    public String JavaDoc user_name;
30
31    public String JavaDoc user_password;
32
33    public UserDescriptor() throws DException {
34    }
35
36    public void load(_ServerSession serverSession) throws DException {
37       _SelectQueryIterator tableIterator = SqlSchemaConstants.getIterator(serverSession,
38           userQuery, new Object JavaDoc[] {user_name});
39       if (!tableIterator.first()) {
40          throw new DException("DSE5011", new Object JavaDoc[] {user_name});
41       }
42       Object JavaDoc[] record = (Object JavaDoc[]) tableIterator.getObject();
43       loadDataFromRecord(record);
44    }
45
46    private void loadDataFromRecord(Object JavaDoc[] record) throws DException {
47       user_name = (String JavaDoc) record[SystemTablesFields.users_table_user_name];
48       user_password = (String JavaDoc) record[SystemTablesFields.
49           users_table_user_password];
50    }
51
52    public void save(_ServerSession serverSession) throws DException {
53       try {
54          SqlSchemaConstants.insert(serverSession, SystemTables.users_TableName, null,
55                                    new Object JavaDoc[] {user_name, user_password});
56       } catch (PrimaryConstraintException de) {
57          DException tde = new DException("DSE7058", new Object JavaDoc[] {user_name});
58          throw tde;
59       } catch (SizeMisMatchException de) {
60          if (de.getDseCode().equals("DSE773")) {
61             DException tde = new DException("DSE8103", null);
62             throw tde;
63          }
64       } catch (DException de) {
65          if (de.getDseCode().equals("DSE1255")) {
66             DException tde = new DException("DSE7058", new Object JavaDoc[] {user_name});
67             throw tde;
68          }
69          if (de.getDseCode().equals("DSE773")) {
70             DException tde = new DException("DSE8103", null);
71             throw tde;
72          }
73          throw de;
74       }
75    }
76
77    public void update(_ServerSession serverSession, String JavaDoc password) throws
78        DException {
79       TableDetails tableDetail = new TableDetails();
80       tableDetail.setTableName(SqlSchemaConstants.users_TableName.getTableName());
81       String JavaDoc bve = "user_name = ?";
82       _ServerSession globalSession = serverSession.getGlobalSession();
83       booleanvalueexpression condition = ConditionParser.parseCondition(bve, globalSession, SqlSchemaConstants.users_TableName);
84       ConditionSingleTableExecuter conSingTE = new ConditionSingleTableExecuter(null, tableDetail, globalSession, condition, null);
85       _Iterator iter = globalSession.getInternalIterator(SqlSchemaConstants.users_TableName, conSingTE);
86       iter.setConditionVariableValue(condition.getReferences(new TableDetails[] {tableDetail}), FieldUtility.getFields(new Object JavaDoc[] {user_name}), 1);
87       SqlSchemaConstants.update(serverSession.getSystemServerSession(), SystemTables.users_TableName, iter, new int[] {SystemTablesFields.users_table_user_password}
88                                 , new Object JavaDoc[] {password});
89    }
90
91    public void delete(_ServerSession serverSession) throws DException {
92       TableDetails tableDetail = new TableDetails();
93       tableDetail.setTableName(SqlSchemaConstants.users_TableName.getTableName());
94       String JavaDoc bve = "user_name = ?";
95       _ServerSession globalSession = serverSession.getGlobalSession();
96       booleanvalueexpression condition = ConditionParser.parseCondition(bve, globalSession, SqlSchemaConstants.users_TableName);
97       ConditionSingleTableExecuter conSingTE = new ConditionSingleTableExecuter(null, tableDetail, globalSession, condition, null);
98       _Iterator iter = globalSession.getInternalIterator(SqlSchemaConstants.users_TableName, conSingTE);
99       iter.setConditionVariableValue(condition.getReferences(new TableDetails[] {tableDetail}), FieldUtility.getFields(new Object JavaDoc[] {user_name}), 1);
100       SqlSchemaConstants.delete(serverSession.getSystemServerSession(), SqlSchemaConstants.users_TableName, iter);
101
102    }
103 }
104
Popular Tags