KickJava   Java API By Example, From Geeks To Geeks.

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


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.listenerevents.*;//
7

8 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*;
9 import com.daffodilwoods.database.general.*;
10 import com.daffodilwoods.database.resource.*;
11
12 public class KeyColumnUsageDescriptor extends Descriptor {
13
14    public String JavaDoc constraint_catalog;
15    public String JavaDoc constraint_schema;
16    public String JavaDoc constraint_name;
17
18    public String JavaDoc table_catalog;
19    public String JavaDoc table_schema;
20    public String JavaDoc table_name;
21
22    public String JavaDoc column_name;
23    public int ordinal_position;
24    public TableConstraintDescriptor tableConstraintDescriptor;
25
26    public KeyColumnUsageDescriptor() throws DException {
27    }
28
29    private void loadDataFromRecord(Object JavaDoc[] columnValues) throws DException {
30       constraint_catalog = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_constraint_catalog];
31       constraint_schema = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_constraint_schema];
32       constraint_name = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_constraint_name];
33       table_catalog = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_table_catalog];
34       table_schema = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_table_schema];
35       table_name = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_table_name];
36       column_name = (String JavaDoc) columnValues[SystemTablesFields.key_column_usage_column_name];
37       ordinal_position = columnValues[SystemTablesFields.key_column_usage_ordinal_position].hashCode();
38    }
39
40    public void loadDataFromRecord(_SelectIterator iter) throws DException {
41       loadDataFromRecord( (Object JavaDoc[]) iter.getObject());
42    }
43
44    public void save(_ServerSession serverSession) throws com.daffodilwoods.database.resource.DException {
45       Object JavaDoc[] columnValues = new Object JavaDoc[] {constraint_catalog, constraint_schema,
46           constraint_name, table_catalog, table_schema, table_name,
47           column_name, new Integer JavaDoc(ordinal_position)};
48       try {
49          SqlSchemaConstants.insert(serverSession,
50                                    SqlSchemaConstants.key_column_usage_TableName, null, columnValues);
51       } catch (PrimaryConstraintException de) {
52          DException tde = new DException("DSE1147", new Object JavaDoc[] {column_name, getName()});
53          throw tde;
54       } catch (SizeMisMatchException de) {
55          if (de.getDseCode().equals("DSE773")) {
56             DException tde = new DException("DSE8103", null);
57             throw tde;
58          }
59       } catch (DException de) {
60          if (de.getDseCode().equals("DSE1255")) {
61             DException tde = new DException("DSE1147", new Object JavaDoc[] {column_name, getName()});
62             throw tde;
63          }
64          if (de.getDseCode().equals("DSE773")) {
65             DException tde = new DException("DSE8103", null);
66             throw tde;
67          }
68          throw de;
69       }
70
71    }
72
73    public void delete(_ServerSession serverSession) throws com.daffodilwoods.database.resource.DException {
74       booleanvalueexpression condition = ( (DataDictionary) serverSession.getDataDictionary()).getPreparedStatementGetter().getKeyColumnUsageTableCondition();
75       super.delete(serverSession, SqlSchemaConstants.key_column_usage_TableName, condition, new Object JavaDoc[] {constraint_catalog, constraint_schema, constraint_name, column_name});
76    }
77
78    private String JavaDoc getName() {
79       return new StringBuffer JavaDoc().append(constraint_catalog).append(".").append(constraint_schema).append(".").append(constraint_name).toString();
80    }
81
82    public String JavaDoc toString() {
83       return "ColumnName " + column_name + " ConstraintName " + constraint_name + " TableName " + table_name + " @" + hashCode();
84    }
85
86    /* not required at present */
87    public void load(_ServerSession parm1) throws com.daffodilwoods.database.resource.DException {
88       /**@todo: Implement this com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors._Descriptor method*/
89       throw new java.lang.UnsupportedOperationException JavaDoc("Method load() not yet implemented.");
90    }
91
92    public int getDescriptorType() {
93       return KEY_COLUMN_USAGE_DESCRIPTOR;
94    }
95 }
96
Popular Tags