KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > in > co > daffodil > db > jdbc > RecordBuffer


1
2 package in.co.daffodil.db.jdbc;
3
4
5 import java.util.*;
6 import com.daffodilwoods.database.resource.*;
7 /*
8    * keeps the track of updates called by DResultSet so that they can be
9    * finnaly done when updateRow or inserRow is called
10 */

11
12 public class RecordBuffer {
13
14   HashMap updateValuesMap;
15   ArrayList updatedRowsList;
16   ArrayList insertedRowList;
17   public RecordBuffer() {
18      updateValuesMap = new HashMap();
19      updatedRowsList = new ArrayList();
20      insertedRowList = new ArrayList();
21   }
22
23   public Object JavaDoc getObject(Object JavaDoc key){
24     return updateValuesMap.containsKey(key) ? updateValuesMap.get(key) : null;
25   }
26
27   public boolean rowUpdated(Object JavaDoc key){
28      return updatedRowsList.contains(key);
29   }
30
31   public boolean rowInserted(Object JavaDoc key){
32      return insertedRowList.contains(key);
33   }
34
35   public void addRowInserted(Object JavaDoc key){
36      insertedRowList.add(key);
37   }
38
39   public void addRowUpdated(Object JavaDoc key){
40     if(insertedRowList.contains(key))
41       insertedRowList.remove(key);
42     if( ! updatedRowsList.contains(key))
43       updatedRowsList.add(key);
44   }
45
46   public void removeRowDeleted(Object JavaDoc key){
47     if(insertedRowList.contains(key))
48       insertedRowList.remove(key);
49     if( updatedRowsList.contains(key))
50       updatedRowsList.remove(key);
51   }
52
53   public Object JavaDoc[][] getUpdatedIndexesAndValues(){
54     int size = updateValuesMap.size();
55     if(size == 0)
56        return null;
57     Object JavaDoc[][] updateIndexAndValues = new Object JavaDoc[size][2];
58     Set set =updateValuesMap.entrySet();
59     Iterator iterator = set.iterator();
60     int i = 0;
61     while(iterator.hasNext()){
62       Map.Entry m=(Map.Entry)iterator.next();
63       updateIndexAndValues[i][0] = m.getKey();
64       updateIndexAndValues[i++][1] = m.getValue();
65     }
66     return updateIndexAndValues;
67   }
68
69   public int[] getUpdatedColumns(){
70     int size = updateValuesMap.size();
71     if(size == 0)
72        return null;
73     int[] updateColumns = new int[size];
74     Set set =updateValuesMap.entrySet();
75     Iterator iterator = set.iterator();
76     int i = 0;
77     while(iterator.hasNext()){
78       Map.Entry m=(Map.Entry)iterator.next();
79       updateColumns[i++] = m.getKey().hashCode ();
80     }
81     return updateColumns;
82   }
83
84   public Object JavaDoc[] getUpdatedValues(){
85     int size = updateValuesMap.size();
86     if(size == 0)
87        return null;
88     Object JavaDoc[] updateValues = new Object JavaDoc[size];
89     Set set = updateValuesMap.entrySet();
90     Iterator iterator = set.iterator();
91     int i = 0;
92     while(iterator.hasNext()){
93       Map.Entry m=(Map.Entry)iterator.next();
94       updateValues[i++] = m.getValue();
95     }
96     return updateValues;
97   }
98
99   public void setUpdateValue(int columnIndex,Object JavaDoc values){
100      updateValuesMap.put(new Integer JavaDoc(columnIndex),values);
101   }
102
103   public void clearData(){
104     updateValuesMap.clear();
105   }
106   public Object JavaDoc getColumnValue(int columnIndex){
107     return updateValuesMap.get(new Integer JavaDoc(columnIndex));
108   }
109 }
110
Popular Tags