package br.com.caelum.stella.feriado.entity;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import br.com.caelum.stella.feriado.enums.Lugares;
import br.com.caelum.stella.feriado.util.DateUtil;
import br.com.caelum.stella.feriado.util.Ordernador;
import br.com.caelum.stella.feriado.util.XMLUtil;
@XmlRootElement(name="Feriados")
public class FeriadosEstaduais {
private List<Feriado> feriados = new ArrayList<Feriado>();
@XmlElement(name = "Feriado", type = Feriado.class)
public List<Feriado> getFeriados() {
return feriados;
}
@SuppressWarnings("unused")
private void setFeriados(List<Feriado> feriados) {
this.feriados = feriados;
}
public static Collection<Feriado> de(int ano,Lugares...lugares){
List<Feriado> feriados = new ArrayList<Feriado>();
for(Lugares l : lugares){
feriados.addAll(XMLUtil.xmlToObject(FeriadosEstaduais.class,ano, l).getFeriados());
}
Collections.sort(feriados, Ordernador.DATA_CRESCENTE);
return feriados;
}
public static Collection<Feriado> de(Lugares...lugares){
return de(DateUtil.getAno(),lugares);
}
public static boolean ehFeriado(Date data,Lugares...lugares){
for(Feriado f : de(DateUtil.getAno(data), lugares)){
if(DateUtil.mesmoDia(data, f.getData())){
return true;
}
}
return false;
}
}