package edu.harvard.i2b2.crc.loader.dao; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.harvard.i2b2.common.exception.I2B2DAOException; import edu.harvard.i2b2.common.exception.I2B2Exception; import edu.harvard.i2b2.common.util.ServiceLocator; import edu.harvard.i2b2.crc.loader.datavo.loader.DataSourceLookup; public class OracleUploaderDAOFactory implements IUploaderDAOFactory { private DataSourceLookup dataSourceLookup = null; private DataSource dataSource = null; /** log **/ protected final static Log log = LogFactory .getLog(OracleUploaderDAOFactory.class); public OracleUploaderDAOFactory(DataSourceLookup dataSourceLookup) throws I2B2Exception { this.dataSourceLookup = dataSourceLookup; String dataSourceName = dataSourceLookup.getDataSource(); log.info("Using datasource " + dataSourceName); try { // dataSource = (DataSource) // crcUtil.getSpringDataSource(dataSourceName); dataSource = ServiceLocator.getInstance().getAppServerDataSource( dataSourceName); } catch (I2B2Exception i2b2Ex) { log.error(i2b2Ex); throw new I2B2DAOException( "Error getting application/spring datasource " + dataSourceName + " : " + i2b2Ex.getMessage(), i2b2Ex); } } /** * Constructor for testing, datasource can be passed as parameter. * * @param dataSourceLookup * @param dataSource */ public OracleUploaderDAOFactory(DataSourceLookup dataSourceLookup, DataSource dataSource) { this.dataSourceLookup = dataSourceLookup; this.dataSource = dataSource; } public IConceptDAO getConceptDAO() { return new ConceptDAO(dataSourceLookup, dataSource); } public IModifierDAO getModifierDAO() { return new ModifierDAO(dataSourceLookup, dataSource); } public IObservationFactDAO getObservationDAO() { return new ObservationFactDAO(dataSourceLookup, dataSource); } public IPatientDAO getPatientDAO() { return new PatientDAO(dataSourceLookup, dataSource); } public IPidDAO getPidDAO() { return new PidDAO(dataSourceLookup, dataSource); } public IEidDAO getEidDAO() { return new EidDAO(dataSourceLookup, dataSource); } public IProviderDAO getProviderDAO() { return new ProviderDAO(dataSourceLookup, dataSource); } public UploadStatusDAOI getUploadStatusDAO() { return new UploadStatusDAO(dataSourceLookup, dataSource); } public IVisitDAO getVisitDAO() { return new VisitDAO(dataSourceLookup, dataSource); } public IMissingTermDAO getMissingTermDAO() { return new MissingTermDAO(dataSourceLookup, dataSource); } public DataSourceLookup getDataSourceLookup() { // TODO Auto-generated method stub return dataSourceLookup; } public DataSource getDataSource() { return this.dataSource; } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } }