Class ParametroSQLFactory

java.lang.Object
br.com.intersys.systextil.util.ParametroSQLFactory

public class ParametroSQLFactory extends Object
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'))))

  • Constructor Summary

    Constructors
    Constructor
    Description
    ParametroSQLFactory(String nomeProcesso, int IDProcesso, int IDTipoRegistro, int inclusaoExcessao)
    Construtor da classe
  • Method Summary

    Modifier and Type
    Method
    Description
    Esse método e responsável montar o sql de comparação com base nos parâmetros gravados
    void
    Esse método e responsável por gravar os campos que serão utilizados para montar o sql de comparação
    void
    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
    void
    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
    void
    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

    Methods inherited from class java.lang.Object

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

    • ParametroSQLFactory

      public ParametroSQLFactory(String nomeProcesso, int IDProcesso, int IDTipoRegistro, int inclusaoExcessao)
      Construtor da classe
      Parameters:
      nomeProcesso - Nome do processo do parâmetro
      IDProcesso - ID do processo do parâmetro
      IDTipoRegistro - ID do tipo de registro do processo do parâmetro
      inclusaoExcessao - (1) - Inclusão / (2) - Exceção
  • Method Details

    • setParamFields

      public void setParamFields(String... fields)
      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

      public void 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ção
      Parameters:
      field - Nome do campo da para_002
      value - Valor padrão para o campo especificado
    • setParamFieldWithDefaultValue

      public void 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ção
      Parameters:
      field - Nome do campo da para_002
      value - Valor padrão para o campo especificado
    • setTableFields

      public void 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
      Parameters:
      tableName - Nome da tabela
      fields - Campos da tabela
    • getSQLClause

      public String getSQLClause() throws Exception
      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