/*
 * SynchronizedStore.java
 *
 * Created on January 15, 2002, 10:09 AM
 * Last modified  on  $Date$ by $Author$
 */

/**
 *
 * @author  Juozas Baliuka
 * @version $Revision$
 */
final class SynchronizedStore implements Store {
    
    private Store store;
    
    /** Creates new SynchronizedStore */
    public SynchronizedStore(Store store) {
        if(store == null)
            throw new NullPointerException();
        this.store = store;
    }
    
    public void storeObject(Object key, Object object) throws StoreException {
        synchronized(store){
            store.storeObject( key, object);
        }
    }
    
    public Object createObject(Object key, Object object) throws StoreException, DublicateKeyException {
        synchronized(store){
            return store.createObject( key, object);
        }
    }
    
    public Object retrieveObject(Object key) throws StoreException, ObjectNotFoundException {
        
        synchronized(store){
            return store.retrieveObject( key );
        }
        
    }
    
    public void removeObject(Object key) throws StoreException, ObjectNotFoundException {
        
        synchronized(store){
            store.removeObject( key );
        }
        
    }
    
}
