denisfalqueto / trt6common

Framework comum para aplicações do TRT6, portada para jee6
2 stars 2 forks source link

Implementar fluxo básico de validação em CrudFacadeBase #26

Open augustobreno opened 9 years ago

augustobreno commented 9 years ago

A classe CrudFacadeBase poderia fazer uso de "template methods" para disponibilizar pontos de extensão padrões para a validação de regras de negócio. Segue uma proposta:

CrudFacadeBase {

 protected void validateSave(Entity) {}
 protected void validateInsert(Entity) {}
 protected void validateUpdate(Entity) {}
 protected void validateRemove(Entity) {}

 protected void doRemove(Entity) {
       // remove
 }
 public ... remove(Entity) {
     validateRemove();
     doRemove();
 }

 protected void doSave(Entity) {
       // remove
 }
 public ... save(Entity) {
       validateSave(entity);
       if (entity.getId() == null) {
              validateInsert(entity);   
       } else {
              validateUpdate(entity);
       }
       doSave();
 }

}