PARAMETERS:p_pass(25) TYPE c,
p_ptyp TYPE saplane-planetype.
PARAMETERS:p_cargo(25) TYPE c,
p_ctyp TYPE saplane-planetype.
*----------------------------------------------------------------------*
* CLASS lcl_airplane DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_airplane DEFINITION.
PUBLIC SECTION.
METHODS:constructor IMPORTING im_name TYPE c
im_planetyp TYPE saplane-planetype,
display_attributes.
PROTECTED SECTION.
DATA:name(25) TYPE c,
planetyp TYPE saplane-planetype.
CLASS-DATA:n_o_airplanes TYPE i.
ENDCLASS. "lcl_airplane DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_airplane IMPLEMENTATION.
METHOD constructor.
name = im_name.
planetyp = im_planetyp.
n_o_airplanes = n_o_airplanes + 1.
ENDMETHOD. "constructor
METHOD display_attributes.
WRITE:/'Name of plane',name,
/'Plane type',planetyp.
ENDMETHOD. "display_attributes
ENDCLASS. "lcl_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_passenger_airplane DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_passenger_airplane DEFINITION INHERITING FROM lcl_airplane.
PUBLIC SECTION.
METHODS:constructor IMPORTING im_name TYPE c
im_planetyp TYPE saplane-planetype,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA:n_o_seats TYPE sflight-seatsmax.
ENDCLASS. "lcl_passenger_airplane DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_passenger_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_passenger_airplane IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor
EXPORTING
im_name = im_name
im_planetyp = im_planetyp.
n_o_seats = '20'.
ENDMETHOD. "constructor
METHOD display_attributes.
CALL METHOD super->display_attributes.
WRITE:/'Number of passenger plane seats',n_o_seats.
ENDMETHOD. "display_attributes
ENDCLASS. "lcl_passenger_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_cargo_airplane DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_cargo_airplane DEFINITION INHERITING FROM lcl_airplane.
PUBLIC SECTION.
METHODS:constructor IMPORTING im_name TYPE c
im_planetyp TYPE saplane-planetype,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA:cargo_max TYPE scplane-cargomax.
ENDCLASS. "lcl_cargo_airplane DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_cargo_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_cargo_airplane IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor
EXPORTING
im_name = im_name
im_planetyp = im_planetyp.
cargo_max = '30'.
ENDMETHOD. "constructor
METHOD display_attributes.
CALL METHOD super->display_attributes.
WRITE:/'Number of maximum cargo seats',cargo_max.
ENDMETHOD. "display_attributes
ENDCLASS.
*----------------------------------------------------------------------*
* INTERFACE lif_business_partners IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE lif_business_partners.
METHODS:display_company_data.
ENDINTERFACE. "lif_business_partners
*----------------------------------------------------------------------*
* CLASS lcl_carrier DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_carrier DEFINITION.
PUBLIC SECTION.
INTERFACES lif_business_partners.
METHODS:add_a_new_airplane IMPORTING airplane_ref TYPE REF TO lcl_airplane.
DATA:no_of_planes TYPE i.
DATA:list_of_airplanes TYPE TABLE OF REF TO lcl_airplane,
wa_airplanes TYPE REF TO lcl_airplane.
ENDCLASS. "lcl_carrier DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_carrier IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_carrier IMPLEMENTATION.
METHOD lif_business_partners~display_company_data.
DESCRIBE TABLE list_of_airplanes LINES no_of_planes.
WRITE:'Name of airplane','TEST PLANE',
/'No of planes available',no_of_planes.
ENDMETHOD. "lif_business_partners~display_company_data
METHOD add_a_new_airplane.
wa_airplanes = airplane_ref.
APPEND wa_airplanes TO list_of_airplanes.
ENDMETHOD. "add_a_new_airplane
ENDCLASS. "lcl_carrier IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_hotel DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_hotel DEFINITION.
PUBLIC SECTION.
INTERFACES lif_business_partners.
ENDCLASS. "lcl_hotel DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_hotel IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_hotel IMPLEMENTATION.
METHOD lif_business_partners~display_company_data.
WRITE:'Name of hotel', 'HOTEL',
/'town','HYD',
/'no of rooms', 5.
ENDMETHOD. "lif_business_partners~display_company_data
ENDCLASS. "lcl_hotel IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_travel_agency DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_travel_agency DEFINITION.
PUBLIC SECTION.
METHODS:add_business_partner IMPORTING business_partners_ref
TYPE REF TO lif_business_partners,
display_business_partners.
PRIVATE SECTION.
DATA:list_of_business_partners TYPE TABLE OF REF TO lif_business_partners,
wa_business_partners TYPE REF TO lif_business_partners.
ENDCLASS. "lcl_travel_agency DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_travel_agency IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_travel_agency IMPLEMENTATION.
METHOD add_business_partner.
wa_business_partners = business_partners_ref .
APPEND wa_business_partners TO list_of_business_partners.
ENDMETHOD. "add_business_partner
METHOD display_business_partners.
LOOP AT list_of_business_partners INTO wa_business_partners.
CALL METHOD wa_business_partners->display_company_data.
ENDLOOP.
ENDMETHOD. "display_business_partners
ENDCLASS. "lcl_travel_agency IMPLEMENTATION
START-OF-SELECTION.
DATA:lcl_travel_agency_ref TYPE REF TO lcl_travel_agency,
lcl_hotel_ref TYPE REF TO lcl_hotel,
lcl_carrier_ref TYPE REF TO lcl_carrier.
DATA:lcl_passenger_airplane_ref TYPE REF TO lcl_passenger_airplane,
lcl_cargo_airplane_ref TYPE REF TO lcl_cargo_airplane.
CREATE OBJECT lcl_passenger_airplane_ref EXPORTING
im_name = p_pass
im_planetyp = p_ptyp.
CREATE OBJECT lcl_carrier_ref.
CALL METHOD lcl_carrier_ref->add_a_new_airplane
EXPORTING
airplane_ref = lcl_passenger_airplane_ref.
CREATE OBJECT lcl_cargo_airplane_ref EXPORTING
im_name = p_cargo
im_planetyp = p_ctyp.
CALL METHOD lcl_carrier_ref->add_a_new_airplane
EXPORTING
airplane_ref = lcl_cargo_airplane_ref.
CREATE OBJECT lcl_travel_agency_ref.
CREATE OBJECT lcl_hotel_ref.
CALL METHOD lcl_travel_agency_ref->add_business_partner
EXPORTING business_partners_ref = lcl_hotel_ref.
CALL METHOD lcl_travel_agency_ref->add_business_partner
EXPORTING business_partners_ref = lcl_carrier_ref.
CALL METHOD lcl_travel_agency_ref->display_business_partners.
p_ptyp TYPE saplane-planetype.
PARAMETERS:p_cargo(25) TYPE c,
p_ctyp TYPE saplane-planetype.
*----------------------------------------------------------------------*
* CLASS lcl_airplane DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_airplane DEFINITION.
PUBLIC SECTION.
METHODS:constructor IMPORTING im_name TYPE c
im_planetyp TYPE saplane-planetype,
display_attributes.
PROTECTED SECTION.
DATA:name(25) TYPE c,
planetyp TYPE saplane-planetype.
CLASS-DATA:n_o_airplanes TYPE i.
ENDCLASS. "lcl_airplane DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_airplane IMPLEMENTATION.
METHOD constructor.
name = im_name.
planetyp = im_planetyp.
n_o_airplanes = n_o_airplanes + 1.
ENDMETHOD. "constructor
METHOD display_attributes.
WRITE:/'Name of plane',name,
/'Plane type',planetyp.
ENDMETHOD. "display_attributes
ENDCLASS. "lcl_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_passenger_airplane DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_passenger_airplane DEFINITION INHERITING FROM lcl_airplane.
PUBLIC SECTION.
METHODS:constructor IMPORTING im_name TYPE c
im_planetyp TYPE saplane-planetype,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA:n_o_seats TYPE sflight-seatsmax.
ENDCLASS. "lcl_passenger_airplane DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_passenger_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_passenger_airplane IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor
EXPORTING
im_name = im_name
im_planetyp = im_planetyp.
n_o_seats = '20'.
ENDMETHOD. "constructor
METHOD display_attributes.
CALL METHOD super->display_attributes.
WRITE:/'Number of passenger plane seats',n_o_seats.
ENDMETHOD. "display_attributes
ENDCLASS. "lcl_passenger_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_cargo_airplane DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_cargo_airplane DEFINITION INHERITING FROM lcl_airplane.
PUBLIC SECTION.
METHODS:constructor IMPORTING im_name TYPE c
im_planetyp TYPE saplane-planetype,
display_attributes REDEFINITION.
PRIVATE SECTION.
DATA:cargo_max TYPE scplane-cargomax.
ENDCLASS. "lcl_cargo_airplane DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_cargo_airplane IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_cargo_airplane IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor
EXPORTING
im_name = im_name
im_planetyp = im_planetyp.
cargo_max = '30'.
ENDMETHOD. "constructor
METHOD display_attributes.
CALL METHOD super->display_attributes.
WRITE:/'Number of maximum cargo seats',cargo_max.
ENDMETHOD. "display_attributes
ENDCLASS.
*----------------------------------------------------------------------*
* INTERFACE lif_business_partners IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE lif_business_partners.
METHODS:display_company_data.
ENDINTERFACE. "lif_business_partners
*----------------------------------------------------------------------*
* CLASS lcl_carrier DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_carrier DEFINITION.
PUBLIC SECTION.
INTERFACES lif_business_partners.
METHODS:add_a_new_airplane IMPORTING airplane_ref TYPE REF TO lcl_airplane.
DATA:no_of_planes TYPE i.
DATA:list_of_airplanes TYPE TABLE OF REF TO lcl_airplane,
wa_airplanes TYPE REF TO lcl_airplane.
ENDCLASS. "lcl_carrier DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_carrier IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_carrier IMPLEMENTATION.
METHOD lif_business_partners~display_company_data.
DESCRIBE TABLE list_of_airplanes LINES no_of_planes.
WRITE:'Name of airplane','TEST PLANE',
/'No of planes available',no_of_planes.
ENDMETHOD. "lif_business_partners~display_company_data
METHOD add_a_new_airplane.
wa_airplanes = airplane_ref.
APPEND wa_airplanes TO list_of_airplanes.
ENDMETHOD. "add_a_new_airplane
ENDCLASS. "lcl_carrier IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_hotel DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_hotel DEFINITION.
PUBLIC SECTION.
INTERFACES lif_business_partners.
ENDCLASS. "lcl_hotel DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_hotel IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_hotel IMPLEMENTATION.
METHOD lif_business_partners~display_company_data.
WRITE:'Name of hotel', 'HOTEL',
/'town','HYD',
/'no of rooms', 5.
ENDMETHOD. "lif_business_partners~display_company_data
ENDCLASS. "lcl_hotel IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_travel_agency DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_travel_agency DEFINITION.
PUBLIC SECTION.
METHODS:add_business_partner IMPORTING business_partners_ref
TYPE REF TO lif_business_partners,
display_business_partners.
PRIVATE SECTION.
DATA:list_of_business_partners TYPE TABLE OF REF TO lif_business_partners,
wa_business_partners TYPE REF TO lif_business_partners.
ENDCLASS. "lcl_travel_agency DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_travel_agency IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_travel_agency IMPLEMENTATION.
METHOD add_business_partner.
wa_business_partners = business_partners_ref .
APPEND wa_business_partners TO list_of_business_partners.
ENDMETHOD. "add_business_partner
METHOD display_business_partners.
LOOP AT list_of_business_partners INTO wa_business_partners.
CALL METHOD wa_business_partners->display_company_data.
ENDLOOP.
ENDMETHOD. "display_business_partners
ENDCLASS. "lcl_travel_agency IMPLEMENTATION
START-OF-SELECTION.
DATA:lcl_travel_agency_ref TYPE REF TO lcl_travel_agency,
lcl_hotel_ref TYPE REF TO lcl_hotel,
lcl_carrier_ref TYPE REF TO lcl_carrier.
DATA:lcl_passenger_airplane_ref TYPE REF TO lcl_passenger_airplane,
lcl_cargo_airplane_ref TYPE REF TO lcl_cargo_airplane.
CREATE OBJECT lcl_passenger_airplane_ref EXPORTING
im_name = p_pass
im_planetyp = p_ptyp.
CREATE OBJECT lcl_carrier_ref.
CALL METHOD lcl_carrier_ref->add_a_new_airplane
EXPORTING
airplane_ref = lcl_passenger_airplane_ref.
CREATE OBJECT lcl_cargo_airplane_ref EXPORTING
im_name = p_cargo
im_planetyp = p_ctyp.
CALL METHOD lcl_carrier_ref->add_a_new_airplane
EXPORTING
airplane_ref = lcl_cargo_airplane_ref.
CREATE OBJECT lcl_travel_agency_ref.
CREATE OBJECT lcl_hotel_ref.
CALL METHOD lcl_travel_agency_ref->add_business_partner
EXPORTING business_partners_ref = lcl_hotel_ref.
CALL METHOD lcl_travel_agency_ref->add_business_partner
EXPORTING business_partners_ref = lcl_carrier_ref.
CALL METHOD lcl_travel_agency_ref->display_business_partners.