mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Refactoring into INTF class since we have tests
This commit is contained in:
parent
dd23247095
commit
7fdcf7aa73
|
@ -391,21 +391,20 @@ CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_objects_program.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES lif_object.
|
INTERFACES lif_object.
|
||||||
ALIASES mo_files FOR lif_object~mo_files.
|
ALIASES mo_files FOR lif_object~mo_files.
|
||||||
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
|
||||||
DATA mv_skip_testclass TYPE abap_bool.
|
|
||||||
DATA mo_object_oriented_object TYPE REF TO lif_object_oriented_object.
|
|
||||||
|
|
||||||
METHODS deserialize_abap
|
METHODS deserialize_abap
|
||||||
IMPORTING io_xml TYPE REF TO lcl_xml_input
|
IMPORTING io_xml TYPE REF TO lcl_xml_input
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
METHODS deserialize_textpool
|
METHODS deserialize_docu
|
||||||
IMPORTING io_xml TYPE REF TO lcl_xml_input
|
IMPORTING io_xml TYPE REF TO lcl_xml_input
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
DATA mo_object_oriented_object TYPE REF TO lif_object_oriented_object.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA mv_skip_testclass TYPE abap_bool.
|
||||||
|
|
||||||
METHODS deserialize_docu
|
METHODS deserialize_textpool
|
||||||
IMPORTING io_xml TYPE REF TO lcl_xml_input
|
IMPORTING io_xml TYPE REF TO lcl_xml_input
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
@ -480,16 +479,6 @@ CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_objects_program.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_dtel DEFINITION
|
ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
* CLASS lcl_object_intf DEFINITION
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
*
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
CLASS lcl_object_intf DEFINITION INHERITING FROM lcl_object_clas FINAL.
|
|
||||||
* todo, CLAS + INTF to be refactored, see:
|
|
||||||
* https://github.com/larshp/abapGit/issues/21
|
|
||||||
ENDCLASS. "lcl_object_intf DEFINITION
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_object_clas IMPLEMENTATION
|
* CLASS lcl_object_clas IMPLEMENTATION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -1113,12 +1102,10 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
||||||
deserialize_abap( io_xml = io_xml
|
deserialize_abap( io_xml = io_xml
|
||||||
iv_package = iv_package ).
|
iv_package = iv_package ).
|
||||||
|
|
||||||
IF ms_item-obj_type = 'CLAS'.
|
deserialize_textpool( io_xml ).
|
||||||
deserialize_textpool( io_xml ).
|
|
||||||
|
|
||||||
deserialize_sotr( io_xml = io_xml
|
deserialize_sotr( io_xml = io_xml
|
||||||
iv_package = iv_package ).
|
iv_package = iv_package ).
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
deserialize_docu( io_xml ).
|
deserialize_docu( io_xml ).
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
@ -1149,7 +1136,7 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
||||||
METHOD deserialize_docu.
|
METHOD deserialize_docu.
|
||||||
|
|
||||||
DATA: lt_lines TYPE tlinetab,
|
DATA: lt_lines TYPE tlinetab,
|
||||||
lv_object type dokhl-object.
|
lv_object TYPE dokhl-object.
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'LINES'
|
io_xml->read( EXPORTING iv_name = 'LINES'
|
||||||
CHANGING cg_data = lt_lines ).
|
CHANGING cg_data = lt_lines ).
|
||||||
|
@ -1194,7 +1181,6 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
||||||
METHOD deserialize_abap.
|
METHOD deserialize_abap.
|
||||||
|
|
||||||
DATA: ls_vseoclass TYPE vseoclass,
|
DATA: ls_vseoclass TYPE vseoclass,
|
||||||
ls_vseointerf TYPE vseointerf,
|
|
||||||
lt_source TYPE seop_source_string,
|
lt_source TYPE seop_source_string,
|
||||||
lt_locals_def TYPE seop_source_string,
|
lt_locals_def TYPE seop_source_string,
|
||||||
lt_locals_imp TYPE seop_source_string,
|
lt_locals_imp TYPE seop_source_string,
|
||||||
|
@ -1220,43 +1206,23 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
||||||
|
|
||||||
ls_clskey-clsname = ms_item-obj_name.
|
ls_clskey-clsname = ms_item-obj_name.
|
||||||
|
|
||||||
CASE ms_item-obj_type.
|
io_xml->read( EXPORTING iv_name = 'VSEOCLASS'
|
||||||
WHEN 'CLAS'.
|
CHANGING cg_data = ls_vseoclass ).
|
||||||
io_xml->read( EXPORTING iv_name = 'VSEOCLASS'
|
|
||||||
CHANGING cg_data = ls_vseoclass ).
|
|
||||||
|
|
||||||
mo_object_oriented_object->create(
|
mo_object_oriented_object->create(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_package = iv_package
|
iv_package = iv_package
|
||||||
CHANGING
|
CHANGING
|
||||||
is_properties = ls_vseoclass
|
is_properties = ls_vseoclass
|
||||||
).
|
).
|
||||||
|
mo_object_oriented_object->generate_locals(
|
||||||
WHEN 'INTF'.
|
is_key = ls_clskey
|
||||||
io_xml->read( EXPORTING iv_name = 'VSEOINTERF'
|
iv_force = seox_true
|
||||||
CHANGING cg_data = ls_vseointerf ).
|
it_local_definitions = lt_locals_def
|
||||||
|
it_local_implementations = lt_locals_imp
|
||||||
mo_object_oriented_object->create(
|
it_local_macros = lt_locals_mac
|
||||||
EXPORTING
|
it_local_test_classes = lt_testclasses
|
||||||
iv_package = iv_package
|
).
|
||||||
CHANGING
|
|
||||||
is_properties = ls_vseointerf
|
|
||||||
).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
ASSERT 0 = 1.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
IF ms_item-obj_type = 'CLAS'.
|
|
||||||
mo_object_oriented_object->generate_locals(
|
|
||||||
is_key = ls_clskey
|
|
||||||
iv_force = seox_true
|
|
||||||
it_local_definitions = lt_locals_def
|
|
||||||
it_local_implementations = lt_locals_imp
|
|
||||||
it_local_macros = lt_locals_mac
|
|
||||||
it_local_test_classes = lt_testclasses
|
|
||||||
).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
mo_object_oriented_object->deserialize_source(
|
mo_object_oriented_object->deserialize_source(
|
||||||
is_key = ls_clskey
|
is_key = ls_clskey
|
||||||
|
@ -1341,6 +1307,67 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_CLAS IMPLEMENTATION
|
ENDCLASS. "lcl_object_CLAS IMPLEMENTATION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_object_intf DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_object_intf DEFINITION INHERITING FROM lcl_object_clas FINAL.
|
||||||
|
* todo, CLAS + INTF to be refactored, see:
|
||||||
|
* https://github.com/larshp/abapGit/issues/21
|
||||||
|
PUBLIC SECTION.
|
||||||
|
METHODS:
|
||||||
|
lif_object~deserialize REDEFINITION.
|
||||||
|
PROTECTED SECTION.
|
||||||
|
METHODS:
|
||||||
|
deserialize_abap REDEFINITION.
|
||||||
|
ENDCLASS. "lcl_object_intf DEFINITION
|
||||||
|
CLASS lcl_object_intf IMPLEMENTATION.
|
||||||
|
METHOD lif_object~deserialize.
|
||||||
|
mo_object_oriented_object = lcl_object_oriented_factory=>make( iv_object_type = ms_item-obj_type ).
|
||||||
|
|
||||||
|
deserialize_abap( io_xml = io_xml
|
||||||
|
iv_package = iv_package ).
|
||||||
|
|
||||||
|
deserialize_docu( io_xml ).
|
||||||
|
ENDMETHOD.
|
||||||
|
METHOD deserialize_abap.
|
||||||
|
DATA: ls_vseointerf TYPE vseointerf,
|
||||||
|
lt_source TYPE seop_source_string,
|
||||||
|
lt_descriptions TYPE ty_seocompotx_tt,
|
||||||
|
ls_clskey TYPE seoclskey.
|
||||||
|
ls_clskey-clsname = ms_item-obj_name.
|
||||||
|
|
||||||
|
lt_source = mo_files->read_abap( ).
|
||||||
|
|
||||||
|
io_xml->read( EXPORTING iv_name = 'VSEOINTERF'
|
||||||
|
CHANGING cg_data = ls_vseointerf ).
|
||||||
|
|
||||||
|
mo_object_oriented_object->create(
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package
|
||||||
|
CHANGING
|
||||||
|
is_properties = ls_vseointerf
|
||||||
|
).
|
||||||
|
|
||||||
|
mo_object_oriented_object->deserialize_source(
|
||||||
|
is_key = ls_clskey
|
||||||
|
it_source = lt_source
|
||||||
|
).
|
||||||
|
|
||||||
|
io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS'
|
||||||
|
CHANGING cg_data = lt_descriptions ).
|
||||||
|
|
||||||
|
mo_object_oriented_object->update_descriptions(
|
||||||
|
is_key = ls_clskey
|
||||||
|
it_descriptions = lt_descriptions
|
||||||
|
).
|
||||||
|
|
||||||
|
mo_object_oriented_object->add_to_activation_list( is_item = ms_item ).
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
CLASS ltd_spy_oo_object DEFINITION FOR TESTING.
|
CLASS ltd_spy_oo_object DEFINITION FOR TESTING.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES: lif_object_oriented_object.
|
INTERFACES: lif_object_oriented_object.
|
||||||
|
@ -1490,14 +1517,14 @@ CLASS ltc_oo_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT .
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_descriptions TYPE ty_seocompotx_tt,
|
it_descriptions TYPE ty_seocompotx_tt,
|
||||||
then_it_should_add_activation,
|
then_it_should_add_activation,
|
||||||
given_documentation_in_xml_as
|
given_documentation_in_xml_as
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_lines TYPE tlinetab
|
it_lines TYPE tlinetab
|
||||||
RAISING
|
RAISING
|
||||||
lcx_exception,
|
lcx_exception,
|
||||||
then_docu_should_be_created
|
then_docu_should_be_created
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_lines TYPE tlinetab.
|
it_lines TYPE tlinetab.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
CLASS ltc_oo_test IMPLEMENTATION.
|
CLASS ltc_oo_test IMPLEMENTATION.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user