Class TempFilter<F,R extends Serializable>

java.lang.Object
systextil.temp.TempFilter<F,R>
Type Parameters:
F - o tipo de objeto de negócio ao qual este filtro se refere
R - o tipo de dado "cru" obtido do campo binário

public class TempFilter<F,R extends Serializable> extends Object
Em um processo agendado, controla os filtros referentes a um campo, na execução de relatórios.
Author:
sergio
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final TempFilter
    Filtro que não tem registros para filtrar.
    final boolean
    Indica se o filtro é de inclusão ou exceção.
    final String
    Disponibiliza a tag correspondente a incExc para traduzir e usar.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Configura um objeto para filtragem usando os registros temporários fornecidos.
  • Method Summary

    Modifier and Type
    Method
    Description
    Utilidade para concatenar os registros deste filtro em um único comando, de forma simples.
    concatenate(String delimiter, String format)
    Utilidade para concatenar os registros deste filtro em um único comando, sem precisar de conversão.
    concatenate(String delimiter, String format, TempConverter<F,R> converter)
    Utilidade para concatenar os registros deste filtro em um único comando.
    static byte[]
    getBytes(Connection conn, int nr_solicitacao, String codigo_relatorio, String solicitante, int codigo_empresa, int sequencia)
    Retorna um conjunto de bytes genérico associado a um processo na tabela oper_003.
    Retorna uma lista de números inteiros correspondentes aos registros gravados.
    Retorna uma lista de números inteiros correspondentes aos registros gravados, modificada para que retorne zero quando for pedido um elemento inexistente.
    getIntegerListNotNull(int defaultValue)
    Retorna uma lista de números inteiros correspondentes aos registros gravados, modificada para que retorne um valor default quando for pedido um elemento inexistente.
    getList(TempConverter<F,R> converter)
    Retorna uma lista de objetos de negócio correspondentes aos registros a filtrar, usando o conversor fornecido.
    Retorna uma lista de Strings correspondentes aos registros gravados.
    Retorna uma lista de Strings correspondentes aos registros gravados, modificada para que retorne um texto vazio quando for pedido um elemento inexistente.
    Retorna uma lista de Strings correspondentes aos registros gravados, modificada para que retorne um valor default quando for pedido um elemento inexistente.
    void
    Insere os objetos deste filtro na tabela GLOBAL TEMPORARY para filtragem.
    boolean
    isIntegerValid(int value)
    Informa se o valor é válido conforme os dados deste filtro, considerando inclusão ou exceção.
    boolean
    Informa se o valor é válido conforme os dados deste filtro, considerando inclusão ou exceção.
    int
    Informa quantos registros existem neste filtro.
    É usado pelo controle de processos agendados para obter um mapa de registros temporários pelo nome do campo, a partir do objeto binário lido do banco de dados, e gravá-los na nova tabela de registros temporários.
    toSQL(String leftTableName, String... columnNames)
    Retorna a cláusula SQL correspondente à condição fornecida, a qual sempre inicia com " AND ", por conveniência.
    toWhereSQL(String leftTableName, String... columnNames)
    Retorna a cláusula SQL correspondente à condição fornecida, iniciando com "WHERE" entre espaços.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • EMPTY

      public static final TempFilter EMPTY
      Filtro que não tem registros para filtrar.
    • incExc

      public final boolean incExc
      Indica se o filtro é de inclusão ou exceção. Exceção é true.
    • incExcTag

      public final String incExcTag
      Disponibiliza a tag correspondente a incExc para traduzir e usar.
  • Constructor Details

    • TempFilter

      public TempFilter(TempRecords temps)
      Configura um objeto para filtragem usando os registros temporários fornecidos.
      Parameters:
      temps - os registros temporários configurados para a filtragem
  • Method Details

    • toSQL

      public String toSQL(String leftTableName, String... columnNames)
      Retorna a cláusula SQL correspondente à condição fornecida, a qual sempre inicia com " AND ", por conveniência. Se essa palavra não for usada, basta removê-la usando .substring(5), que é um método de String, desde que o retorno não tenha vindo vazio.

      Se o filtro for de inclusão, a cláusula inicia com " AND EXISTS "; caso contrário, com " AND NOT EXISTS ".

      O filtro é montado automaticamente verificando se há registro correspondente na tabela global temporária TEMP_001 fazendo "join" com colunas de outra tabela da consulta principal.

      Parameters:
      leftTableName - o nome da tabela da consulta principal que contém as colunas a verificar.
      columnNames - uma ou mais colunas dessa tabela que são usadas no filtro.
      Returns:
      a cláusula SQL montada para o filtro, ou vazio se não houver nada para filtrar.
    • toWhereSQL

      public String toWhereSQL(String leftTableName, String... columnNames)
      Retorna a cláusula SQL correspondente à condição fornecida, iniciando com "WHERE" entre espaços.

      As demais observações do método toSQL(String, String...) se aplicam.

      Parameters:
      leftTableName - o nome da tabela da consulta principal que contém as colunas a verificar.
      columnNames - uma ou mais colunas dessa tabela que são usadas no filtro.
      Returns:
      a cláusula SQL montada para o filtro, ou vazio se não houver nada para filtrar.
      See Also:
    • insertRecords

      public void insertRecords(AppConnection conn)
      Insere os objetos deste filtro na tabela GLOBAL TEMPORARY para filtragem.

      Isto já é feito automaticamente nas classes batch. Mas este método pode ser usado para fazer filtragens em outros processos que usem classes Java.

    • getBytes

      public static byte[] getBytes(Connection conn, int nr_solicitacao, String codigo_relatorio, String solicitante, int codigo_empresa, int sequencia)
      Retorna um conjunto de bytes genérico associado a um processo na tabela oper_003.
      Parameters:
      conn - a conexão ao banco de dados
      nr_solicitacao - o número da solicitação
      codigo_relatorio - o código (nome) do relatório
      solicitante - a identificação do solicitante
      codigo_empresa - o código da empresa
      sequencia - a sequência que identifica este registro
      Returns:
      os bytes lidos
    • toMap

      public static Map<String,TempFilter> toMap(AppConnection conn, Object obj)
      É usado pelo controle de processos agendados para obter um mapa de registros temporários pelo nome do campo, a partir do objeto binário lido do banco de dados, e gravá-los na nova tabela de registros temporários. Esse mapa retorna o TempFilter encontrado pelo nome do campo, ou, se não encontrar algum, retorna EMPTY.

      Sempre retorna um mapa, mesmo que vazio, para que esteja presente nos processos mesmo quando não foram informados registros temporários.

      Parameters:
      conn - a conexão ao banco de dados
      obj - o objeto binário lido
      Returns:
      o mapa de registros temporários pelo nome do campo
    • getList

      public List<F> getList(TempConverter<F,R> converter)
      Retorna uma lista de objetos de negócio correspondentes aos registros a filtrar, usando o conversor fornecido. Se os objetos de negócio forem simples códigos Integer ou String, prefira usar getIntegerList(), getIntegerListNotNull() ou getStringList().

      Essa lista pode ser usada para obter os registros gravados, ou para verificar se eles contêm algum valor; enfim, qualquer operação possível com Lists.

      Por comodidade, essa lista foi modificada para que seu método get(int) nunca lance IndexOutOfBoundsException, e em vez disso retorne nulo, ou um valor padrão se estiver configurada para isso.

      Parameters:
      converter - o conversor de dados "crus" (geralmente arrays) para objetos de negócio
      Returns:
      a lista com os objetos gravados
    • getIntegerList

      public List<Integer> getIntegerList()
      Retorna uma lista de números inteiros correspondentes aos registros gravados.
      Returns:
      a lista com os objetos gravados
      See Also:
    • isIntegerValid

      public boolean isIntegerValid(int value)
      Informa se o valor é válido conforme os dados deste filtro, considerando inclusão ou exceção.
      Parameters:
      value - o valor a verificar
      Returns:
      se o valor é válido. Exatamente size() == 0 || incExc ^ getIntegerList().contains(value)
    • getIntegerListNotNull

      public List<Integer> getIntegerListNotNull()
      Retorna uma lista de números inteiros correspondentes aos registros gravados, modificada para que retorne zero quando for pedido um elemento inexistente.
      Returns:
      a lista com os objetos gravados
      See Also:
    • getIntegerListNotNull

      public List<Integer> getIntegerListNotNull(int defaultValue)
      Retorna uma lista de números inteiros correspondentes aos registros gravados, modificada para que retorne um valor default quando for pedido um elemento inexistente.
      Parameters:
      defaultValue - valor a retornar se for pedido um elemento inexistente
      Returns:
      a lista com os objetos gravados
      See Also:
    • getStringList

      public List<String> getStringList()
      Retorna uma lista de Strings correspondentes aos registros gravados.
      Returns:
      a lista com os objetos gravados
      See Also:
    • getStringListNotNull

      public List<String> getStringListNotNull()
      Retorna uma lista de Strings correspondentes aos registros gravados, modificada para que retorne um texto vazio quando for pedido um elemento inexistente.
      Returns:
      a lista com os objetos gravados
      See Also:
    • getStringListNotNull

      public List<String> getStringListNotNull(String defaultValue)
      Retorna uma lista de Strings correspondentes aos registros gravados, modificada para que retorne um valor default quando for pedido um elemento inexistente.
      Parameters:
      defaultValue - valor a retornar se for pedido um elemento inexistente
      Returns:
      a lista com os objetos gravados
      See Also:
    • isStringValid

      public boolean isStringValid(String value)
      Informa se o valor é válido conforme os dados deste filtro, considerando inclusão ou exceção.
      Parameters:
      value - o valor a verificar
      Returns:
      se o valor é válido. Exatamente size() == 0 || incExc ^ getStringList().contains(value)
    • size

      public int size()
      Informa quantos registros existem neste filtro.
      Returns:
      quantos registros existem neste filtro
    • concatenate

      public String concatenate(String delimiter, String format, TempConverter<F,R> converter)
      Utilidade para concatenar os registros deste filtro em um único comando.
      Parameters:
      delimiter - o delimitador usado para unir os registros; geralmente vírgulas, hífens, espaços...
      format - um formato usado para formatar o valor do registro usando String.format(String, Object...). Se for nulo ou vazio, será usado o formato simples "%s".
      converter - o conversor de dados "crus" (geralmente arrays) para objetos de negócio
      Returns:
      os dados concatenados, ou vazio se não houver dados
    • concatenate

      public String concatenate(String delimiter, String format)
      Utilidade para concatenar os registros deste filtro em um único comando, sem precisar de conversão. Útil para registros simples, que são um código numérico ou um String.
      Parameters:
      delimiter - o delimitador usado para unir os registros; geralmente vírgulas, hífens, espaços...
      format - um formato usado para formatar o valor do registro usando String.format(String, Object...);
      Returns:
      os dados concatenados, ou vazio se não houver dados
      See Also:
    • concatenate

      public String concatenate()
      Utilidade para concatenar os registros deste filtro em um único comando, de forma simples. Os dados não são formatados, e são unidos usando vírgula e espaço (", ").
      Returns:
      os dados concatenados, ou vazio se não houver dados
      See Also: