Implementar eventos

Donde se puede aplicar:

  • Por ejemplo cuando vendes un articulo deseas actualizar el inventario de ese articulo.

  • Generar una orden de entrega.

Implementar eventos

Deseamos activar eventos cuando ocurre determinada accion.

Por ejemplo si ocurre un evento de eliminar un rol podemos activar el metodo fire() y existen listener escuchando lo que esta ocurriendo con el evento.

Clase RolEvento.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.storeejb.eventos;

import com.avbravo.storeejb.entity.Rol;

/**
 *
 * @author avbravo
 */
public class RolEvento {

    private Rol rol;

    public Rol getRol() {
        return rol;
    }

    public void setRol(Rol rol) {
        this.rol = rol;
    }

    public RolEvento() {

    }

    public RolEvento(Rol rol) {
        this.rol = rol;

    }


}

EN EL CONTROLLER

RolController.java

  • definir una lista de Event<>

  • Invocar el metodo fire()

  @Inject
    Event<RolEvento> rolEventos;

Invocar el método fire()

 rolEventos.fire(new RolEvento(rol));
 @Override
    public String delete(Object item, Boolean deleteonviewpage) {
        String path = "";
        try {
            rol = (Rol) item;
            rolEventos.fire(new RolEvento(rol));

}catch(Exception ex){
}
}

ColorListener.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.storeejb.listener;

import com.avbravo.storeejb.eventos.RolEvento;
import com.avbravo.storeejb.producer.LookupStoreejbServices;
import com.avbravo.storeejb.rules.ColorRules;
import javax.ejb.Stateless;
import javax.enterprise.event.Observes;
import javax.inject.Inject;

/**
 *
 * @author avbravo
 */
@Stateless
public class ColorListener {
     @Inject
     ColorRules colorRules;

      public void escuchaDelete(@Observes RolEvento evento) {
           try {
                  System.out.println("---> escucho en color");
           // rolRules.isDeleted(evento.getRol());
          } catch (Exception e) {
              System.out.println("ColorListener() "+e.getLocalizedMessage());
          }
    }
}

UsuarioListener.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.storeejb.listener;

import com.avbravo.storeejb.eventos.RolEvento;
import com.avbravo.storeejb.rules.RolRules;
import javax.ejb.Stateless;
import javax.enterprise.event.Observes;
import javax.inject.Inject;

/**
 *
 * @author avbravo
 */
@Stateless
public class UsuarioListener {


    @Inject
    RolRules rolRules;

    public void escuchaDelete(@Observes RolEvento evento) {
        try {
            System.out.println("---> escucho en usuario ");
            System.out.println("----> se asigno en true");
            rolRules.isDeleted(evento.getRol());
            System.out.println("----> se elimino");
        } catch (Exception e) {
            System.out.println("UsuarioListener() " + e.getLocalizedMessage());
        }

    }
}

Last updated

Was this helpful?