Class ValidadorComObjeto<C,D>

java.lang.Object
systextil.valid.ValidadorComObjeto<C,D>
Type Parameters:
C - o tipo da chave usada na busca
D - o tipo do objeto de dados retornado na busca
Direct Known Subclasses:
ValidadorComDescricao

public abstract class ValidadorComObjeto<C,D> extends Object
Validador que obtém um objeto de dados qualquer (D) a partir de uma chave qualquer (C).

Este objeto não memoriza as chaves usadas e os objetos obtidos. Isto seria interessante para ganhar desempenho. É interessante em algum momento implementar a memorização do último objeto usado ou mesmo um cache de todos os objetos.

Como este objeto não memoriza dados, é adequado para "singletons". Não é preciso criar várias instâncias iguais para usar em processos diferentes.

Author:
sergio
  • Constructor Details

    • ValidadorComObjeto

      protected ValidadorComObjeto(String notFoundTag)
      Inicializa um validador.
      Parameters:
      notFoundTag - a tag da mensagem de objeto não encontrado. Se ela tiver um parâmetro, será preenchido com a chave C que originou a mensagem.
  • Method Details

    • read

      protected abstract D read(AppConnection conn, C codigo) throws TagException
      Implementar este método para obter um objeto D a partir de uma chave C.
      Parameters:
      conn - a conexão ao banco de dados
      codigo - a chave usada na busca
      Returns:
      o objeto encontrado, ou null se não for encontrado
      Throws:
      TagException - se o objeto obtido violar alguma regra - não é necessário para o caso de simplesmente obter a descrição
    • validate

      public final D validate(AppConnection conn, C codigo) throws TagException
      Subclasses invocam este método para obter e validar o objeto procurado.
      Parameters:
      conn - a conexão ao banco de dados
      codigo - a chave usada na busca
      Returns:
      o objeto encontrado e validado; nunca é null
      Throws:
      TagException - construída a partir de notFoundTag, se o objeto não for encontrado, ou a mensagem de validação se não for válido
    • get

      protected D get(AppConnection conn, C codigo)
      Subclasses invocam este método para obter o objeto procurado.
      Parameters:
      conn - a conexão ao banco de dados
      codigo - a chave usada na busca
      Returns:
      o objeto encontrado, ou null se a chave for nula, ou se não for encontrado, ou se for inválido