1 package org.prevayler.demos.scalability.prevayler; 2 3 import java.util.HashMap ; 4 import java.util.Map ; 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 recordsById = new HashMap (); 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 (idToDelete)); 18 } 19 } 20 21 private Object put(Record newRecord) { 22 Object key = new Long (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 |