Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.gov.al.saude.test.builder;

import static br.gov.al.saude.test.util.ConversorDeTipo.FORMAT_DATE_DD_MM_YYYY_HH_MM_SS;
import static br.gov.al.saude.test.util.ConversorDeTipo.converterStringParaDate;
import static br.gov.al.saude.test.util.ConversorDeTipo.converterStringParaLong;

import java.util.HashSet;
import java.util.Set;

import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.scs.model.Frequencia;
import br.gov.al.saude.scs.model.Presenca;
import br.gov.al.saude.scs.model.Turma;
import br.gov.al.saude.test.unidade.generic.builder.AbstractEntidadeBuilder;

public class FrequenciaBuilder extends AbstractEntidadeBuilder<Frequencia> {

        @Override
        protected void inicializarDadosDefault() {
                entidade = new Frequencia();
                entidade.setPresencas(new HashSet<Presenca>());
               
        }

        public FrequenciaBuilder comSequencial(String sequencialFrequencia) {
                entidade.setSequencial(converterStringParaLong(sequencialFrequencia));
                return this;
        }

        public FrequenciaBuilder comTurma(Turma turma) {
                entidade.setTurma(turma);
                return this;
        }
       
        public FrequenciaBuilder comTurma(String sequencialTurma) {
                Turma turma = null;
                if(VerificadorUtil.naoEstaNuloOuVazio(sequencialTurma)){
                        turma = new TurmaBuilder().comSequencial(sequencialTurma).build();
                }
                entidade.setTurma(turma);
                return this;
        }

        public FrequenciaBuilder comData(String data) {
                entidade.setData(converterStringParaDate(data, FORMAT_DATE_DD_MM_YYYY_HH_MM_SS));
                return this;
        }

        public FrequenciaBuilder comPresencas(String listaPresencas) {
                Set<Presenca> setPresencas = new HashSet<Presenca>();
                if(VerificadorUtil.naoEstaNuloOuVazio(listaPresencas)){
                        String[] arrayPresenca = listaPresencas.split(";");
                        for (String stringPresenca : arrayPresenca) {
                                String[]  presencaSplit = stringPresenca.split(",");
                                Presenca presenca = new PresencaBuilder()
                                                                                .comFrequencia(entidade)
                                                                                .comSequencialTurmaParticipante(getValor(presencaSplit, 1))
                                                                                .comIndicadorPresenca(getValor(presencaSplit, 2))
                                                                                .comJustificativa(getValor(presencaSplit, 3))
                                                                                .build();
                                setPresencas.add(presenca);
                        }
                }
                entidade.setPresencas(setPresencas);
                return this;
        }

        private String getValor(String[] presencaSplit, int posicao) {
                try {
                        return presencaSplit[posicao];
                } catch (IndexOutOfBoundsException e) {
                        return null;
                }
        }
       
}