package fr.mch.mdo.restaurant.services.business.managers;
import java.util.HashMap;
import java.util.Map;
import fr.mch.mdo.restaurant.IocBeanName;
import fr.mch.mdo.restaurant.ioc.IBeanFactory;
import fr.mch.mdo.restaurant.services.authentication.jaas.MdoAuthenticationServiceImpl;
import fr.mch.mdo.restaurant.services.authorization.jaas.MdoAuthorizationServiceImpl;
import fr.mch.mdo.restaurant.services.business.managers.locales.DefaultLocalesManager;
import fr.mch.mdo.restaurant.services.business.managers.products.DefaultCategoriesManager;
import fr.mch.mdo.restaurant.services.business.managers.products.DefaultProductPartsManager;
import fr.mch.mdo.restaurant.services.business.managers.products.DefaultProductSpecialCodesManager;
import fr.mch.mdo.restaurant.services.business.managers.products.DefaultProductsManager;
import fr.mch.mdo.restaurant.services.business.managers.products.DefaultValueAddedTaxesManager;
import fr.mch.mdo.restaurant.services.business.managers.restaurants.DefaultRestaurantsManager;
import fr.mch.mdo.restaurant.services.business.managers.tables.DefaultTableTypesManager;
import fr.mch.mdo.restaurant.services.business.managers.users.DefaultUserAuthenticationsManager;
import fr.mch.mdo.restaurant.services.business.managers.users.DefaultUserRolesManager;
import fr.mch.mdo.restaurant.services.business.managers.users.DefaultUsersManager;
import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl;
public class BusinessServicesFactory implements IBeanFactory
{
private static Map<IocBeanName, Object> factory = new HashMap<IocBeanName, Object>();
static {
factory.put(IocBeanName.BEAN_LOG_NAME, LoggerServiceImpl.getInstance());
factory.put(IocBeanName.BEAN_MDO_TABLE_AS_ENUMS_MANAGER_NAME, DefaultMdoTableAsEnumsManager.getInstance());
factory.put(IocBeanName.BEAN_LOCALES_MANAGER_NAME, DefaultLocalesManager.getInstance());
factory.put(IocBeanName.BEAN_RESTAURANTS_MANAGER_NAME, DefaultRestaurantsManager.getInstance());
factory.put(IocBeanName.BEAN_USERS_MANAGER_NAME, DefaultUsersManager.getInstance());
factory.put(IocBeanName.BEAN_USER_ROLES_MANAGER_NAME, DefaultUserRolesManager.getInstance());
factory.put(IocBeanName.BEAN_USER_AUTHENTICATIONS_MANAGER_NAME, DefaultUserAuthenticationsManager.getInstance());
factory.put(IocBeanName.BEAN_PRODUCTS_MANAGER_NAME, DefaultProductsManager.getInstance());
factory.put(IocBeanName.BEAN_CATEGORIES_MANAGER_NAME, DefaultCategoriesManager.getInstance());
factory.put(IocBeanName.BEAN_PRODUCT_PARTS_MANAGER_NAME, DefaultProductPartsManager.getInstance());
factory.put(IocBeanName.BEAN_VALUE_ADDED_TAXES_MANAGER_NAME, DefaultValueAddedTaxesManager.getInstance());
factory.put(IocBeanName.BEAN_PRODUCT_SPECIAL_CODES_MANAGER_NAME, DefaultProductSpecialCodesManager.getInstance());
factory.put(IocBeanName.BEAN_TABLE_TYPES_MANAGER_NAME, DefaultTableTypesManager.getInstance());
factory.put(IocBeanName.BEAN_AUTHENTICATION_JAAS_NAME, MdoAuthenticationServiceImpl.getInstance());
factory.put(IocBeanName.BEAN_AUTHORIZATION_JAAS_NAME, MdoAuthorizationServiceImpl.getInstance());
}
private static class LazyHolder {
private static IBeanFactory instance = new BusinessServicesFactory();
}
public static IBeanFactory getInstance() {
return LazyHolder.instance;
}
private BusinessServicesFactory() {
}
@Override
public Object getBean(IocBeanName beanName) {
return factory.get(beanName);
}
}