package br.com.caelum.stella.feriado; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import br.com.caelum.stella.feriado.entity.Feriado; import br.com.caelum.stella.feriado.entity.FeriadosEstaduais; import br.com.caelum.stella.feriado.entity.FeriadosMoveis; import br.com.caelum.stella.feriado.entity.FeriadosNacionais; import br.com.caelum.stella.feriado.enums.Lugares; import br.com.caelum.stella.feriado.util.Ordernador; public class FeriadoControle { private List<Feriado> feriados = new ArrayList<Feriado>(); public List<Feriado> listarFeriadosPorData(){ Collections.sort(feriados, Ordernador.DATA_CRESCENTE); return feriados; } public List<Feriado> listarFeriados(){ return feriados; } public FeriadoControle feriadosMoveis(){ feriados.addAll(FeriadosMoveis.doAno()); return this; } public FeriadoControle feriadosMoveis(int ano){ feriados.addAll(FeriadosMoveis.doAno(ano)); return this; } public FeriadoControle feriadosNacionais(){ feriados.addAll(FeriadosNacionais.doAno()); return this; } public FeriadoControle feriadosNacionais(int ano){ feriados.addAll(FeriadosNacionais.doAno(ano)); return this; } public FeriadoControle feriadosEstaduais(Lugares...lugar){ feriados.addAll(FeriadosEstaduais.de(lugar)); return this; } public FeriadoControle ordenadoPor(Comparator<Feriado> lugar){ Collections.sort(feriados, Ordernador.LUGAR); return this; } }