Class TempFilter<F,R extends Serializable>
- Type Parameters:
F
- o tipo de objeto de negócio ao qual este filtro se refereR
- o tipo de dado "cru" obtido do campo binário
- Author:
- sergio
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTempFilter
(TempRecords temps) Configura um objeto para filtragem usando os registros temporários fornecidos. -
Method Summary
Modifier and TypeMethodDescriptionUtilidade 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 deString
s correspondentes aos registros gravados.Retorna uma lista deString
s correspondentes aos registros gravados, modificada para que retorne um texto vazio quando for pedido um elemento inexistente.getStringListNotNull
(String defaultValue) Retorna uma lista deString
s correspondentes aos registros gravados, modificada para que retorne um valor default quando for pedido um elemento inexistente.void
insertRecords
(AppConnection conn) 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
isStringValid
(String value) Informa se o valor é válido conforme os dados deste filtro, considerando inclusão ou exceção.int
size()
Informa quantos registros existem neste filtro.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.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.
-
Field Details
-
EMPTY
Filtro que não tem registros para filtrar. -
incExc
public final boolean incExcIndica se o filtro é de inclusão ou exceção. Exceção étrue
. -
incExcTag
Disponibiliza a tag correspondente aincExc
para traduzir e usar.
-
-
Constructor Details
-
TempFilter
Configura um objeto para filtragem usando os registros temporários fornecidos.- Parameters:
temps
- os registros temporários configurados para a filtragem
-
-
Method Details
-
toSQL
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 deString
, 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
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
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 dadosnr_solicitacao
- o número da solicitaçãocodigo_relatorio
- o código (nome) do relatóriosolicitante
- a identificação do solicitantecodigo_empresa
- o código da empresasequencia
- a sequência que identifica este registro- Returns:
- os bytes lidos
-
toMap
É 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 oTempFilter
encontrado pelo nome do campo, ou, se não encontrar algum, retornaEMPTY
.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 dadosobj
- o objeto binário lido- Returns:
- o mapa de registros temporários pelo nome do campo
-
getList
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ódigosInteger
ouString
, prefira usargetIntegerList()
,getIntegerListNotNull()
ougetStringList()
.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
List
s.Por comodidade, essa lista foi modificada para que seu método
get(int)
nunca lanceIndexOutOfBoundsException
, 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
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
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
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
Retorna uma lista deString
s correspondentes aos registros gravados.- Returns:
- a lista com os objetos gravados
- See Also:
-
getStringListNotNull
Retorna uma lista deString
s 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
Retorna uma lista deString
s 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
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
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 usandoString.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
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 umString
.- 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 usandoString.format(String, Object...)
;- Returns:
- os dados concatenados, ou vazio se não houver dados
- See Also:
-
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:
-