
1. Disparar y manejar eventos
hay ciertos metodos que se conocen como diparadores TRIGGERS y tros como manejadores HANDLERS
*TRIGGERS: metodos que disparan un evento
*HANDLERS: metodos que ejecutan cuando ocurre un evento
para diparar un evento una clase tiene que:
*declarar el evento en la parte de la declarativa
*declarar el evento en uno de sus metodos
* los eventos se declaran en la parte declarativa de la clase o en una interface
EVENT <> EXPORTING....VALUE TYPE
*declarar ebentos estaticos: CLASS-EVENTS <>
*cuando se declara un evento se puede utilizar el EXPORTING para especificar parametros que se
pasan al manejador del evento
*los eventos dependientes de instancia siempre contienen el parametro SENDER
*un evento dependiente de instancia en una clase pueder ser disparado por cualquier metodo de la clase
*para disparar un evento en un metodo: RAISE EVENT <> EXPORTING... <> = <>
2. Eventos manejadores
los eventos se usan para ejecutar una serie de metodos, estos metodos tiene que:
*estar definidos como eventos manejadores (handler) de ese evento
*estar registrador en timpo de ejecucion para el evento
*para declarar un metodo manejador de eventos dependiente de instancia se usa:
METHODS <> FOR EVENT <> OF <> IMPORTING... <>..
*para metodos estaticos se usa la misma sentencia con CLASS-METHODS en vez de METHODS
*la interface de un metodo menejador de eventos solo puede conteener parametros formales
*el metodo manejdor de eventos no tiene que usar todos los parametors pasados en la sentencia RAISE-EVENT
3. Registro de metodos manejadores de Eventos
se utiliza la sentencia SET HANDLERS
*esta sentencia realaciona los metodos manejadores de eventos con sus correspondientes metodos
*hay 4 tipo de diferentes de eventos:
-eventos dependientes de instancia declarados en una clase
-eventos dependientes de instania declarados en una interface
-eventos estaticos declarados en una clase
-eventos estaticos declarados en una interface
*la sentencia y el efecto de la sentencia SET HANDLER depende de cual de las 4 casos detallos tenga lugar
*para un evento dependiente de instancia se tiene que usar la adicion FOR para especificar la instancia para la cual se
quiere registrr el manejador
*sentencia: SET HANDLER <> FOR <>
*para todas las intancias: SET HANDLER <> FOR ALL INSTANCES
*en este caso el registro se aplica incluso a las instancias que aun no han sido cradas cuando se registra el manejador
*no se puede utilizar FOR para los eventos estaticos, es asi: SET HANDLER <>
4. Coordinacion en el manejo de eventos
despues del RAISE EVENT, todos los metodos manejadores registrados son ejecutados antes de que la siguiente sentencia sea procesa.
*actualmente los eventos solo se pueden anidar 64 niveles
*los metodos manejadores de eventos son ejecutador en el orden en que son registrados
5. Ejemplo del manejo de eventos