package br.com.doctors.converters.agendamento; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.joda.time.LocalDate; import org.joda.time.LocalTime; import br.com.doctors.modelo.agendamento.Agendamento; import br.com.doctors.modelo.util.ParametrosAgendamento; public class AgendaJsonImpl implements AgendaJson{ private Map<LocalTime,HorarioJsonImpl> mapaConvertidos; private ParametrosAgendamento parametros; private LocalDate data; public AgendaJsonImpl(ParametrosAgendamento parametros, LocalDate data) { this.parametros = parametros; this.data = data; mapaConvertidos = new TreeMap<LocalTime,HorarioJsonImpl>(); } public List<? extends HorarioJson> getHorariosJSON(){ return new ArrayList<HorarioJsonImpl>(mapaConvertidos.values()); } @Override public void addHorario(AgendaDoDia agenda, LocalTime horario) { if (agenda.temAgendamentoEm(horario)){ Agendamento agendamento = agenda.getAgendamento(horario); adicionaHorarioAgendado(agendamento); } else { adicionaHorarioLivre(horario); } } private void adicionaHorarioAgendado(Agendamento agendamento){ HorarioJsonImpl horarioJson = new HorarioJsonImpl(agendamento, parametros); mapaConvertidos.put(agendamento.getHoraAgendamento(), horarioJson ); } private void adicionaHorarioLivre(LocalTime horaConsulta){ HorarioJsonImpl horarioJson = HorarioJsonImpl.criaHorarioLivre(data,horaConsulta, parametros); mapaConvertidos.put(horaConsulta, horarioJson ); } }