Class ValidationUtils

java.lang.Object
diegosneves.github.conectardoacoes.core.utils.ValidationUtils

public class ValidationUtils extends Object
A classe ValidationUtils é um utilitário que fornece métodos para validar dados de entrada. Contém todos os métodos estáticos e não pode ser instanciada.
Since:
1.0.0
Author:
diegoneves
  • Field Details

  • Constructor Details

    • ValidationUtils

      private ValidationUtils()
  • Method Details

    • validateNotNullOrEmpty

      public static <T> void validateNotNullOrEmpty(T input, Integer term, Class<? extends RuntimeException> customException)
    • validateNotNullOrEmpty

      public static <T> void validateNotNullOrEmpty(T input, String errorMessage, Class<? extends RuntimeException> customException)
      Valida a entrada com base nas condições para nulo e vazio (no caso de String). Lança uma exceção com a mensagem de erro fornecida, se uma destas condições for verdadeira. Este método pode ser utilizado para a validação de entradas onde dados são obrigatórios.
      Type Parameters:
      T - o tipo de objeto a ser verificado
      Parameters:
      input - o objeto a ser validado
      errorMessage - a mensagem de erro a ser anexada à exceção em caso de falhas na validação
      customException - a classe da exceção RuntimeException a ser lançada
      Throws:
      RuntimeException - se o objeto fornecido for nulo ou se fora uma instância de String e estiver vazia
    • validateNotNullOrEmpty

      public static <T> void validateNotNullOrEmpty(T input, Integer term, String errorMessage, Class<? extends RuntimeException> customException)
      Este método genérico garante que o objeto de entrada (um parâmetro genérico) não seja nulo ou vazio. Se o objeto for uma instância de String, ele verifica se a string, depois de ser aparada, ainda é vazia. Se o objeto for nulo ou uma instância de String que é vazia após o trim, ele lança uma exceção.
      Parameters:
      input - - O objeto genérico que será verificado quanto à nulidade ou vazio. Isso pode ser qualquer tipo de objeto.
      term - - É um termo numérico que será usado na função de manipulação de exceção. Sua aplicação específica será determinada pela função que vai lidar com a exceção.
      errorMessage - - Esta é uma mensagem de erro personalizada que será passada para a função de manipulação de exceção. Isso permite que os usuários determinem a mensagem específica que será exibida quando a exceção for acionada.
      customException - - A classe da exceção personalizada que será lançada se o objeto de entrada (input) for nulo ou se for uma instância da String que é vazia após ser cortada. Isso permite que o tipo exato de exceção que será lançada possa ser determinado em tempo de execução.
      Throws:
      RuntimeException - - Se o objeto 'input' verificado é nulo ou uma instância de uma String que é vazia quando cortada, este método irá lançar uma instância da subclasse de RuntimeException especificada pelo parâmetro 'customException'.
      NullPointerException - - Se o parâmetro 'customException' for nulo, a implementação desta função provavelmente lançará um NullPointerException.
    • ensureListIsNotNullOrEmpty

      public static <T> void ensureListIsNotNullOrEmpty(List<T> inputList, Integer term, Class<? extends RuntimeException> customException)
      Garante que a lista fornecida como parâmetro não seja nula nem vazia.

      Este método verifica se a lista inputList fornecida é nula ou vazia. Se a lista for nula ou vazia, ele lança uma exceção personalizada do tipo fornecido. Além disso, valida se a exceção personalizada fornecida é instanciável e lança uma IllegalArgumentException se não for.

      Parameters:
      inputList - A lista que deve ser verificada para nulidade e vazio.
      term - Um termo ou parâmetro arbitrário que será usado durante a criação e lançamento de exceções.
      customException - A classe da exceção personalizada a ser lançada se a lista estiver nula ou vazia.
      Throws:
      IllegalArgumentException - Se a classe customException não for uma RuntimeException instanciável.
    • ensureListIsNotNullOrEmpty

      public static <T> void ensureListIsNotNullOrEmpty(List<T> inputList, String errorMessage, Class<? extends RuntimeException> customException)
      Garante que a lista de entrada não é nula e não está vazia. Se a lista de entrada é nula ou vazia, uma exceção RuntimeException customizada é lançada com a mensagem de erro fornecida.

      Este método pode ser usado quando se deseja garantir que um objeto Lista seja não nulo e não vazio, evitando a detecção tardiamente de valores nulos ou listas vazias.

      Parameters:
      inputList - a Lista de objetos para verificar.
      errorMessage - a mensagem de erro para incluir na exceção se a lista de entrada for nula ou vazia.
      customException - a classe de exceção RuntimeException a ser lançada.
      Throws:
      RuntimeException - se a lista de entrada for nula ou vazia.
    • ensureListIsNotNullOrEmpty

      public static <T> void ensureListIsNotNullOrEmpty(List<T> inputList, Integer term, String errorMessage, Class<? extends RuntimeException> customException)
      Valida se a lista fornecida está vazia ou é null. Se a lista é nula ou vazia, lança uma exceção definida pelo usuário com uma mensagem de erro e termo especificado.
      Type Parameters:
      T - O tipo genérico da lista.
      Parameters:
      inputList - A lista a ser verificada. Pode ser de qualquer tipo <T>.
      term - Um número inteiro que pode ser usado para representar um termo de erro ou código de erro específico.
      errorMessage - A mensagem de erro que deve ser incluída na exceção lançada caso a lista seja nula ou vazia.
      customException - A classe de exceção definida pelo usuário a ser lançada caso a lista seja nula ou vazia. Deve estender RuntimeException.
      Throws:
      ValidationUtilsException - O método primeiro valida a instância customException para garantir que seja válida e instanciável. Em seguida, verifica se a inputList é nula ou vazia. Se for uma dessas, a exceção customException é lançada com o term e a errorMessage fornecidos
    • validateCustomException

      private static void validateCustomException(Class<? extends RuntimeException> customException)
      Valida se uma customException especificada não é nula.

      O método validateCustomException é um método estático e privado que recebe como parâmetro um objeto do tipo Class que é um subtipo de RuntimeException. O método então verifica se o parâmetro customException é nulo e, em caso afirmativo, lança uma ValidationUtilsException com uma mensagem de erro personalizada.

      Parameters:
      customException - objeto da subclasse de RuntimeException para ser validado
      Throws:
      ValidationUtilsException - se o customException for nulo
    • ensureListIsNotNull

      public static <T> List<T> ensureListIsNotNull(List<T> inputList)
      Método utilitário genérico para garantir que uma lista não seja nula. Esse método recebe uma lista e retorna uma lista vazia se a lista de entrada for nula. Se a lista de entrada não for nula, a lista de entrada será retornada sem modificação.
      Parameters:
      inputList - a lista de entrada para verificar se é nula
      Returns:
      a lista de entrada se não for nula, ou uma nova lista vazia se a lista de entrada for nula
    • throwException

      private static void throwException(Integer term, Class<? extends RuntimeException> runtimeExceptionClass)
    • throwException

      private static void throwException(String message, Class<? extends RuntimeException> runtimeExceptionClass)
      Lança uma exceção customizada com a mensagem de erro fornecida.
      Parameters:
      message - a mensagem de erro a ser anexada à exceção
      runtimeExceptionClass - a classe da exceção RuntimeException a ser lançada
      Throws:
      ValidationUtilsException - se houve um erro ao tentar lançar a exceção
    • throwException

      private static void throwException(Integer term, String message, Class<? extends RuntimeException> runtimeExceptionClass)
      Método que cria e lança exceções do tipo RuntimeException ou suas subclasses de acordo com os parâmetros fornecidos. Além disso, essa função gerencia a possibilidade de uma ReflectiveOperationException decorrente da tentativa de instanciar a exceção solicitada. Nesse caso, a função criará e lançará uma instância de ValidationUtilsException com a mensagem da ReflectiveOperationException original.
      Parameters:
      term - um Integer que é usado como parâmetro para a função de construtor da RuntimeException desejada.
      message - uma mensagem de String que é passada para a função de construtor da RuntimeException desejada e usada para geração de logs de erro.
      runtimeExceptionClass - a classe de exceção Class<? extends RuntimeException> que é desejada para ser lançada.

      Uso:

      throwException(100, "Valor inválido", IllegalArgumentException.class);
      Throws:
      ValidationUtilsException - é lançado quando ocorre um ReflectiveOperationException na tentativa de construir a exceção desejada. A ValidationUtilsException recebe o nome simples da classe de exceção desejada e a ReflectiveOperationException original.