Files
abap-llm/tasks_gen/train/G1004/faulty/m3_balloon_checker.clas.abap

53 lines
1.5 KiB
ABAP

CLASS {{p}}balloon_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
METHODS check_flight
IMPORTING iv_passengers TYPE i
iv_weight_kg TYPE i
iv_wind_kmh TYPE i
iv_cloud_base_m TYPE i
RETURNING VALUE(rv_free_kg) TYPE i
RAISING {{p}}cx_balloon_flight.
PRIVATE SECTION.
CONSTANTS:
c_max_passengers TYPE i VALUE 8,
c_max_weight_kg TYPE i VALUE 640,
c_max_wind_kmh TYPE i VALUE 18,
c_min_cloud_base_m TYPE i VALUE 300.
ENDCLASS.
CLASS {{p}}balloon_checker IMPLEMENTATION.
METHOD check_flight.
IF iv_passengers > c_max_passengers.
RAISE EXCEPTION TYPE {{p}}cx_balloon_crew
EXPORTING
iv_passengers = iv_passengers
iv_limit = c_max_passengers.
ENDIF.
IF iv_weight_kg > c_max_weight_kg.
RAISE EXCEPTION TYPE {{p}}cx_balloon_weight
EXPORTING
iv_weight_kg = iv_weight_kg
iv_limit_kg = c_max_weight_kg.
ENDIF.
IF iv_wind_kmh > c_max_wind_kmh.
RAISE EXCEPTION TYPE {{p}}cx_balloon_wind
EXPORTING
iv_wind_kmh = iv_wind_kmh
iv_limit_kmh = c_max_wind_kmh.
ENDIF.
IF iv_cloud_base_m >= c_min_cloud_base_m.
RAISE EXCEPTION TYPE {{p}}cx_balloon_cloud
EXPORTING
iv_cloud_base_m = iv_cloud_base_m
iv_limit_m = c_min_cloud_base_m.
ENDIF.
rv_free_kg = c_max_weight_kg - iv_weight_kg.
ENDMETHOD.
ENDCLASS.