Subversion Repositories Integrator Subversion

Rev

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

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

import java.util.ArrayList;
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.VerificadorUtil;
import br.com.ec.core.validador.Validador;
import br.com.sl.domain.model.Ativo;
import br.com.sl.domain.model.Candle;
import br.com.sl.domain.service.AtivoService;
import br.com.sl.repository.AtivoRepository;

@Service
public class AtivoServiceImpl extends AbstractService<Ativo> implements AtivoService {

        private AtivoRepository ativoRepository;

        @Autowired
        public AtivoServiceImpl(AtivoRepository ativoRepository, Validador validador) {
                super(validador);
                this.ativoRepository = ativoRepository;
        }

        @Override
        protected GenericRepository<Ativo> getRepository() {
                return this.ativoRepository;
        }
       
        @Override
        public Ativo consultarPorDescricao(String descricaoAtivo) {
                return ativoRepository.consultarPorNome(descricaoAtivo);
        }
       
        @Override
        public List<Ativo> preencherCandlesComAtivosRetornandoAtivosUtilizados(List<Candle> candles) {
                List<Ativo> ativosEmAnalise = new ArrayList<Ativo>();
                List<Ativo> ativosCadastrados = this.consultarTodos(new Ativo());
                for (Candle candle : candles) {
                        Ativo ativoEmAnalise = retornarAtivoConstaNaLista(ativosCadastrados, candle.getNomeAtivo());
                        if (VerificadorUtil.naoEstaNulo(ativoEmAnalise)) {
                                if (!ativosEmAnalise.contains(ativoEmAnalise)) {
                                        ativosEmAnalise.add(ativoEmAnalise);
                                }
                                candle.setAtivo(ativoEmAnalise);
                        }
            }
                return ativosEmAnalise;
        }
       
        private Ativo retornarAtivoConstaNaLista(List<Ativo> ativos, String nomeAtivo) {
                for (Ativo ativo : ativos) {
                        if (ativo.getNome().equals(nomeAtivo)) {
                                return ativo;
                        }
                }
                return null;
        }
       
}