KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > prevayler > demos > scalability > prevayler > TransactionSystem


1 package org.prevayler.demos.scalability.prevayler;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Map JavaDoc;
5
6 import org.prevayler.demos.scalability.Record;
7 import org.prevayler.demos.scalability.RecordIterator;
8
9 class TransactionSystem implements ScalabilitySystem {
10
11     private final Map JavaDoc recordsById = new HashMap JavaDoc();
12
13     public void performTransaction(Record recordToInsert, Record recordToUpdate, long idToDelete) {
14         synchronized (recordsById) {
15             put(recordToInsert);
16             put(recordToUpdate);
17             recordsById.remove(new Long JavaDoc(idToDelete));
18         }
19     }
20
21     private Object JavaDoc put(Record newRecord) {
22         Object JavaDoc key = new Long JavaDoc(newRecord.getId());
23         return recordsById.put(key, newRecord);
24     }
25
26     public void replaceAllRecords(RecordIterator newRecords) {
27         recordsById.clear();
28
29         while (newRecords.hasNext()) {
30             put(newRecords.next());
31         }
32     }
33     
34
35     public int hashCode() {
36         return recordsById.hashCode();
37     }
38 }
39
Popular Tags