1 2 package in.co.daffodil.db.jdbc; 3 4 5 import java.util.*; 6 import com.daffodilwoods.database.resource.*; 7 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 getObject(Object key){ 24 return updateValuesMap.containsKey(key) ? updateValuesMap.get(key) : null; 25 } 26 27 public boolean rowUpdated(Object key){ 28 return updatedRowsList.contains(key); 29 } 30 31 public boolean rowInserted(Object key){ 32 return insertedRowList.contains(key); 33 } 34 35 public void addRowInserted(Object key){ 36 insertedRowList.add(key); 37 } 38 39 public void addRowUpdated(Object 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 key){ 47 if(insertedRowList.contains(key)) 48 insertedRowList.remove(key); 49 if( updatedRowsList.contains(key)) 50 updatedRowsList.remove(key); 51 } 52 53 public Object [][] getUpdatedIndexesAndValues(){ 54 int size = updateValuesMap.size(); 55 if(size == 0) 56 return null; 57 Object [][] updateIndexAndValues = new Object [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 [] getUpdatedValues(){ 85 int size = updateValuesMap.size(); 86 if(size == 0) 87 return null; 88 Object [] updateValues = new Object [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 values){ 100 updateValuesMap.put(new Integer (columnIndex),values); 101 } 102 103 public void clearData(){ 104 updateValuesMap.clear(); 105 } 106 public Object getColumnValue(int columnIndex){ 107 return updateValuesMap.get(new Integer (columnIndex)); 108 } 109 } 110 | Popular Tags |