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.converterStringParaBoolean;
import static br.gov.al.saude.test.util.ConversorDeTipo.converterStringParaInteger;
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.scg.model.view.MunicipioView;
import br.gov.al.saude.scg.model.view.PessoaFisicaView;
import br.gov.al.saude.scg.model.view.UfView;
import br.gov.al.saude.scs.model.Capacitacao;
import br.gov.al.saude.scs.model.Turma;
import br.gov.al.saude.scs.model.TurmaParticipante;
import br.gov.al.saude.scs.model.TurmaPeriodo;
import br.gov.al.saude.scs.model.TurmaProcesso;
import br.gov.al.saude.scs.model.view.UnidadeView;
import br.gov.al.saude.test.unidade.generic.builder.AbstractEntidadeBuilder;

public class TurmaBuilder extends AbstractEntidadeBuilder<Turma> {

        public TurmaBuilder comSequencial(String sequencial) {
                entidade.setSequencial(parseLong(sequencial));
                return this;
        }
       
        public TurmaBuilder comCapacitacao(String sequencialCapacitacao) {
                if (VerificadorUtil.naoEstaNuloOuVazio(sequencialCapacitacao)) {
                        Capacitacao capacitacao = new CapacitacaoBuilder().comSequencial(sequencialCapacitacao).build();
                        entidade.setCapacitacao(capacitacao);
                }
                return this;
        }
       
        public TurmaBuilder comAnoExercicio(String ano) {
                entidade.setAnoExercicio(converterStringParaInteger(ano));
                return this;
        }
       
        public TurmaBuilder comCargaHoraria(String cargaHoraria) {
                entidade.setCargaHoraria(converterStringParaInteger(cargaHoraria));
                return this;
        }
       
        public TurmaBuilder comUf(String codigoUf) {
                if (VerificadorUtil.naoEstaNuloOuVazio(codigoUf)) {
                        UfView uf = new UfView();
                        uf.setCodigo(codigoUf);
                        entidade.setUf(uf);
                }
                return this;
        }
       
        public TurmaBuilder comMunicipio(String sequencialMunicipio) {
                if (VerificadorUtil.naoEstaNuloOuVazio(sequencialMunicipio)) {
                        MunicipioView municipio = new MunicipioView();
                        municipio.setSequencial(converterStringParaLong(sequencialMunicipio));
                        entidade.setMunicipio(municipio);
                }
                return this;
        }

        public TurmaBuilder comObservacao(String observacao) {
                entidade.setObservacao(observacao);
                return this;
        }
       
        public TurmaBuilder comEmenta(String ementa) {
                entidade.setEmenta(ementa);
                return this;
        }
       
        public TurmaBuilder comUnidadeSolicitante(String sequencialUnidade) {
                if (VerificadorUtil.naoEstaNuloOuVazio(sequencialUnidade)) {
                        UnidadeView unidade = new UnidadeView();
                        unidade.setSequencial(converterStringParaLong(sequencialUnidade));
                        entidade.setUnidadeSolicitante(unidade);
                }
                return this;
        }
       
        public TurmaBuilder comRepresentantes(String representantesString) {
                if (VerificadorUtil.naoEstaNuloOuVazio(representantesString)) {
                        entidade.setRepresentantes(gerarTurmaRepresentantes(representantesString));
                }
                return this;
        }
       
        private Set<PessoaFisicaView> gerarTurmaRepresentantes(String representantesString) {
                Set<PessoaFisicaView> representantes = new HashSet<PessoaFisicaView>();
                String[] arrayRepresentantes = representantesString.split(";");
                for (String sequenciaPessoa : arrayRepresentantes) {
                        PessoaFisicaView representante = new PessoaFisicaView();
                        representante.setSequencialPessoa(parseLong(sequenciaPessoa));
                        representantes.add(representante);
                }
                return representantes;
        }
       
        public TurmaBuilder comProcessos(String processosTurmaString) {
                if (VerificadorUtil.naoEstaNuloOuVazio(processosTurmaString)) {
                        entidade.setProcessos(gerarTurmaProcessos(processosTurmaString));
                }
                return this;
        }
       
        private Set<TurmaProcesso> gerarTurmaProcessos(String processosTurmaString) {
                Set<TurmaProcesso> turmaProcessos = new HashSet<TurmaProcesso>();
                String[] arrayTurmaProcesso = processosTurmaString.split(";");
                for (String turmaProcessoString : arrayTurmaProcesso) {
                        String[] propriedades = turmaProcessoString.split(",");
                        TurmaProcesso turmaProcesso = new TurmaProcessoBuilder()
                                                                                        .comTurma(entidade)
                                                                                        .comOrgao(propriedades[0])
                                                                                        .comNumeroProcesso(propriedades[1])
                                                                                        .comAno(propriedades[2])
                                                                                        .build();
                        turmaProcessos.add(turmaProcesso);
                }
                return turmaProcessos;
        }
       
        public TurmaBuilder comParticipantes(String participantesTurmaString) {
                if (VerificadorUtil.naoEstaNuloOuVazio(participantesTurmaString)) {
                        entidade.setParticipantes(gerarTurmaParticipante(participantesTurmaString));
                }
                return this;
        }
       
        private Set<TurmaParticipante> gerarTurmaParticipante(String participantesTurmaString) {
                Set<TurmaParticipante> turmaParticipantes = new HashSet<TurmaParticipante>();
                String[] arrayTurmaParticipante = participantesTurmaString.split(";");
                for (String turmaParticipanteString : arrayTurmaParticipante) {
                        String[] propriedades = turmaParticipanteString.split(",");
                        TurmaParticipante turmaParticipante = new TurmaParticipanteBuilder()
                                                                                                        .comTurma(entidade)
                                                                                                        .comPessoa(propriedades[0])
                                                                                                        .comPerfil(propriedades[1])
                                                                                                        .comIndicadorRemunerado(propriedades[2])
                                                                                                        .comCargaHorariaEspecifica("null".equals(propriedades[3])?null:propriedades[3])
                                                                                                        .build();
                        turmaParticipantes.add(turmaParticipante);
                }
                return turmaParticipantes;
        }
       
        public TurmaBuilder comPeriodos(String periodosTurmaString) {
                if (VerificadorUtil.naoEstaNuloOuVazio(periodosTurmaString)) {
                        entidade.setPeriodos(gerarTurmaPeriodo(periodosTurmaString));
                }
                return this;
        }
       
        private Set<TurmaPeriodo> gerarTurmaPeriodo(String periodosTurmaString) {
                Set<TurmaPeriodo> turmaPeriodos = new HashSet<TurmaPeriodo>();
                String[] arrayTurmaPeriodo = periodosTurmaString.split(";");
                for (String turmaPeriodoString : arrayTurmaPeriodo) {
                        String[] propriedades = turmaPeriodoString.split(",");
                        TurmaPeriodo turmaPeriodo = new TurmaPeriodoBuilder()
                                                                                                        .comTurma(entidade)
                                                                                                        .comDataInicial(propriedades[0])
                                                                                                        .comDataFinal(propriedades[1])
                                                                                                        .build();
                        turmaPeriodos.add(turmaPeriodo);
                }
                return turmaPeriodos;
        }
       
        public TurmaBuilder comIndicadorAtivo(String indicadorAtivo) {
                entidade.setIndicadorAtivo(converterStringParaBoolean(indicadorAtivo));
                return this;
        }
       
        @Override
        protected void inicializarDadosDefault() {
                entidade = new Turma();
        }
       
}