Bom vou tentar explicar o q quero...
Pra toda entidade que eu fizer / implementar eu sou obrigado a criar 1 outra classe... Validador desta interface....
queria amarrar isso, para não ter falhas, obrigado quem implemetasse a Interface Entidade a ter o validador...
Mas o fato é que para fazer isso, tenho q criar um método não estatico o que não é bom, pois não é preciso instanciar a entidade para acessar seu validor...
Para exemplificar melhor...
public class Pessoa implements IEntidade {
private static Validador<Pessoa> validador;
public static Validador<Pessoa> getValidador() {
if (validador== null) validador = new ValidadorPessoa();
return validador;
}
private Integer id;
private String nome;
private String cpf;
//...
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
//... restante dos métodos getters e setters
}
Onde a classe ValidadorPessoa [color=violet]implements [/color]Validador<Pessoa>
public interface Validador<T extends IEntidade> {
//Métodos que testam sem retornar exceções.
public boolean isValidoAdd(T entidade);
public boolean isValidoRemove(T entidade);
public boolean isValidoReplace(T entidade);
public boolean isValidoRetrive(T entidade);
//Métodos que testam e retorna a exceção referente ao problema.
public void validarAdd(T entidade) throws EntidadeException;
public void validarRemove(T entidade) throws EntidadeException;
public void validarReplace(T entidade) throws EntidadeException;
public void validarRetrive(T entidade) throws EntidadeException;
public Class<T> getEntidadeClasse();
}
............................
O que eu keria era garantir que quem fizesse uma IEntidade fizesse também um método static do tipo
public static Validador<T extends IEntidade> getValidador();
sedo assim eu teria certeza que, se Cidade implementa IEntidade, então eu posso fazer
de forma estatica, quero amarrar, pra forçar alguem que crie uma IEntidade que faça também o seu validador.
tem como fazer isso ??