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.StorageEngineRootIF;
9   import org.sourceforge.jemm.types.ID;
10  
11  public class BDbStorageEngineRootImpl implements StorageEngineRootIF {
12  	private final PrimaryIndex<String, RootEntry> pIdx;
13  	
14  	public BDbStorageEngineRootImpl(EntityStore store) {
15  		try {
16  			pIdx = store.getPrimaryIndex(String.class, RootEntry.class);
17  		} catch (DatabaseException e) {
18  			throw new StorageEngineException("Error initialising root index " ,e);
19  		}
20  	}
21  	
22  	@Override
23  	public ID getRoot(String rootName) {
24  		try {
25  			RootEntry re = pIdx.get(rootName);
26  			if(re == null)
27  				return null;
28  			else
29  				return re.value;
30  		} catch (DatabaseException e) {
31  			throw new StorageEngineException("Error in getRoot(" + rootName +")" ,e);
32  		}
33  	}
34  
35  	@Override
36  	public void removeRoot(String rootName) {
37  		try {
38  			pIdx.delete(rootName);
39  		} catch (DatabaseException e) {
40  			throw new StorageEngineException("Error in removeRoot(" + rootName +")" ,e);
41  		}
42  	}
43  
44  	@Override
45  	public void setRoot(String rootName, ID value) {
46  		RootEntry re = new RootEntry(rootName,value);
47  		try {
48  			pIdx.put(re);
49  		} catch (DatabaseException e) {
50  			throw new StorageEngineException("Error in setRoot(" + rootName + "," + value + ")" ,e);
51  		}
52  	}
53  }