View Javadoc

1   package org.sourceforge.jemm;
2   
3   import java.io.File;
4   
5   import org.sourceforge.jemm.database.Database;
6   import org.sourceforge.jemm.database.components.GCMode;
7   import org.sourceforge.jemm.database.persistent.berkeley.BDbDatabase;
8   
9   /**
10   * A PersistentStore uses a BDbDatabase to a local persistent database.
11   * 
12   * The following code shows how to register the PersistentStore such that it
13   * will store all objects that have been enhanced:
14   * <code>
15   * PersistentStore myStore = new PersistentStore();
16   * Session.setStore(myStore);
17   * </code>
18   * 
19   * One your program has finished running call the following:
20   * <code>
21   * Session.shutdown();
22   * </code>
23   * 
24   * @see Session
25   * @author Paul Keeble
26   * @author Rory Graves
27   *
28   */
29  public class PersistentStore extends AbstractStore {
30  	BDbDatabase persistentDB;
31  	final File dataDir;
32  	
33  	public PersistentStore(File dataDir) {
34  		this(dataDir,false);
35  	}
36  	
37  	public PersistentStore(File dataDir,boolean debug) {
38  		super(debug);
39  		this.dataDir = dataDir;
40  		setup();
41  	}
42  	
43  	@Override
44  	protected Database createUnderlyingDatabase() {
45  		persistentDB = new BDbDatabase(dataDir,GCMode.AUTO);
46  		return persistentDB;
47  	}
48  
49  	@Override
50  	protected void shutdownUnderlyingDatabase() {
51  		persistentDB.shutdown();
52  	}
53  }