CDI - O chamador é notificado quando um observador observa um evento?
-
27-09-2019 - |
Pergunta
Estou usando o CDI e quero saber como o chamador é notificado de que o observador observou um evento ou não. Se nenhum observa agir sobre esse evento, então eu quero fazer alguma coisa. Não vejo isso sendo documentado em nenhum lugar da documentação, exceto que houve uma dica de que o chamador é notificado.
Obrigado,
Walter
Solução
Não acho que o chamador seja notificado (não é o que é o padrão do observador). Mas você pode tentar trabalhar isso por:
você pode ter um campo o objeto de evento -
private boolean consumed
e defina -o paratrue
se for consumido. Em seguida, (os eventos são tratados de maneira síncrona) no produto-produtor de eventos, verifique essa variável.disparando um novo evento dos observadores observados pelo produtor de eventos
Se você deseja abandonar o benefício do acoplamento solto, e você sabe exatamente qual é o produtor de eventos, você pode
@Inject
em todos os ouvintes, e deixe -os invocar um método nele