View Javadoc

1   package org.sourceforge.jemm.database.persistent.berkeley;
2   
3   import com.sleepycat.je.DatabaseException;
4   import com.sleepycat.persist.EntityStore;
5   import com.sleepycat.persist.PrimaryIndex;
6   
7   import org.sourceforge.jemm.database.components.StorageEngineException;
8   import org.sourceforge.jemm.database.components.se.StorageEngineGCIF;
9   import org.sourceforge.jemm.database.components.types.GCInfo;
10  import org.sourceforge.jemm.database.persistent.berkeley.proxy.GCInfoProxy;
11  import org.sourceforge.jemm.types.ID;
12  
13  public class BDbStorageEngineGCImpl implements StorageEngineGCIF {
14  
15  	private final PrimaryIndex<Long, GCInfoProxy> pIdx;
16  
17  	public BDbStorageEngineGCImpl(EntityStore store) {
18  		try {
19  			this.pIdx = store.getPrimaryIndex(Long.class, GCInfoProxy.class);
20  		} catch (DatabaseException de) {
21  			throw new StorageEngineException("Error intitalising index on GCInfo storage",de); 
22  		}
23  	}
24  
25  	@Override
26  	public GCInfo get(ID id) {
27  		try {
28  			GCInfoProxy proxy = pIdx.get(id.getIDValue());
29  			if(proxy == null)
30  				return null;
31  			else
32  				return proxy.getGCInfo();
33  		} catch (DatabaseException de) {
34  			throw new StorageEngineException("Error getting GCInfo for id " + id,de); 
35  		}
36  	}
37  
38  	@Override
39  	public void remove(ID id) {
40  		try {
41  			pIdx.delete(id.getIDValue());
42  		} catch (DatabaseException de) {
43  			throw new StorageEngineException("Error deleting GCInfo for id " + id,de); 
44  		}
45  	}
46  
47  	@Override
48  	public void save(GCInfo gcInfo) {
49  		try {
50  			pIdx.put(new GCInfoProxy(gcInfo));
51  		} catch (DatabaseException de) {
52  			throw new StorageEngineException("Error saving GCInfo for id " + gcInfo.getId(),de); 
53  		}
54  	}
55  }