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.common.util.exception.DatabaseException;
00030
00031
00041 public class FastObjectDBManager {
00042
00043 protected static FastObjectDB db;
00044 private static boolean fodbStarted = false;
00045
00046
00053 public static FastObjectDB getCurrentFODB() throws DatabaseException {
00054 if (db == null) {
00055 String dbPath = PropertiesManager.getManager().getProperty("fastobjectdb.database.path");
00056 String dbname = PropertiesManager.getManager().getProperty("fastobjectdb.database.name");
00057 if ((dbPath == null) || (dbname == null)) {
00058 throw new DatabaseException("FODB ERROR : FODB path or name property is not set. Can't create db");
00059 }
00060 synchronized(FastObjectDBManager.class) {
00061 if (db==null) {
00062 try {
00063 db = FastObjectDB.open(dbPath, dbname);
00064 ApplicationContextManager.getManager().addManager(db);
00065 fodbStarted = true;
00066 } catch (Throwable ex) {
00067 throw new DatabaseException(ex);
00068 }
00069 }
00070 }
00071 }
00072 return db;
00073 }
00074
00075
00076 public static boolean isFodbStarted() {
00077 return fodbStarted;
00078 }
00079
00080 }