/** * Register an init callback that will be executed upon initialization. * * @param callback valid callback. * @param persistent should the callback persist after the singleton is initialized, will be removed if false. */ public static void registerInitCallback(ErraiInitCallback callback, boolean persistent) { synchronized (monitor) { InitCallbackBlock block = new InitCallbackBlock(callback, persistent); if (isActive()) { callback.onInit(getService()); if(persistent) { callbacks.add(block); } } else { callbacks.add(block); } } }
/** * Register an init callback that will be executed upon initialization. * * @param callback valid callback. * @param persistent should the callback persist after the singleton is initialized, will be removed if false. */ public static void registerInitCallback(ErraiInitCallback callback, boolean persistent) { synchronized (monitor) { InitCallbackBlock block = new InitCallbackBlock(callback, persistent); if (isActive()) { callback.onInit(getService()); if(persistent) { callbacks.add(block); } } else { callbacks.add(block); } } }
public static ErraiService initSingleton(final ErraiServiceConfigurator configurator) { synchronized (monitor) { if (isActive()) throw new IllegalStateException("service already set into singleton"); service = ErraiServiceFactory.create(configurator); proxy.closeProxy(service); Iterator<InitCallbackBlock> it = callbacks.iterator(); while(it.hasNext()) { InitCallbackBlock block = it.next(); block.callback.onInit(service); if(!block.persistent) { it.remove(); } } return service; } }
public static ErraiService initSingleton(final ErraiServiceConfigurator configurator) { synchronized (monitor) { if (isActive()) throw new IllegalStateException("service already set into singleton"); service = ErraiServiceFactory.create(configurator); proxy.closeProxy(service); Iterator<InitCallbackBlock> it = callbacks.iterator(); while(it.hasNext()) { InitCallbackBlock block = it.next(); block.callback.onInit(service); if(!block.persistent) { it.remove(); } } return service; } }