Mais conteúdo relacionado Semelhante a Reflexão e Anotações no mundo Java (10) Reflexão e Anotações no mundo Java4. public class Funcionario {
private String nome;
private String endereco;
private Integer idade;
private BigDecimal salario;
...
}
9. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
if(funcionario.getNome() == null)
invalidos.add("nome");
if(funcionario.getEndereco() == null)
invalidos.add("endereco");
return invalidos;
}
}
15. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
if(funcionario.getNome() == null)
invalidos.add("nome");
if(funcionario.getEndereco() == null)
invalidos.add("endereco");
if(funcionario.getTelefone() == null)
invalidos.add("telefone");
if(funcionario.getDataDeNascimento() == null)
invalidos.add("dataDeNascimento");
if(funcionario.getIdade() == null)
invalidos.add("idade");
return invalidos;
}
}
18. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
Atributo[] atributos = funcionario.getAtributos();
for(Atributo atributo : atributos){
if(atributo.getValue() == null)
invalidos.add(atributo.getNome());
}
return invalidos;
}
}
20. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
Classe classeDoFuncionario = funcionario.getClasse();
Atributo[] atributos = classeDoFuncionario.getAtributos();
for(Atributo atributo : atributos){
if(atributo.getValue() == null)
invalidos.add(atributo.getNome());
}
return invalidos;
}
}
22. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
Classe classeDoFuncionario = funcionario.getClasse();
Atributo[] atributos = classeDoFuncionario.getAtributos();
for(Atributo atributo : atributos){
Object valor = atributo.buscar(funcionario);
if(valor == null)
invalidos.add(atributo.getNome());
}
return invalidos;
}
}
29. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
Class<?> classeDoFuncionario = funcionario.getClass();
Field[] atributos = classeDoFuncionario.getFields();
for(Field atributo : atributos){
Object valor = atributo.get(funcionario);
if(valor == null)
invalidos.add(atributo.getName());
}
return invalidos;
}
}
33. public class Validador {
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
Class<?> classeDoFuncionario = funcionario.getClass();
Field[] atributos = classeDoFuncionario.getDeclaredFields();
for(Field atributo : atributos){
Object valor = atributo.get(funcionario);
if(valor == null)
invalidos.add(atributo.getName());
}
return invalidos;
}
}
35. …
public List<String> validar(Funcionario funcionario){
List<String> invalidos = new ArrayList<>();
Class<?> classeDoFuncionario = funcionario.getClass();
Field[] atributos = classeDoFuncionario.getDeclaredFields();
for(Field atributo : atributos){
atributo.setAccessible(true);
Object valor = atributo.get(funcionario);
if(valor == null)
invalidos.add(atributo.getName());
}
return invalidos;
}
36. public class Funcionario {
private String nome;
private String endereco;
private Integer idade;
private BigDecimal salario;
...
}
37. public void test(){
Funcionario funcionario = new Funcionario();
funcionario.setNome(“Mateus”);
funcionario.setEndereco(“Lagoa Redonda”);
Validador validador = new Validador();
List<String> erros = validador.valida(funcionario);
assertTrue(erros.contains(“idade”));
assertTrue(erros.contains(“salario”));
assertFalse(erros.contains(“nome”));
assertFalse(erros.contains(“endereco”));
}
@Test
40. …
public List<String> validar(Object entidade){
List<String> invalidos = new ArrayList<>();
Class<?> clazz = entidade.getClass();
Field[] atributos = clazz.getDeclaredFields();
for(Field atributo : atributos){
atributo.setAccessible(true);
Object valor = atributo.get(entidade);
if(valor == null)
invalidos.add(atributo.getName());
}
return invalidos;
}
43. public class Funcionario {
private String Nome;
private String Endereço;
private Integer Idade;
private BigDecimal Salário;
...
}
46. public class Funcionario {
@Validacao(descricao = ‘Nome completo’)
private String nome;
@Validacao(descricao = ‘Endereço’)
private String endereco;
…
}
47. …
Class<?> clazz = entidade.getClass();
Field[] atributos = clazz.getDeclaredFields();
for(Field atributo : atributos){
atributo.setAccessible(true);
Object valor = atributo.get(entidade);
if(valor == null) {
if(atributo.isAnnotationPresent(Validacao.class)){
Validacao validacao =
atributo.getAnnotation(Validacao.class);
invalidos.add(validacao.descricao());
}
}
}