package com.algaworks.cursojavaee;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class FuncionariosBean implements Serializable {
private static final long serialVersionUID = 1L;
private static final String[] nomes = { "João", "Maria", "José", "Eduardo", "Sebastião", "Mariana", "Francisco",
"Manoel", "Fernanda", "Gabriela", "Mário", "Marcos" };
private static final String[] sobrenomes = { "Souza", "Silva", "Andrade", "Machado", "Júnior", "Albuquerque",
"Alencar", "Assis", "Batista", "Camargo", "Coelho", "Costa", "Dias", "Rosa", "Leal", "Lima", "Leite" };
private List<Funcionario> funcionarios;
public FuncionariosBean() throws ParseException {
funcionarios = new ArrayList<>();
for (int i = 0; i < 50; i++) {
adicionarFuncionario();
}
}
private void adicionarFuncionario() {
String nomeCompleto = getNomeAleatorio() + " " + getSobrenomeAleatorio() + " " + getSobrenomeAleatorio();
funcionarios.add(new Funcionario(getMatriculaAleatoria(), nomeCompleto, getDataAleatoria(),
getSalarioAleatorio()));
}
private BigDecimal getSalarioAleatorio() {
return new BigDecimal(1000 + (Math.random() * 29000));
}
private Long getMatriculaAleatoria() {
return (long) (Math.random() * 10000);
}
private Date getDataAleatoria() {
long dezAnosEmMillis = 24 * 60 * 60 * 1000;
long periodoSorteadoEmMillis = ((long) (Math.random() * 10 * 365)) * dezAnosEmMillis;
return new Date(System.currentTimeMillis() - periodoSorteadoEmMillis);
}
private String getSobrenomeAleatorio() {
int posicao = (int) Math.round(Math.random() * (sobrenomes.length - 1));
return sobrenomes[posicao];
}
private String getNomeAleatorio() {
int posicao = (int) Math.round(Math.random() * (nomes.length - 1));
return nomes[posicao];
}
public List<Funcionario> getFuncionarios() {
return funcionarios;
}
}