package somiba.apps;

import org.springframework.dao.DataAccessException;

import somiba.dao.DaoRepository;

public abstract class AbstractDaoAccessor {

	protected static DaoRepository daoRepository;
	protected static String daoRepositoryClassName = "somiba.dao.DaoRepository";

	protected final static DaoRepository getDaoRepository() throws DataAccessException {
		synchronized (AbstractDaoAccessor.class) {
			if (daoRepository == null) {
				try {
					Class<?> daoRepositoryClass = Class.forName(daoRepositoryClassName);
					daoRepository = (DaoRepository) daoRepositoryClass.newInstance();
				} catch (Exception e) {
					throw new RuntimeException(
							"Failed to initialize dao repository from init parameter [daoClassName]=["
									+ daoRepositoryClassName + "]", e);
				}
			}
			return daoRepository;
		}
	}
}
