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.MdoTableAsEnum;
import fr.mch.mdo.restaurant.dao.beans.PrintingInformation;
import fr.mch.mdo.restaurant.dao.beans.Restaurant;
import fr.mch.mdo.restaurant.dto.beans.MdoTableAsEnumDto;
import fr.mch.mdo.restaurant.dto.beans.PrintingInformationDto;
import fr.mch.mdo.restaurant.dto.beans.RestaurantDto;
import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl;
import fr.mch.mdo.utils.IManagerAssembler;
public class DefaultPrintingInformationsAssembler extends AbstractAssembler implements IManagerAssembler, ILoggerBean
{
private ILogger logger;
private IManagerAssembler mdoTableAsEnumsAssembler;
private IManagerAssembler restaurantsAssembler;
private static class LazyHolder {
private static IManagerAssembler instance = new DefaultPrintingInformationsAssembler(
LoggerServiceImpl.getInstance().getLogger(DefaultPrintingInformationsAssembler.class.getName()));
}
private DefaultPrintingInformationsAssembler(ILogger logger) {
this.setLogger(logger);
this.mdoTableAsEnumsAssembler = DefaultMdoTableAsEnumsAssembler.getInstance();
this.restaurantsAssembler = DefaultRestaurantsAssembler.getInstance();
}
public static IManagerAssembler getInstance() {
return LazyHolder.instance;
}
public DefaultPrintingInformationsAssembler() {
}
public IManagerAssembler getMdoTableAsEnumsAssembler() {
return mdoTableAsEnumsAssembler;
}
public void setMdoTableAsEnumsAssembler(IManagerAssembler mdoTableAsEnumsAssembler) {
this.mdoTableAsEnumsAssembler = mdoTableAsEnumsAssembler;
}
public IManagerAssembler getRestaurantsAssembler() {
return restaurantsAssembler;
}
public void setRestaurantsAssembler(IManagerAssembler restaurantsAssembler) {
this.restaurantsAssembler = restaurantsAssembler;
}
@Override
public IMdoDtoBean marshal(IMdoDaoBean daoBean) {
PrintingInformationDto dto = null;
if (daoBean != null) {
PrintingInformation bean = (PrintingInformation) daoBean;
dto = new PrintingInformationDto();
dto.setId(bean.getId());
dto.setOrder(bean.getOrder());
MdoTableAsEnumDto alignment = (MdoTableAsEnumDto) mdoTableAsEnumsAssembler.marshal(bean.getAlignment());
dto.setAlignment(alignment);
MdoTableAsEnumDto part = (MdoTableAsEnumDto) mdoTableAsEnumsAssembler.marshal(bean.getPart());
dto.setPart(part);
MdoTableAsEnumDto size = (MdoTableAsEnumDto) mdoTableAsEnumsAssembler.marshal(bean.getSize());
dto.setSize(size);
RestaurantDto restaurant = (RestaurantDto) restaurantsAssembler.marshal(bean.getRestaurant());
dto.setRestaurant(restaurant);
dto.setLabels(super.getLabels(bean.getLabels()));
}
return dto;
}
@Override
public IMdoDaoBean unmarshal(IMdoDtoBean dtoBean, IMdoDaoBean... parents) {
if (dtoBean == null) {
return null;
}
PrintingInformation bean = new PrintingInformation();
PrintingInformationDto dto = (PrintingInformationDto) dtoBean;
bean.setId(dto.getId());
bean.setId(dto.getId());
bean.setOrder(dto.getOrder());
MdoTableAsEnum alignment = (MdoTableAsEnum) mdoTableAsEnumsAssembler.unmarshal(dto.getAlignment());
bean.setAlignment(alignment);
MdoTableAsEnum part = (MdoTableAsEnum) mdoTableAsEnumsAssembler.unmarshal(dto.getPart());
bean.setPart(part);
MdoTableAsEnum size = (MdoTableAsEnum) mdoTableAsEnumsAssembler.unmarshal(dto.getSize());
bean.setSize(size);
Restaurant restaurant = (Restaurant) restaurantsAssembler.unmarshal(dto.getRestaurant());
bean.setRestaurant(restaurant);
bean.setLabels(dto.getLabels());
return bean;
}
@Override
public ILogger getLogger() {
return logger;
}
@Override
public void setLogger(ILogger logger) {
this.logger = logger;
}
}