package org.playorm.cron.bindings; import java.util.Map; import org.playorm.cron.api.CronService; import org.playorm.cron.api.CronServiceFactory; import org.playorm.cron.impl.CronServiceImpl; import com.alvazan.orm.api.base.NoSqlEntityManagerFactory; import com.google.inject.Guice; import com.google.inject.Injector; public class CronServiceFactoryImpl extends CronServiceFactory { @Override protected CronService createService(Map<String, Object> properties) { Injector injector = Guice.createInjector(new CronProdBindings(properties)); CronServiceImpl impl = injector.getInstance(CronServiceImpl.class); Object factoryObj = properties.get(CronServiceFactory.NOSQL_MGR_FACTORY); if(factoryObj == null) throw new IllegalArgumentException("NOSQL_MGR_FACTORY is required and must be set"); else if(!(factoryObj instanceof NoSqlEntityManagerFactory)) throw new IllegalArgumentException("NOSQL_MGR_FACTORY is not an instance of NoSqlEntityManagerFactory"); NoSqlEntityManagerFactory factory = (NoSqlEntityManagerFactory) factoryObj; impl.setFactory(factory); return impl; } }