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.Restaurant; import fr.mch.mdo.restaurant.dao.beans.RestaurantValueAddedTax; import fr.mch.mdo.restaurant.dao.beans.ValueAddedTax; import fr.mch.mdo.restaurant.dto.beans.RestaurantValueAddedTaxDto; import fr.mch.mdo.restaurant.dto.beans.ValueAddedTaxDto; import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl; import fr.mch.mdo.utils.IManagerAssembler; public class DefaultRestaurantValueAddedTaxesAssembler extends AbstractAssembler implements IManagerAssembler, ILoggerBean { private ILogger logger; private IManagerAssembler vatsAssembler; private static class LazyHolder { private static IManagerAssembler instance = new DefaultRestaurantValueAddedTaxesAssembler(LoggerServiceImpl.getInstance().getLogger( DefaultRestaurantValueAddedTaxesAssembler.class.getName())); } private DefaultRestaurantValueAddedTaxesAssembler(ILogger logger) { this.setLogger(logger); this.vatsAssembler = DefaultValueAddedTaxesAssembler.getInstance(); } public static IManagerAssembler getInstance() { return LazyHolder.instance; } public DefaultRestaurantValueAddedTaxesAssembler() { } @Override public IMdoDtoBean marshal(IMdoDaoBean daoBean) { RestaurantValueAddedTaxDto dto = null; if (daoBean != null) { RestaurantValueAddedTax bean = (RestaurantValueAddedTax) daoBean; dto = new RestaurantValueAddedTaxDto(); dto.setId(bean.getId()); ValueAddedTaxDto vat = (ValueAddedTaxDto) vatsAssembler.marshal(bean.getVat()); dto.setVat(vat); } return dto; } @Override public IMdoDaoBean unmarshal(IMdoDtoBean dtoBean, IMdoDaoBean... parents) { if (dtoBean == null) { return null; } RestaurantValueAddedTax bean = new RestaurantValueAddedTax(); RestaurantValueAddedTaxDto dto = (RestaurantValueAddedTaxDto) dtoBean; bean.setId(dto.getId()); if (parents != null && parents.length == 1) { bean.setRestaurant((Restaurant) parents[0]); } bean.setVat((ValueAddedTax) vatsAssembler.unmarshal(dto.getVat())); return bean; } /** * @return the vatsAssembler */ public IManagerAssembler getVatsAssembler() { return vatsAssembler; } /** * @param vatsAssembler * the vatsAssembler to set */ public void setVatsAssembler(IManagerAssembler vatsAssembler) { this.vatsAssembler = vatsAssembler; } @Override public ILogger getLogger() { return logger; } @Override public void setLogger(ILogger logger) { this.logger = logger; } }