KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > rmi > server > RmiSelectIteratorServerSide


1 package com.daffodilwoods.rmi.server;
2
3 import com.daffodilwoods.daffodildb.server.sql99.dql.resultsetmetadata._RowReader;
4
5 import com.daffodilwoods.daffodildb.server.sql99.dql.listenerevents._SelectIterator;
6
7 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.table.SelectIterator;
8
9
10 import com.daffodilwoods.daffodildb.server.datadictionarysystem._ColumnCharacteristics;
11 import java.rmi.RemoteException JavaDoc;
12 import java.rmi.server.UnicastRemoteObject JavaDoc;
13 import com.daffodilwoods.database.resource.DException;
14
15 import com.daffodilwoods.daffodildb.server.sql99.common._KeyColumnInformation;
16 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.Datatype;
17 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.*;
18 import com.daffodilwoods.rmi.interfaces.*;
19 import com.daffodilwoods.rmi.*;
20 import java.util.ArrayList JavaDoc;
21
22 import com.daffodilwoods.daffodildb.server.serversystem._Connection;
23 import com.daffodilwoods.daffodildb.client.*;
24 import com.daffodilwoods.daffodildb.server.sql99.common.*;
25
26 import com.daffodilwoods.daffodildb.server.sql99.dql.resultsetmetadata.AllColumnRowReader;
27 import com.daffodilwoods.daffodildb.server.sql99.dql.resultsetmetadata._SelectColumnCharacteristics;
28
29
30 public class RmiSelectIteratorServerSide extends UnicastRemoteObject JavaDoc implements _RmiSelectIterator {
31
32   _SelectIterator selectIterator_Interface;
33   _Connection connection;
34   private boolean addedListener;
35   private RmiConnectionServerSide rmiConnection;
36   private int[] dataTypes;
37
38   public RmiSelectIteratorServerSide(_SelectIterator selectIterator0,_RmiConnection rmiConnection1) throws RemoteException JavaDoc {
39     super();
40     selectIterator_Interface = selectIterator0;
41     rmiConnection = (RmiConnectionServerSide)rmiConnection1;
42     try {
43         if( selectIterator0 != null )
44             dataTypes = selectIterator0.getDataTypes();
45     }
46     catch (DException ex) {
47     }
48   }
49
50   void changeSelectIterator(_SelectIterator newIteraor){
51       selectIterator_Interface = newIteraor;
52       try {
53           if (dataTypes == null )
54               dataTypes = newIteraor.getDataTypes();
55       }
56       catch (DException ex) {
57       }
58   }
59
60   public _ColumnCharacteristics getColumnCharacteristics() throws DException, RemoteException JavaDoc {
61       _SelectColumnCharacteristics scc = selectIterator_Interface.getSelectColumnCharacteristics();
62       int columnCount = scc.getColumnCount();
63       ColumnInfo[] columnInfo = new ColumnInfo[columnCount];
64       for (int i = 0; i < columnCount; i++) {
65           columnInfo[i] = new ColumnInfo();
66           ColumnInfo ci = columnInfo[i];
67           int columnIndex = i+1;
68           ci.catalogName = scc.getCatalogName(columnIndex);
69           ci.columnLabel = scc.getColumnLabel(columnIndex);
70           ci.isColumnUpdatable = scc.isColumnUpdatable(columnIndex);
71           ci.name = scc.getColumnName(columnIndex);
72           ci.nullable = scc.isNullable(columnIndex);
73           ci.precision = scc.getPrecision(columnIndex);
74           ci.qualifiedTableName = scc.getQualifiedTableName(columnIndex);
75           ci.scale = scc.getScale(columnIndex);
76           ci.schemaName = scc.getSchemaName(columnIndex);
77           ci.size = scc.getSize(columnIndex);
78           ci.tableName = scc.getTableName(columnIndex);
79           ci.type = scc.getColumnType(columnIndex);
80       }
81       return new RmiSelectColumnCharacteristics(columnInfo);
82   }
83
84   public _RowReader getRowReader() throws DException, RemoteException JavaDoc {
85       _RowReader reader = selectIterator_Interface.getRowReader();
86       if( reader instanceof AllColumnRowReader ){
87           AllColumnRowReader rr = (AllColumnRowReader)reader;
88           int lengthOfRow = ((Object JavaDoc[])rr.getBlankRow()).length;
89           return new RmiAllColumnRowReader(rr.getSelectedColumnMapping(),
90                 rr.getComparator(),rr.getKeyColumnIndexes(),lengthOfRow,rr.getPrimaryConditionColumns());
91       }
92       else
93           return new RmiRowReader();
94   }
95
96   public Object JavaDoc fetch(int rowCount,boolean forward,boolean beforeFirstAfterLast) throws DException, RemoteException JavaDoc {
97      long time = System.currentTimeMillis();
98     if(forward ){
99       if (beforeFirstAfterLast)
100         selectIterator_Interface.beforeFirst();
101     }
102     else if( beforeFirstAfterLast )
103           selectIterator_Interface.afterLast();
104     Object JavaDoc[] rows = forward ? selectIterator_Interface.fetchForward(rowCount) : selectIterator_Interface.fetchBackward(rowCount);
105     SelectedRows slRows = new SelectedRows();
106     slRows.setDataTypes(dataTypes);
107     slRows.setRows(rows);
108
109     time = System.currentTimeMillis()- time;
110     if (time > 50)
111          ;//// Removed By Program ** System.out.println(" Time taken in fetch of RmiSelectIteratorServerSide " + time);
112

113
114     return slRows;
115
116   }
117
118   public int move(Object JavaDoc key, boolean intBased) throws DException, RemoteException JavaDoc {
119     if(intBased)
120       return selectIterator_Interface.move(key.hashCode());
121     selectIterator_Interface.moveToRow(key);
122     return 0;
123   }
124
125   public int getRowCount() throws java.rmi.RemoteException JavaDoc,
126       com.daffodilwoods.database.resource.DException {
127     return selectIterator_Interface.getRowCount();
128   }
129
130     public Object JavaDoc insert(int[] columnIndexes,Object JavaDoc[] columnValues) throws DException,RemoteException JavaDoc{
131       Object JavaDoc row = selectIterator_Interface.insert(columnIndexes,columnValues);
132       return makeSelectRows(row);
133     }
134
135     private SelectedRows makeSelectRows(Object JavaDoc row) {
136       SelectedRows slRows = new SelectedRows();
137       slRows.setDataTypes(dataTypes);
138       slRows.setRows(new Object JavaDoc[]{row});
139       return slRows;
140     }
141
142     public Object JavaDoc update(Object JavaDoc key,int[] columnIndexes,Object JavaDoc[] values,Object JavaDoc row) throws DException, RemoteException JavaDoc{
143       Object JavaDoc updatedRow = selectIterator_Interface.update(key,columnIndexes,values,row);
144       return makeSelectRows(updatedRow);
145     }
146
147     public void delete(Object JavaDoc key) throws DException,RemoteException JavaDoc{
148       selectIterator_Interface.delete(key);
149     }
150
151     public Object JavaDoc moveToInsertRow() throws DException ,RemoteException JavaDoc{
152       Object JavaDoc row = selectIterator_Interface.moveToInsertRow();
153       return makeSelectRows(row);
154     }
155
156     public void setConnection(_Connection connection) throws RemoteException JavaDoc{
157       this.connection = connection;
158     }
159
160     public ExecutionPlanForBrowser getExecutionPlanForBrowser() throws DException,RemoteException JavaDoc{
161        return selectIterator_Interface.getExecutionPlanForBrowser();
162     }
163
164     public void flushInsertedRecord() throws DException,RemoteException JavaDoc {
165       selectIterator_Interface.flushInsertedRecord();
166     }
167
168     public boolean isUpdatable() throws DException, RemoteException JavaDoc {
169       return selectIterator_Interface.isUpdatable();
170     }
171
172     String JavaDoc query;
173     public void setQuery(String JavaDoc query) {
174       this.query = query;
175     }
176   }
177
Popular Tags