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 userQuery = "select * from " + 17 SystemTables.users_TableName + " where user_name = ?"; 18 19 23 24 29 public String user_name; 30 31 public String 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 [] {user_name}); 39 if (!tableIterator.first()) { 40 throw new DException("DSE5011", new Object [] {user_name}); 41 } 42 Object [] record = (Object []) tableIterator.getObject(); 43 loadDataFromRecord(record); 44 } 45 46 private void loadDataFromRecord(Object [] record) throws DException { 47 user_name = (String ) record[SystemTablesFields.users_table_user_name]; 48 user_password = (String ) 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 [] {user_name, user_password}); 56 } catch (PrimaryConstraintException de) { 57 DException tde = new DException("DSE7058", new Object [] {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 [] {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 password) throws 78 DException { 79 TableDetails tableDetail = new TableDetails(); 80 tableDetail.setTableName(SqlSchemaConstants.users_TableName.getTableName()); 81 String 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 [] {user_name}), 1); 87 SqlSchemaConstants.update(serverSession.getSystemServerSession(), SystemTables.users_TableName, iter, new int[] {SystemTablesFields.users_table_user_password} 88 , new Object [] {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 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 [] {user_name}), 1); 100 SqlSchemaConstants.delete(serverSession.getSystemServerSession(), SqlSchemaConstants.users_TableName, iter); 101 102 } 103 } 104 | Popular Tags |