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.Credit;
import fr.mch.mdo.restaurant.dao.beans.Restaurant;
import fr.mch.mdo.restaurant.dto.beans.CreditDto;
import fr.mch.mdo.restaurant.dto.beans.RestaurantDto;
import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl;
import fr.mch.mdo.utils.IManagerAssembler;
public class DefaultCreditsAssembler extends AbstractAssembler implements IManagerAssembler, ILoggerBean
{
private ILogger logger;
private IManagerAssembler restaurantsAssembler;
private static class LazyHolder {
private static IManagerAssembler instance = new DefaultCreditsAssembler(
LoggerServiceImpl.getInstance().getLogger(DefaultCreditsAssembler.class.getName()));
}
private DefaultCreditsAssembler(ILogger logger) {
this.setLogger(logger);
this.restaurantsAssembler = DefaultRestaurantsAssembler.getInstance();
}
public static IManagerAssembler getInstance() {
return LazyHolder.instance;
}
public DefaultCreditsAssembler() {
}
/**
* @return the restaurantsAssembler
*/
public IManagerAssembler getRestaurantsAssembler() {
return restaurantsAssembler;
}
/**
* @param restaurantsAssembler the restaurantsAssembler to set
*/
public void setRestaurantsAssembler(IManagerAssembler restaurantsAssembler) {
this.restaurantsAssembler = restaurantsAssembler;
}
@Override
public IMdoDtoBean marshal(IMdoDaoBean daoBean) {
CreditDto dto = null;
if (daoBean != null) {
Credit bean = (Credit) daoBean;
dto = new CreditDto();
dto.setId(bean.getId());
dto.setAmount(bean.getAmount());
dto.setClosingDate(bean.getClosingDate());
dto.setCreatedDate(bean.getCreatedDate());
dto.setPrinted(bean.getPrinted());
dto.setReference(bean.getReference());
RestaurantDto restaurant = (RestaurantDto) restaurantsAssembler.marshal(bean.getRestaurant());
dto.setRestaurant(restaurant);
}
return dto;
}
@Override
public IMdoDaoBean unmarshal(IMdoDtoBean dtoBean, IMdoDaoBean... parents) {
if (dtoBean == null) {
return null;
}
Credit bean = new Credit();
CreditDto dto = (CreditDto) dtoBean;
bean.setId(dto.getId());
bean.setAmount(dto.getAmount());
bean.setClosingDate(dto.getClosingDate());
bean.setCreatedDate(dto.getCreatedDate());
bean.setPrinted(dto.getPrinted());
bean.setReference(dto.getReference());
Restaurant restaurant = (Restaurant) restaurantsAssembler.unmarshal(dto.getRestaurant());
bean.setRestaurant(restaurant);
return bean;
}
@Override
public ILogger getLogger() {
return logger;
}
@Override
public void setLogger(ILogger logger) {
this.logger = logger;
}
}