00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.openmobileis.database.fastobjectdb;
00026
00027 import org.openmobileis.common.context.ApplicationContextManager;
00028 import org.openmobileis.common.util.PropertiesManager;
00029 import org.openmobileis.database.DatabaseException;
00030
00031
00041 public class FastObjectDBManager {
00042
00043 protected static FastObjectDB db;
00044
00045
00052 public static FastObjectDB getCurrentFODB() throws DatabaseException {
00053 if (db == null) {
00054 String dbPath = PropertiesManager.getManager().getProperty("fastobjectdb.database.path");
00055 String dbname = PropertiesManager.getManager().getProperty("fastobjectdb.database.name");
00056 if ((dbPath == null) || (dbname == null)) {
00057 throw new DatabaseException("FODB ERROR : FODB path or name property is not set. Can't create db");
00058 }
00059 synchronized(FastObjectDBManager.class) {
00060 if (db==null) {
00061 try {
00062 db = FastObjectDB.open(dbPath, dbname);
00063 ApplicationContextManager.getManager().addManager(db);
00064 } catch (Throwable ex) {
00065 throw new DatabaseException(ex);
00066 }
00067 }
00068 }
00069 }
00070 return db;
00071 }
00072
00073 }