package us.mn.state.health.lims.common.util; import us.mn.state.health.lims.analysis.dao.AnalysisDAO; import us.mn.state.health.lims.analysis.daoimpl.AnalysisDAOImpl; import us.mn.state.health.lims.referencetables.dao.ReferenceTablesDAO; import us.mn.state.health.lims.referencetables.daoimpl.ReferenceTablesDAOImpl; import us.mn.state.health.lims.result.dao.ResultDAO; import us.mn.state.health.lims.result.daoimpl.ResultDAOImpl; import us.mn.state.health.lims.resultlimits.dao.ResultLimitDAO; import us.mn.state.health.lims.resultlimits.daoimpl.ResultLimitDAOImpl; import us.mn.state.health.lims.sample.dao.SampleDAO; import us.mn.state.health.lims.sample.daoimpl.SampleDAOImpl; import us.mn.state.health.lims.sampleitem.dao.SampleItemDAO; import us.mn.state.health.lims.sampleitem.daoimpl.SampleItemDAOImpl; import us.mn.state.health.lims.test.dao.TestDAO; import us.mn.state.health.lims.test.daoimpl.TestDAOImpl; /* * The purpose of this factory is to facilitate unit testing which is * dependent on database contents. For every DAO object there should be * a getter and a setter. Unless the setter is called the default * should be the object accessing the database * */ public class DAOImplFactory { private static final DAOImplFactory instance = new DAOImplFactory(); private ReferenceTablesDAO referenceTablesDAOImpl = null; private SampleItemDAO sampleItemDAOImpl = null; private AnalysisDAO analysisDAOImpl = null; private ResultDAO resultDAOImpl = null; private ResultLimitDAO resultLimitsDAOImpl = null; private TestDAO testDAOImpl = null; private SampleDAO sampleDAOImpl = null; public static final DAOImplFactory getInstance(){ return instance; } public void revertAll() { referenceTablesDAOImpl = null; sampleItemDAOImpl = null; analysisDAOImpl = null; resultDAOImpl = null; resultLimitsDAOImpl = null; testDAOImpl = null; sampleDAOImpl = null; } public void setReferenceTablesDAOImpl(ReferenceTablesDAO referenceTablesDAOImpl) { this.referenceTablesDAOImpl = referenceTablesDAOImpl; } public ReferenceTablesDAO getReferenceTablesDAOImpl() { if( referenceTablesDAOImpl == null){ referenceTablesDAOImpl = new ReferenceTablesDAOImpl(); } return referenceTablesDAOImpl; } public void setSampleItemDAOImpl(SampleItemDAO sampleItemDAO) { this.sampleItemDAOImpl = sampleItemDAO; } public SampleItemDAO getSampleItemDAOImpl() { if( sampleItemDAOImpl == null){ sampleItemDAOImpl = new SampleItemDAOImpl(); } return sampleItemDAOImpl; } public void setAnalysisDAOImpl(AnalysisDAO analysisDAOImpl) { this.analysisDAOImpl = analysisDAOImpl; } public AnalysisDAO getAnalysisDAOImpl() { if( analysisDAOImpl == null){ analysisDAOImpl = new AnalysisDAOImpl(); } return analysisDAOImpl; } public void setResultDAOImpl(ResultDAO resultDAOImpl) { this.resultDAOImpl = resultDAOImpl; } public ResultDAO getResultDAOImpl() { if( resultDAOImpl == null){ resultDAOImpl = new ResultDAOImpl(); } return resultDAOImpl; } public void setResultLimitsDAOImpl(ResultLimitDAO resultLimitsDAOImpl) { this.resultLimitsDAOImpl = resultLimitsDAOImpl; } public ResultLimitDAO getResultLimitsDAOImpl() { if( resultLimitsDAOImpl == null){ resultLimitsDAOImpl = new ResultLimitDAOImpl(); } return resultLimitsDAOImpl; } public TestDAO getTestDAOImpl() { if( testDAOImpl == null){ testDAOImpl = new TestDAOImpl(); } return testDAOImpl; } public void setTestDAOImpl(TestDAO testDAOImpl) { this.testDAOImpl = testDAOImpl; } public SampleDAO getSampleDAOImpl() { if( sampleDAOImpl == null){ sampleDAOImpl = new SampleDAOImpl(); } return sampleDAOImpl; } public void setSampleDAOImp(SampleDAO sampleDAOImp) { this.sampleDAOImpl = sampleDAOImp; } }