Caso de uso para ParameterBeans (campos obrigatórios)

1 view
Skip to first unread message

Pedro Viegas

unread,
Dec 27, 2023, 7:21:31 AM12/27/23
to DIF2 Mailing list
Bom dia,

Hoje tive um caso de uso complicado que partilho convosco. Uma situação não suportada.

Necessidade:
Um campo que no nosso modelo de dados não é obrigatório deverá passar a ser considerado como tal. Para tal o caminho aconselhado é na respestiva classe Manager do modelo de dados em causa, no método postInicialization adicionar essas exceções:
public class TeamModelManager extends AbstractModelManager
{
... previous code ...

/**
* Post initialization.
*/
@Override
public void postInitialization()
{
        ... previous code ...
ContractFieldAttributes.client.setMandatory(true);
ContractFieldAttributes.classifier.setMandatory(true);

super.postInitialization();
}
}
Há no entanto um caso de uso em que isto não funciona. Com @ParameterBean.
Nestas situações o campo vai continuar a ser tratado como não obrigatório.
A razão tem a ver com a ordem de inicialização da DIF. Primeiro são processadas todas as anotações do DEM e criado esse modelo em RAM, e só depois são inicializdos os objetos para que possam já tirar partido do DEM. Inclusive os Models.

Para esta situação no imediato seremos obrigados a adicionar nos ParameterBeans em que tenhamos feito este tipo de alterações a aparentemente redundante indicação de que os campos são obrigatórios. Da seguinte forma:
/**
* The Contract.
*/
@ParameterBean(linkToForm = "contractForm", additionalRequiredFields = {"client", "classifier"})
protected Contract contract;

Com os melhores cumprimentos,



Pedro Viegas
Director Departamento de Desenvolvimento
(Development Manager)
Digitalis Informática Lda
R&D: http://development.digitalis.pt


Reply all
Reply to author
Forward
0 new messages