package fr.mch.mdo.restaurant.services.business.managers.assembler;
import fr.mch.mdo.logs.ILogger;
import fr.mch.mdo.logs.ILoggerBean;
import fr.mch.mdo.restaurant.beans.IMdoDaoBean;
import fr.mch.mdo.restaurant.beans.IMdoDtoBean;
import fr.mch.mdo.restaurant.dao.beans.Locale;
import fr.mch.mdo.restaurant.dao.beans.UserAuthentication;
import fr.mch.mdo.restaurant.dao.beans.UserLocale;
import fr.mch.mdo.restaurant.dto.beans.LocaleDto;
import fr.mch.mdo.restaurant.dto.beans.UserAuthenticationDto;
import fr.mch.mdo.restaurant.dto.beans.UserLocaleDto;
import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl;
import fr.mch.mdo.utils.IManagerAssembler;
public class DefaultUserLocalesAssembler extends AbstractAssembler implements IManagerAssembler, ILoggerBean
{
private ILogger logger;
private IManagerAssembler localesAssembler;
private static class LazyHolder {
private static IManagerAssembler instance = new DefaultUserLocalesAssembler(
LoggerServiceImpl.getInstance().getLogger(DefaultUserLocalesAssembler.class.getName()));
}
private DefaultUserLocalesAssembler(ILogger logger) {
this.setLogger(logger);
this.localesAssembler = DefaultLocalesAssembler.getInstance();
}
public static IManagerAssembler getInstance() {
return LazyHolder.instance;
}
public DefaultUserLocalesAssembler() {
}
public IManagerAssembler getLocalesAssembler() {
return localesAssembler;
}
public void setLocalesAssembler(IManagerAssembler localesAssembler) {
this.localesAssembler = localesAssembler;
}
@Override
public IMdoDtoBean marshal(IMdoDaoBean daoBean) {
UserLocaleDto dto = null;
if (daoBean != null) {
UserLocale bean = (UserLocale) daoBean;
dto = new UserLocaleDto();
dto.setId(bean.getId());
LocaleDto locale = (LocaleDto) localesAssembler.marshal(bean.getLocale());
dto.setLocale(locale);
UserAuthenticationDto user = null;
dto.setUser(user);
}
return dto;
}
@Override
public IMdoDaoBean unmarshal(IMdoDtoBean dtoBean, IMdoDaoBean... parents) {
if (dtoBean == null) {
return null;
}
UserLocale bean = new UserLocale();
UserLocaleDto dto = (UserLocaleDto) dtoBean;
bean.setId(dto.getId());
if (parents != null && parents.length == 1) {
bean.setUser((UserAuthentication) parents[0]);
}
Locale locale = (Locale) localesAssembler.unmarshal(dto.getLocale());
bean.setLocale(locale);
return bean;
}
@Override
public ILogger getLogger() {
return logger;
}
@Override
public void setLogger(ILogger logger) {
this.logger = logger;
}
}