Subversion Repositories Integrator Subversion

Rev

Rev 325 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.ec.core.generic.AbstractService;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.core.validador.Validador;
import br.com.ec.domain.dto.EstampaDTO;
import br.com.ec.domain.dto.TemaEstampaDTO;
import br.com.ec.domain.model.Estampa;
import br.com.ec.domain.service.EstampaService;
import br.com.ec.repository.EstampaRepository;

@Service
public class EstampaServiceImpl extends AbstractService<Estampa> implements EstampaService {
       
        private EstampaRepository estampaRepository;

        @Autowired
        public EstampaServiceImpl(Validador validador, EstampaRepository estampaRepository) {
                super(validador);
                this.estampaRepository = estampaRepository;
        }

        @Override
        protected GenericRepository<Estampa> getRepository() {
                return estampaRepository;
        }
       
        @Override
        public void cadastrar(Estampa estampa) {
                estampa.setCodigo(gerarCodigoEstampa(estampa));
                estampa.setAtivo(true);
                super.cadastrar(estampa);
        }
       
        private String gerarCodigoEstampa(Estampa estampa) {
                String proximoCodigo = estampaRepository.consultarUltimoCodigo(estampa.getTemaEstampa());
                if (VerificadorUtil.estaNuloOuVazio(proximoCodigo)) {
                        proximoCodigo = "001";
                } else {
                        Integer codigo = new Integer(proximoCodigo);
                        codigo++;
                        proximoCodigo = StringUtil.lpadTo(codigo.toString(), 3, '0');
                }
                return proximoCodigo;
        }

        @Override
        public List<EstampaDTO> consultarEstampas(TemaEstampaDTO tema) {
                return estampaRepository.consultarEstampas(tema);
        }
       
}