KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quadcap > sql > ViewCursor


1 package com.quadcap.sql;
2
3 /* Copyright 1999 - 2003 Quadcap Software. All rights reserved.
4  *
5  * This software is distributed under the Quadcap Free Software License.
6  * This software may be used or modified for any purpose, personal or
7  * commercial. Open Source redistributions are permitted. Commercial
8  * redistribution of larger works derived from, or works which bundle
9  * this software requires a "Commercial Redistribution License"; see
10  * http://www.quadcap.com/purchase.
11  *
12  * Redistributions qualify as "Open Source" under one of the following terms:
13  *
14  * Redistributions are made at no charge beyond the reasonable cost of
15  * materials and delivery.
16  *
17  * Redistributions are accompanied by a copy of the Source Code or by an
18  * irrevocable offer to provide a copy of the Source Code for up to three
19  * years at the cost of materials and delivery. Such redistributions
20  * must allow further use, modification, and redistribution of the Source
21  * Code under substantially the same terms as this license.
22  *
23  * Redistributions of source code must retain the copyright notices as they
24  * appear in each source code file, these license terms, and the
25  * disclaimer/limitation of liability set forth as paragraph 6 below.
26  *
27  * Redistributions in binary form must reproduce this Copyright Notice,
28  * these license terms, and the disclaimer/limitation of liability set
29  * forth as paragraph 6 below, in the documentation and/or other materials
30  * provided with the distribution.
31  *
32  * The Software is provided on an "AS IS" basis. No warranty is
33  * provided that the Software is free of defects, or fit for a
34  * particular purpose.
35  *
36  * Limitation of Liability. Quadcap Software shall not be liable
37  * for any damages suffered by the Licensee or any third party resulting
38  * from use of the Software.
39  */

40
41 import java.io.Externalizable JavaDoc;
42 import java.io.IOException JavaDoc;
43 import java.io.ObjectInput JavaDoc;
44 import java.io.ObjectOutput JavaDoc;
45
46 import java.util.Enumeration JavaDoc;
47 import java.util.Hashtable JavaDoc;
48 import java.util.Vector JavaDoc;
49
50 import java.sql.SQLException JavaDoc;
51
52 import com.quadcap.util.Debug;
53
54 /**
55  * This cursor performs the name mapping associated with the (optional)
56  * column list of the <code>CREATE VIEW</code> statement.
57  *
58  * @author Stan Bailes
59  */

60 public class ViewCursor extends CursorImpl {
61     Cursor cursor;
62     View view;
63     
64     public ViewCursor(Session session, View view,
65               Cursor cursor, Vector JavaDoc names)
66     throws SQLException JavaDoc
67     {
68     super(session, view.getName());
69     this.view = view;
70     this.cursor = cursor;
71     if (names.size() > cursor.getColumnCount()) {
72         throw new SQLException JavaDoc("Too many names in view column list",
73                    "42000");
74     }
75     if (names.size() < cursor.getColumnCount()) {
76         //#ifdef TRACE
77
if (Trace.bit(2)) {
78         Debug.println("cursor = " + cursor);
79         for (int i = 0; i < names.size(); i++) {
80             Debug.println("name[" + i + "] = " +
81                   names.elementAt(i).toString());
82         }
83         }
84         //#endif
85
throw new SQLException JavaDoc("Not enough names in view column list",
86                    "42000");
87     }
88     for (int i = 0; i < names.size(); i++) {
89         String JavaDoc name = (String JavaDoc)names.elementAt(i);
90         addColumn(new Column(name,
91                  cursor.getColumn(i+1).getType()));
92     }
93     resolveColumns();
94     }
95
96     public long size() throws SQLException JavaDoc { return -1; }
97     
98     public Row getRow() throws SQLException JavaDoc {
99     return cursor.getRow();
100     }
101
102     public void updateRow(Row row) throws SQLException JavaDoc {
103     view.checkRow(session, cursor, row);
104     cursor.updateRow(row);
105     }
106
107     public void insertRow(Row row) throws SQLException JavaDoc {
108     view.checkRow(session, cursor, row);
109     cursor.insertRow(row);
110     }
111
112     public void deleteRow() throws SQLException JavaDoc {
113     cursor.deleteRow();
114     }
115
116     public void beforeFirst() throws SQLException JavaDoc {
117         cursor.beforeFirst();
118     }
119     
120     public void afterLast() throws SQLException JavaDoc {
121         cursor.afterLast();
122     }
123     
124     public boolean absolute(int row) throws SQLException JavaDoc {
125     return cursor.absolute(row);
126     }
127     
128     public boolean next() throws SQLException JavaDoc {
129         return cursor.next();
130     }
131
132     public boolean isWritable(int column) throws SQLException JavaDoc {
133     return cursor.isWritable(column);
134     }
135
136     public int getColumnCount() throws SQLException JavaDoc {
137     return cursor.getColumnCount();
138     }
139     public void close() throws SQLException JavaDoc {
140     cursor.close();
141     }
142 }
143
Popular Tags