segunda-feira, 10 de setembro de 2018

Eventos - Parte 4/5

Introdução

Nos posts anteriores analisamos uma série de eventos, nesse post vou concentrar nos eventos de antes e após uma ação de confirmação do CRUD. Por exemplo, antes de gravar a inclusão, após gravar inclusão, antes gravar alteração, após gravar alteração, etc..

@JArchEventBeforeSaveInsert

Esse evento é disparado antes de chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for inclusão ou clonagem.
Segue um exemplo:
1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void antesInclusao(@Observes @JArchEventBeforeSaveInsert LancamentoEntity lancamento) {
        LogUtils.generate("Antes da inclusão");
    }

@JArchEventAfterSaveInsert

Esse evento é disparado após chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for inclusão ou clonagem.
Segue um exemplo:
1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void depoisInclusao(@Observes @JArchEventAfterSaveInsert LancamentoEntity lancamento) {
        LogUtils.generate("Depois da inclusão");
    }

@JArchEventBeforeSaveChange

Esse evento é disparado antes chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for alteração.
Segue um exemplo:
1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void antesAlteracao(@Observes @JArchEventBeforeSaveChange LancamentoEntity lancamento) {
        LogUtils.generate("Antes da alteração");
    }

@JArchEventAfterSaveChange

Esse evento é disparado após chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for alteração.
Segue um exemplo:
1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void depoisAlteracao(@Observes @JArchEventAfterSaveChange LancamentoEntity lancamento) {
        LogUtils.generate("Depois da alteração");
    }

@JArchEventBeforeSaveInsertChange

Esse evento é disparado antes chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for inclusão, clonagem ou alteração.
Segue um exemplo:
1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void antesInclusaoAlteracao(@Observes @JArchEventBeforeSaveInsertChange LancamentoEntity lancamento) {
        LogUtils.generate("Antes da inclusão / alteração");
    }

@JArchEventAfterSaveInsertChange

Esse evento é disparado após chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for inclusão, clonagem ou alteração.
Segue um exemplo:
1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void depoisInclusaoAlteracao(@Observes @JArchEventAfterSaveInsertChange LancamentoEntity lancamento) {
        LogUtils.generate("Depois da inclusão / alteração");
    }

@JArchEventBeforeSaveDelete

Esse evento é disparado antes chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for exclusão.
Segue um exemplo:

1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void antesExclusao(@Observes @JArchEventBeforeSaveDelete LancamentoEntity lancamento) {
        LogUtils.generate("Antes da exclusão");
    }

@JArchEventAfterSaveDelete

Esse evento é disparado após chamar o método para salvar a entidade no contexto de persistência, quando o tipo de CRUD for exclusão.
Segue um exemplo:

1
2
3
4
5
public class LancamentoEventosAntesDepoisCrudObserver {

    private void depoisExclusao(@Observes @JArchEventAfterSaveDelete LancamentoEntity lancamento) {
        LogUtils.generate("Depois da exclusão");
    }

Conclusão

Nesse post eu mostrei os eventos de antes e após as ações de CRUD no contexto de persistência. Isso é muito útil porque podemos interceptar antes para adicionar alguma informação na entidade ou após para recuperar alguma informação dela como por exemplo o ID. Todos os eventos até agora são para interceptar a entidade, no próximo post eu vou mostrar como interceptar os métodos da action, muito útil para poder fazer algum tratamento com os componentes do JSF por exemplo.

Até mais,

Nenhum comentário:

Postar um comentário

Versão 23.3.0-Final

      Introdução Nesse post vou mostrar as principais novidades da versão 23.3.0, algumas correções e pequenas alterações. Alterações Além d...