Event is a mechanism by which method of one class (triggering method) can raise method of this class or another class (event handler method).
An event of a class can trigger an event handler method of the same class by using the RAISE EVENT statement.
For an event, the event handler method can be defined in the same or different class by using the FOR EVENT clause, as shown in the following syntax:
For an event, the event handler method can be defined in the same or different class by using the FOR EVENT clause, as shown in the following syntax:
FOR EVENT <event_name> OF <class_name>.
Similar to the methods of a class, an event can have parameter interface but it has only output parameters. The output parameters are passed to the event handler method by the RAISE EVENT statement that receives them as input parameters.
An object event is linked to its handler method in a program by using the SET HANDLER statement.
SET HANDLER handler_object->handle_method FOR triggering_class.
Example
REPORT ZEVENT1.
CLASS CL_main DEFINITION.
PUBLIC SECTION.
DATA: num1 TYPE I.
METHODS: PRO IMPORTING num2 TYPE I.
EVENTS: CUTOFF.
ENDCLASS.
CLASS CL_eventhandler DEFINITION.
PUBLIC SECTION.
METHODS: handling_CUTOFF FOR EVENT CUTOFF OF CL_main.
ENDCLASS.
START-OF-SELECTION.
DATA: main1 TYPE REF TO CL_main.
DATA: eventhandler1 TYPE REF TO CL_eventhandler.
CREATE OBJECT main1.
CREATE OBJECT eventhandler1.
SET HANDLER eventhandler1→handling_CUTOFF FOR main1.
main1→PRO( 4 ).
CLASS CL_main IMPLEMENTATION.
METHOD PRO.
num1 = num2.
IF num2 ≥ 2.
RAISE EVENT CUTOFF.
ENDIF.
ENDMETHOD.
ENDCLASS.
CLASS CL_eventhandler IMPLEMENTATION.
METHOD handling_CUTOFF.
WRITE: 'Handling the CutOff'.
WRITE: / 'Event has been processed'.
ENDMETHOD.
ENDCLASS.
The above code produces the following output −
Handling the CutOff
Event has been processed
No comments:
Post a Comment