1 19 20 package com.sslexplorer.networkplaces; 21 22 import org.apache.commons.logging.Log; 23 import org.apache.commons.logging.LogFactory; 24 25 26 33 public class NetworkPlaceDatabaseFactory { 34 static Log log = LogFactory.getLog(NetworkPlaceDatabaseFactory.class); 35 36 static NetworkPlaceDatabase instance; 37 static Class networkPlaceDatabaseImpl = JDBCNetworkPaceDatabase.class; 38 private static boolean locked = false; 39 40 43 public static NetworkPlaceDatabase getInstance() { 44 try { 45 return instance == null ? instance = (NetworkPlaceDatabase) networkPlaceDatabaseImpl.newInstance() : instance; 46 } catch (Exception e) { 47 log.error("Could not create instance of class " + networkPlaceDatabaseImpl.getCanonicalName(), e); 48 return instance == null ? instance = new JDBCNetworkPaceDatabase() : instance; 49 } 50 } 51 52 57 public static void setFactoryImpl(Class networkPlaceDatabaseImpl, boolean lock) throws IllegalStateException { 58 if (locked) { 59 throw new IllegalStateException ("NetworkPlace database factory has been locked by another plugin."); 60 } 61 NetworkPlaceDatabaseFactory.networkPlaceDatabaseImpl = networkPlaceDatabaseImpl; 62 locked = lock; 63 } 64 } 65 | Popular Tags |