KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > datadictionarysystem > information > ProcedureInformation


1 package com.daffodilwoods.daffodildb.server.datadictionarysystem.information;
2
3 import java.io.*;
4 import java.util.*;
5
6 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
7 import com.daffodilwoods.daffodildb.server.serversystem.*;
8 import com.daffodilwoods.daffodildb.server.sql99.*;
9 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*;
10 import com.daffodilwoods.database.general.*;
11 import com.daffodilwoods.database.resource.*;
12
13 public class ProcedureInformation implements _ProcedureInformation {
14    private QualifiedIdentifier qualifiedIdentifier;
15    private String JavaDoc specific_name;
16    private String JavaDoc language;
17    private String JavaDoc resultType;
18    private String JavaDoc routineType;
19    private String JavaDoc[] procedureParameters;
20    private String JavaDoc routineQuery;
21
22    public ProcedureInformation() {
23    }
24
25    public ProcedureInformation(_ServerSession connection, QualifiedIdentifier spQqualifiedIdentifier) {
26       try {
27          /**@todo:- resultType is to be taken yet not clear */
28          String JavaDoc selectQuery = "Select routine_catalog,routine_schema,routine_name,routine_type,routine_definition,routine_body from " + SystemTables.routines_TableName
29              + " where specific_catalog = ? and specific_schema = ? and specific_name = ? ";
30          _SelectQueryIterator iterator = getIterator(connection, selectQuery, new Object JavaDoc[] {spQqualifiedIdentifier.catalog, spQqualifiedIdentifier.schema, spQqualifiedIdentifier.getName()});
31          try {
32             if (iterator.first()) {
33                try {
34                   Object JavaDoc[] routineRecord = null;
35                   routineRecord = (Object JavaDoc[]) iterator.getObject();
36                   qualifiedIdentifier = new QualifiedIdentifier( (String JavaDoc) routineRecord[0], (String JavaDoc) routineRecord[1], (String JavaDoc) routineRecord[2]);
37                   routineType = (String JavaDoc) routineRecord[3];
38                   routineQuery = (String JavaDoc) routineRecord[4];
39                   language = (String JavaDoc) routineRecord[5];
40                   specific_name = spQqualifiedIdentifier.getName();
41                   String JavaDoc parametersQuery = "Select parameter_name from " + SystemTables.parameters_TableName
42                       + " where specific_catalog = ? and specific_schema = ? and specific_name = ? ";
43                   _SelectQueryIterator parametersIterator = getIterator(connection, parametersQuery, new Object JavaDoc[] {spQqualifiedIdentifier.catalog, spQqualifiedIdentifier.schema, spQqualifiedIdentifier.name});
44                   if (parametersIterator.first()) {
45                      Object JavaDoc[] parametersRecord = null;
46                      ArrayList parametersList = new ArrayList();
47                      do {
48                         parametersRecord = (Object JavaDoc[]) parametersIterator.getObject();
49                         parametersList.add(parametersRecord[0]);
50                      } while (parametersIterator.next());
51                      procedureParameters = (String JavaDoc[]) (parametersList.toArray(new String JavaDoc[0]));
52                   }
53                } catch (DatabaseException e) {}
54             }
55          } catch (RetrievalException e) {}
56       } catch (DException ex) {
57          throw new RuntimeException JavaDoc(ex.getMessage());
58       }
59    }
60
61    public QualifiedIdentifier getQualifiedIdentifier() {
62       return qualifiedIdentifier;
63    }
64
65    public String JavaDoc getSpecificName() {
66       return specific_name;
67
68    }
69
70    public String JavaDoc getName() {
71       return qualifiedIdentifier.name;
72    }
73
74    public String JavaDoc getCatalog() {
75       return qualifiedIdentifier.catalog;
76    }
77
78    public String JavaDoc getSchema() {
79       return qualifiedIdentifier.schema;
80    }
81
82    public String JavaDoc getLanguage() {
83       return language;
84    }
85
86    public String JavaDoc getResultType() {
87       return resultType;
88    }
89
90    public String JavaDoc getRoutineType() {
91       return routineType;
92    }
93
94    public String JavaDoc[] getProcedureParameters() {
95       return procedureParameters;
96    }
97
98    public String JavaDoc getProcedureQuery() {
99       return routineQuery;
100    }
101
102    public void readExternal(ObjectInput objectInput) {
103       try {
104          qualifiedIdentifier = (QualifiedIdentifier) objectInput.readObject();
105          specific_name = (String JavaDoc) objectInput.readObject();
106          language = (String JavaDoc) objectInput.readObject();
107          resultType = (String JavaDoc) objectInput.readObject();
108          routineType = (String JavaDoc) objectInput.readObject();
109          procedureParameters = (String JavaDoc[]) objectInput.readObject();
110          routineQuery = (String JavaDoc) objectInput.readObject();
111       } catch (IOException ioe) {
112       } catch (Exception JavaDoc cnf) {
113       }
114    }
115
116    public void writeExternal(ObjectOutput objectOutput) {
117       try {
118          objectOutput.writeObject(qualifiedIdentifier);
119          objectOutput.writeObject(specific_name);
120          objectOutput.writeObject(language);
121          objectOutput.writeObject(resultType);
122          objectOutput.writeObject(routineType);
123          objectOutput.writeObject(procedureParameters);
124          objectOutput.writeObject(routineQuery);
125       } catch (Exception JavaDoc ioe) {
126       }
127    }
128
129    private _SelectQueryIterator getIterator(_ServerSession connection, String JavaDoc query, Object JavaDoc[] parameters) throws DException {
130       if (parameters == null)
131          return (_SelectQueryIterator) connection.getGlobalSession().executeQuery(query, 0);
132       _Executer executer = (_Executer) connection.getGlobalSession().executeQueryParameterised(query, 0); ;
133       return (_SelectQueryIterator) executer.execute(parameters);
134    }
135 }
136
Popular Tags