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.ValueAddedTax; import fr.mch.mdo.restaurant.dto.beans.MdoTableAsEnumDto; import fr.mch.mdo.restaurant.dto.beans.ValueAddedTaxDto; import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl; import fr.mch.mdo.utils.IManagerAssembler; public class DefaultValueAddedTaxesAssembler extends AbstractAssembler implements IManagerAssembler, ILoggerBean { private ILogger logger; private IManagerAssembler mdoTableAsEnumsAssembler; private static class LazyHolder { private static IManagerAssembler instance = new DefaultValueAddedTaxesAssembler(LoggerServiceImpl.getInstance().getLogger(DefaultValueAddedTaxesAssembler.class.getName())); } private DefaultValueAddedTaxesAssembler(ILogger logger) { this.setLogger(logger); this.mdoTableAsEnumsAssembler = DefaultMdoTableAsEnumsAssembler.getInstance(); } public static IManagerAssembler getInstance() { return LazyHolder.instance; } public DefaultValueAddedTaxesAssembler() { } @Override public IMdoDtoBean marshal(IMdoDaoBean daoBean) { ValueAddedTaxDto dto = null; if (daoBean != null) { ValueAddedTax bean = (ValueAddedTax) daoBean; dto = new ValueAddedTaxDto(); dto.setId(bean.getId()); MdoTableAsEnum code = bean.getCode(); MdoTableAsEnumDto codeDto = (MdoTableAsEnumDto) mdoTableAsEnumsAssembler.marshal(code); dto.setCode(codeDto); dto.setRate(bean.getRate()); } return dto; } @Override public IMdoDaoBean unmarshal(IMdoDtoBean dtoBean, IMdoDaoBean... parents) { if (dtoBean == null) { return null; } ValueAddedTax bean = new ValueAddedTax(); ValueAddedTaxDto dto = (ValueAddedTaxDto) dtoBean; bean.setId(dto.getId()); bean.setCode((MdoTableAsEnum) mdoTableAsEnumsAssembler.unmarshal(dto.getCode())); bean.setRate(dto.getRate()); return bean; } @Override public ILogger getLogger() { return logger; } @Override public void setLogger(ILogger logger) { this.logger = logger; } /** * @return the mdoTableAsEnumsAssembler */ public IManagerAssembler getMdoTableAsEnumsAssembler() { return mdoTableAsEnumsAssembler; } /** * @param mdoTableAsEnumsAssembler * the mdoTableAsEnumsAssembler to set */ public void setMdoTableAsEnumsAssembler(IManagerAssembler mdoTableAsEnumsAssembler) { this.mdoTableAsEnumsAssembler = mdoTableAsEnumsAssembler; } }