Class Param<T>
- Type Parameters:
T
- O tipo do parâmetro
- Direct Known Subclasses:
ParamDate
,ParamDouble
,ParamInt
,ParamString
No banco de dados, a definição do parâmetro fica em uma tabela, e os valores desse parâmetro para cada empresa ficam em outra tabela. Esta classe centraliza o acesso aos dados nessas tabelas.
Esta classe não grava nem altera as definições de parâmetros. Essas definições são entendidas como fazendo parte da instalação da aplicação, e normalmente são distribuídas mediante scripts SQL com comandos INSERT.
Normalmente, os valores desses parâmetros são manipulados através de subclasses desta classe. Essas subclasses fornecem métodos estáticos preparados para serem usados pela aplicação. Instâncias dessas subclasses são preparadas para serem usadas em painéis de configuração de parâmetros de empresas.
Instâncias desta classe não memorizam estado. São imutáveis.
Observações sobre valores default
Talvez não esteja clara qual é a função dos valores default para estes parâmetros.
Para esta classe, a função principal do valor default é entendida como sendo
o valor a ser sugerido para novos registros em painéis de configuração de
parâmetros de empresa. Assim, informar ao painel qual é o valor default
que foi cadastrado (através de defaultValue
) é o que basta.
No entanto, em várias situações o valor default é entendido como o valor a ser usado pela aplicação se o parâmetro não tiver valor (para determinada empresa). Torna-se necessário esclarecer o que significa "não ter valor":
- Se não existir registro para o valor desse parâmetro para essa empresa, então claramente não existe valor. O valor default é retornado.(*)
- Se existir registro para o valor desse parâmetro para essa empresa, mas seu valor estiver nulo: tem valor, e ele é nulo. O valor default não é retornado.
Se o valor for nulo, as implementações numéricas retornarão zero.
(*) É discutível a possibilidade da aplicação não considerar o retorno do valor default, e simplesmente se recusar a retornar um valor se não tiver sido cadastrado explicitamente para essa empresa, considerando isso uma falha de parametrização.
- Author:
- sergio
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiongetDefaultStr
(AppConnection conn, String param) Obtém o valor do campodefault_str
do parâmetro.retrieveValue
(AppConnection conn, int codEmpresa) Obtém do banco de dados o valor deste parâmetro.void
storeValue
(AppConnection conn, int codEmpresa, T value) Grava no banco de dados o valor para este parâmetro.
-
Field Details
-
name
O nome do parâmetro. -
defaultValue
O valor default cadastrado para este parâmetro. -
label
A tag prevista para o label deste parâmetro. -
fyiMessage
A tag prevista para o FYI message deste parâmetro.
-
-
Method Details
-
retrieveValue
Obtém do banco de dados o valor deste parâmetro.- Parameters:
conn
- a conexão ao banco de dadoscodEmpresa
- o código da empresa- Returns:
- o valor obtido, ou, se não existir, o
defaultValue
-
storeValue
Grava no banco de dados o valor para este parâmetro.- Parameters:
conn
- a conexão ao banco de dadoscodEmpresa
- o código da empresavalue
- o valor
-
getDefaultStr
Obtém o valor do campodefault_str
do parâmetro.- Parameters:
conn
- a conexão ao banco de dadosparam
- o nome do parâmetro- Returns:
- o valor encontrado; se o registro existir, nunca retorna nulo.
-