package fr.mch.mdo.restaurant.dao;
import fr.mch.mdo.restaurant.dao.authentication.IAuthenticationDao;
import fr.mch.mdo.restaurant.dao.authentication.hibernate.DefaultAuthenticationDao;
import fr.mch.mdo.restaurant.dao.hibernate.DefaultMdoTableAsEnumsDao;
import fr.mch.mdo.restaurant.dao.locales.ILocalesDao;
import fr.mch.mdo.restaurant.dao.locales.hibernate.DefaultLocalesDao;
import fr.mch.mdo.restaurant.dao.products.ICategoriesDao;
import fr.mch.mdo.restaurant.dao.products.IProductPartsDao;
import fr.mch.mdo.restaurant.dao.products.IProductSpecialCodesDao;
import fr.mch.mdo.restaurant.dao.products.IProductsDao;
import fr.mch.mdo.restaurant.dao.products.IValueAddedTaxesDao;
import fr.mch.mdo.restaurant.dao.products.hibernate.DefaultCategoriesDao;
import fr.mch.mdo.restaurant.dao.products.hibernate.DefaultProductPartsDao;
import fr.mch.mdo.restaurant.dao.products.hibernate.DefaultProductSpecialCodesDao;
import fr.mch.mdo.restaurant.dao.products.hibernate.DefaultProductsDao;
import fr.mch.mdo.restaurant.dao.products.hibernate.DefaultValueAddedTaxesDao;
import fr.mch.mdo.restaurant.dao.restaurants.IRestaurantsDao;
import fr.mch.mdo.restaurant.dao.restaurants.hibernate.DefaultRestaurantsDao;
import fr.mch.mdo.restaurant.dao.tables.ICreditsDao;
import fr.mch.mdo.restaurant.dao.tables.ITableTypesDao;
import fr.mch.mdo.restaurant.dao.tables.hibernate.DefaultCreditsDao;
import fr.mch.mdo.restaurant.dao.tables.hibernate.DefaultTableTypesDao;
import fr.mch.mdo.restaurant.dao.users.IUserAuthenticationsDao;
import fr.mch.mdo.restaurant.dao.users.IUserRolesDao;
import fr.mch.mdo.restaurant.dao.users.IUsersDao;
import fr.mch.mdo.restaurant.dao.users.hibernate.DefaultUserAuthenticationsDao;
import fr.mch.mdo.restaurant.dao.users.hibernate.DefaultUserRolesDao;
import fr.mch.mdo.restaurant.dao.users.hibernate.DefaultUsersDao;
public class DaoServicesFactory {
private enum DaoInstances {
IAuthenticationDao {
public IDao getInstance() {
return DefaultAuthenticationDao.getInstance();
}
},
ILocalesDao;
public IDao getInstance() {
throw new IllegalAccessError("This method is not overriden");
}
};
public static IAuthenticationDao getAuthenticationDao() {
return (IAuthenticationDao) DaoInstances.IAuthenticationDao.getInstance();
}
public static ILocalesDao getLocalesDao() {
// return (ILocalesDao) DaoInstances.ILocalesDao.getInstance();
return DefaultLocalesDao.getInstance();
}
public static IMdoTableAsEnumsDao getMdoTableAsEnumsDao() {
return DefaultMdoTableAsEnumsDao.getInstance();
}
public static ICategoriesDao getCategoriesDao() {
return DefaultCategoriesDao.getInstance();
}
public static IProductPartsDao getProductPartsDao() {
return DefaultProductPartsDao.getInstance();
}
public static IProductsDao getProductsDao() {
return DefaultProductsDao.getInstance();
}
public static IProductSpecialCodesDao getProductSpecialCodesDao() {
return DefaultProductSpecialCodesDao.getInstance();
}
public static IValueAddedTaxesDao getValueAddedTaxesDao() {
return DefaultValueAddedTaxesDao.getInstance();
}
public static IRestaurantsDao getRestaurantsDao() {
return DefaultRestaurantsDao.getInstance();
}
public static ITableTypesDao getTableTypesDao() {
return DefaultTableTypesDao.getInstance();
}
public static IUserAuthenticationsDao getUserAuthenticationsDao() {
return DefaultUserAuthenticationsDao.getInstance();
}
public static IUserRolesDao getUserRolesDao() {
return DefaultUserRolesDao.getInstance();
}
public static IUsersDao getUsersDao() {
return DefaultUsersDao.getInstance();
}
public static ICreditsDao getCreditsDao() {
return DefaultCreditsDao.getInstance();
}
}