package tr.com.srdc.mdr.core.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tr.com.srdc.mdr.core.model.MDRException; import tr.com.srdc.mdr.core.store.MDRDatabase; import tr.com.srdc.mdr.core.store.MDRDatabaseManager; public class RepositoryManager { private static final Logger logger = LoggerFactory .getLogger(RepositoryManager.class); private static RepositoryManager repositoryManager; private MDRDatabase mdrDatabase; // Currently, only one repository exists. // TODO Lateron, user management facilities may require one repository // for each user which all process on the same MDRDatabase private Repository repository; // Each Repository works on the same MDRDatabase. private RepositoryManager() { try { mdrDatabase = MDRDatabaseManager.getInstance().createMDRDatabase(); repository = new Repository(mdrDatabase); mdrDatabase.setSyncMode(true); } catch (MDRException e) { logger.error("Repository could not be initialized for the user", e); throw new IllegalStateException(e); } } public static RepositoryManager getInstance() { if (repositoryManager == null) { repositoryManager = new RepositoryManager(); } return repositoryManager; } public Repository getRepository() { return repository; } }