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 role_name; 14 15 public RoleDescriptor() { 16 } 17 18 20 private static String roleQuery = "select * from " + SystemTables.roles_TableName + " where role_name = ? "; 21 22 25 public void load(_ServerSession serverSession) throws DException { 26 _SelectQueryIterator tableIterator = SqlSchemaConstants.getIterator(serverSession, 27 roleQuery, new Object [] {role_name}); 28 if (!tableIterator.first()) { 29 throw new DException("DSE8092", new Object [] {role_name}); 30 } 31 Object [] record = (Object []) tableIterator.getObject(); 32 loadDataFromRecord(record); 33 } 34 35 private void loadDataFromRecord(Object [] record) throws DException { 36 role_name = (String ) record[SystemTablesFields.roles_table_role_name]; 37 } 38 39 42 public void save(_ServerSession serverSession) throws DException { 43 try { 44 SqlSchemaConstants.insert(serverSession, SystemTables.roles_TableName, null, 45 new Object [] {role_name}); 46 } catch (PrimaryConstraintException de) { 47 DException tde = new DException("DSE876", new Object [] {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 [] {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 69 public void delete(_ServerSession serverSession) throws DException { 70 String 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 [] {role_name}); 75 } 76 77 79 public int getDescriptorType() { 80 return COLLATION_DESCRIPTOR; 81 } 82 } 83 | Popular Tags |