KickJava   Java API By Example, From Geeks To Geeks.

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


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 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 IndexColumnDescriptor extends Descriptor {
13    public String JavaDoc table_catalog;
14    public String JavaDoc table_schema;
15    public String JavaDoc table_name;
16    public String JavaDoc indexname;
17    public String JavaDoc columnName;
18    public Object JavaDoc orderType;
19    public Integer JavaDoc ordinalPosition;
20    private QualifiedIdentifier indexTableName;
21
22    public IndexColumnDescriptor(QualifiedIdentifier indexTableName0) throws DException {
23       indexTableName = indexTableName0;
24    }
25
26    public void loadDataFromRecord(_SelectIterator iter) throws DException {
27       Object JavaDoc[] values = (Object JavaDoc[]) iter.getObject();
28       columnName = (String JavaDoc) values[0];
29       orderType = values[1];
30    }
31
32    public void save(_ServerSession serverSession) throws DException {
33       Object JavaDoc[] columnValues = new Object JavaDoc[] {
34           table_catalog, table_schema,
35           table_name, indexname, columnName, orderType, ordinalPosition};
36       try {
37          SqlSchemaConstants.insert(serverSession, indexTableName, null,
38                                    columnValues);
39       } catch (PrimaryConstraintException de) {
40          DException tde = new DException("DSE1143", new Object JavaDoc[] {columnName,
41                                          indexname, getTableName()});
42          throw tde;
43       } catch (SizeMisMatchException de) {
44          if (de.getDseCode().equals("DSE773")) {
45             DException tde = new DException("DSE8103", null);
46             throw tde;
47          }
48       } catch (DException de) {
49          if (de.getDseCode().equals("DSE1255")) {
50             DException tde = new DException("DSE1143", new Object JavaDoc[] {columnName,
51                                             indexname, getTableName()});
52             throw tde;
53          }
54          if (de.getDseCode().equals("DSE773")) {
55             DException tde = new DException("DSE8103", null);
56             throw tde;
57          }
58          throw de;
59       }
60    }
61
62    public void delete(_ServerSession serverSession) throws DException {
63       String JavaDoc bve = "TABLE_CATALOG=? and TABLE_SCHEMA=? and TABLE_NAME=? and INDEXNAME=? and COLUMN_NAME=?";
64       _ServerSession globalSession = serverSession.getGlobalSession();
65       booleanvalueexpression condition = ConditionParser.parseCondition(bve, globalSession, indexTableName);
66       super.delete(serverSession, indexTableName, condition, new Object JavaDoc[] {table_catalog, table_schema, table_name, indexname, columnName});
67    }
68
69    private String JavaDoc getTableName() throws DException {
70       return new StringBuffer JavaDoc().append(table_catalog).append(".").append(
71           table_schema).append(".").append(table_name).toString();
72    }
73
74    public void load(_ServerSession parm1) throws DException {
75       /**@todo: Implement this com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors._Descriptor method*/
76       throw new java.lang.UnsupportedOperationException JavaDoc(
77           "Method load() not yet implemented.");
78    }
79
80    public int getDescriptorType() {
81       return INDEX_COLUMN_DESCRIPTOR;
82    }
83 }
84
Popular Tags