Package br.com.intersys.systextil.util
Class ParametroSQLFactory
java.lang.Object
br.com.intersys.systextil.util.ParametroSQLFactory
Classe responsável por montar o sql de comparação de inclusao/exceção dos parâmetros gravados em configurações
O intuito do componente é pra ser utilizado para configurações padrões de programas que não irão ser excluídos pelo sistema, somente por mão do usuário. Usage:
1- Invocar o construtor passando os dados dos parâmetros que foram utilizados para gravá-los
ParametroSQLFactory parametroSQLFactory = new ParametroSQLFactory("emissao_nota_fiscal", 1 /id do parametro da tela/, 1 /emissao/, 1)
2- Instanciar quais foram os campos gravados para o parâmetro especificado que contêm os dados da configuração.
parametroSQLFactory.setParamFields("integer_01", "string_01") para campos sem valor padrão
parametroSQLFactory.setParamFieldWithDefaultValue("integer_01", 100) para campos com valor padrão
3- Instanciar qual é a tabela e os campos que irão ser utilizados para validar se os dados devem ou não serem utilizados na regra de negócio.
parametroSQLFactory.setTableFields("obrf_010", "numero_nota", "serie_nota")
4- Por fim, chamar o método que vai montar o sql para ser utilizado.
String resultSQL = parametroSQLFactory.getSQLClause()
Exemplos de resultados de sql:
-Sem parâmetro default - Inclusão - 1 Campo:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test1') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01)))
-Sem parâmetro default - Exceção - 1 Campo:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test2') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01)))
-Sem parâmetro default - Inclusão - 2 Campos:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test3') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01) and (para_002.string_01 = tabela.campo_02)))
-Sem parâmetro default - Exceção - 2 Campos:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test4') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01) and (para_002.string_01 = tabela.campo_02)))
-Com parâmetro default - Inclusão - 1 Campo:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test5') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0'))))
-Com parâmetro default - Exceção - 1 Campo:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test6') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0'))))
-Com parâmetro default - Inclusão - 2 Campos:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test7') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0')) and ((para_002.string_01 = tabela.campo_02) or (para_002.string_01 = 'XXX'))))
-Com parâmetro default - Exceção - 2 Campos:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test8') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0')) and ((para_002.string_01 = tabela.campo_02) or (para_002.string_01 = 'XXX'))))
O intuito do componente é pra ser utilizado para configurações padrões de programas que não irão ser excluídos pelo sistema, somente por mão do usuário. Usage:
1- Invocar o construtor passando os dados dos parâmetros que foram utilizados para gravá-los
ParametroSQLFactory parametroSQLFactory = new ParametroSQLFactory("emissao_nota_fiscal", 1 /id do parametro da tela/, 1 /emissao/, 1)
2- Instanciar quais foram os campos gravados para o parâmetro especificado que contêm os dados da configuração.
parametroSQLFactory.setParamFields("integer_01", "string_01") para campos sem valor padrão
parametroSQLFactory.setParamFieldWithDefaultValue("integer_01", 100) para campos com valor padrão
3- Instanciar qual é a tabela e os campos que irão ser utilizados para validar se os dados devem ou não serem utilizados na regra de negócio.
parametroSQLFactory.setTableFields("obrf_010", "numero_nota", "serie_nota")
4- Por fim, chamar o método que vai montar o sql para ser utilizado.
String resultSQL = parametroSQLFactory.getSQLClause()
Exemplos de resultados de sql:
-Sem parâmetro default - Inclusão - 1 Campo:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test1') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01)))
-Sem parâmetro default - Exceção - 1 Campo:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test2') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01)))
-Sem parâmetro default - Inclusão - 2 Campos:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test3') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01) and (para_002.string_01 = tabela.campo_02)))
-Sem parâmetro default - Exceção - 2 Campos:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test4') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and (para_002.integer_01 = tabela.campo_01) and (para_002.string_01 = tabela.campo_02)))
-Com parâmetro default - Inclusão - 1 Campo:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test5') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0'))))
-Com parâmetro default - Exceção - 1 Campo:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test6') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0'))))
-Com parâmetro default - Inclusão - 2 Campos:
(exists (select 1 from para_002 where (para_002.nome_processo = 'test7') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0')) and ((para_002.string_01 = tabela.campo_02) or (para_002.string_01 = 'XXX'))))
-Com parâmetro default - Exceção - 2 Campos:
(not exists (select 1 from para_002 where (para_002.nome_processo = 'test8') and (para_002.id_processo = 1) and (para_002.id_tipo_registro = 1) and ((para_002.integer_01 = tabela.campo_01) or (para_002.integer_01 = '0')) and ((para_002.string_01 = tabela.campo_02) or (para_002.string_01 = 'XXX'))))
-
Constructor Summary
ConstructorsConstructorDescriptionParametroSQLFactory
(String nomeProcesso, int IDProcesso, int IDTipoRegistro, int inclusaoExcessao) Construtor da classe -
Method Summary
Modifier and TypeMethodDescriptionEsse método e responsável montar o sql de comparação com base nos parâmetros gravadosvoid
setParamFields
(String... fields) Esse método e responsável por gravar os campos que serão utilizados para montar o sql de comparaçãovoid
setParamFieldWithDefaultValue
(String field, Integer value) Esse método e responsável por gravar os campos, com um valor default, que serão utilizados para montar o sql de comparaçãovoid
setParamFieldWithDefaultValue
(String field, String value) Esse método e responsável por gravar os campos, com um valor default, que serão utilizados para montar o sql de comparaçãovoid
setTableFields
(String tableName, String... fields) Esse método e responsável por gravar qual a tabela e os campos do banco que irão ser utilizados para validar as seleções de parâmetros
-
Constructor Details
-
ParametroSQLFactory
public ParametroSQLFactory(String nomeProcesso, int IDProcesso, int IDTipoRegistro, int inclusaoExcessao) Construtor da classe- Parameters:
nomeProcesso
- Nome do processo do parâmetroIDProcesso
- ID do processo do parâmetroIDTipoRegistro
- ID do tipo de registro do processo do parâmetroinclusaoExcessao
- (1) - Inclusão / (2) - Exceção
-
-
Method Details
-
setParamFields
Esse método e responsável por gravar os campos que serão utilizados para montar o sql de comparação- Parameters:
fields
- Campos da tabela para_002 que serão utilizados para montar o sql
-
setParamFieldWithDefaultValue
Esse método e responsável por gravar os campos, com um valor default, que serão utilizados para montar o sql de comparação- Parameters:
field
- Nome do campo da para_002value
- Valor padrão para o campo especificado
-
setParamFieldWithDefaultValue
Esse método e responsável por gravar os campos, com um valor default, que serão utilizados para montar o sql de comparação- Parameters:
field
- Nome do campo da para_002value
- Valor padrão para o campo especificado
-
setTableFields
Esse método e responsável por gravar qual a tabela e os campos do banco que irão ser utilizados para validar as seleções de parâmetros- Parameters:
tableName
- Nome da tabelafields
- Campos da tabela
-
getSQLClause
Esse método e responsável montar o sql de comparação com base nos parâmetros gravados- Returns:
- String com o sql de comparação
- Throws:
Exception
- se der problema
-