From f14ac831bacd969082ac4cf7451ff581949ca808 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sun, 11 Feb 2018 09:16:16 +0100 Subject: [PATCH] Objects to global (#1187) * add global classes for objects * fix metadata * comment old code fix serializer class move missing interfaces * keep objects and bridge as local * fix syntax errors and remove SICF -> tadir dependency, instead tadir -> SICF * remove dependency TABL -> lcl_popups * fix indentation * remove old includes * fix parser errors * fix deserializing --- .../zcl_abapgit_comparison_null.clas.abap | 22 + .../zcl_abapgit_comparison_null.clas.xml | 19 + .../zcl_abapgit_object_acid.clas.abap} | 38 +- src/objects/zcl_abapgit_object_acid.clas.xml | 18 + .../zcl_abapgit_object_auth.clas.abap} | 38 +- src/objects/zcl_abapgit_object_auth.clas.xml | 18 + src/objects/zcl_abapgit_object_clas.clas.abap | 83 + src/objects/zcl_abapgit_object_clas.clas.xml | 17 + .../zcl_abapgit_object_clas_old.clas.abap} | 310 +- .../zcl_abapgit_object_clas_old.clas.xml | 17 + .../zcl_abapgit_object_cmpt.clas.abap} | 10 +- src/objects/zcl_abapgit_object_cmpt.clas.xml | 18 + .../zcl_abapgit_object_cus0.clas.abap} | 20 +- src/objects/zcl_abapgit_object_cus0.clas.xml | 18 + .../zcl_abapgit_object_cus1.clas.abap} | 20 +- src/objects/zcl_abapgit_object_cus1.clas.xml | 18 + .../zcl_abapgit_object_cus2.clas.abap} | 20 +- src/objects/zcl_abapgit_object_cus2.clas.xml | 18 + .../zcl_abapgit_object_dcls.clas.abap} | 10 +- src/objects/zcl_abapgit_object_dcls.clas.xml | 18 + .../zcl_abapgit_object_ddls.clas.abap} | 24 +- src/objects/zcl_abapgit_object_ddls.clas.xml | 18 + .../zcl_abapgit_object_ddlx.clas.abap} | 10 +- src/objects/zcl_abapgit_object_ddlx.clas.xml | 18 + .../zcl_abapgit_object_devc.clas.abap} | 12 +- src/objects/zcl_abapgit_object_devc.clas.xml | 18 + .../zcl_abapgit_object_dial.clas.abap} | 11 +- src/objects/zcl_abapgit_object_dial.clas.xml | 18 + .../zcl_abapgit_object_doct.clas.abap} | 19 +- src/objects/zcl_abapgit_object_doct.clas.xml | 18 + .../zcl_abapgit_object_docv.clas.abap} | 19 +- src/objects/zcl_abapgit_object_docv.clas.xml | 18 + .../zcl_abapgit_object_doma.clas.abap} | 24 +- src/objects/zcl_abapgit_object_doma.clas.xml | 18 + .../zcl_abapgit_object_dsys.clas.abap} | 20 +- src/objects/zcl_abapgit_object_dsys.clas.xml | 18 + .../zcl_abapgit_object_dtel.clas.abap} | 24 +- src/objects/zcl_abapgit_object_dtel.clas.xml | 18 + src/objects/zcl_abapgit_object_enho.clas.abap | 179 + src/objects/zcl_abapgit_object_enho.clas.xml | 18 + .../zcl_abapgit_object_enho_badi.clas.abap | 111 + .../zcl_abapgit_object_enho_badi.clas.xml | 17 + .../zcl_abapgit_object_enho_class.clas.abap | 129 + .../zcl_abapgit_object_enho_class.clas.xml | 17 + .../zcl_abapgit_object_enho_clif.clas.abap | 155 + .../zcl_abapgit_object_enho_clif.clas.xml | 17 + .../zcl_abapgit_object_enho_fugr.clas.abap | 118 + .../zcl_abapgit_object_enho_fugr.clas.xml | 17 + .../zcl_abapgit_object_enho_hook.clas.abap | 195 ++ .../zcl_abapgit_object_enho_hook.clas.xml | 17 + .../zcl_abapgit_object_enho_intf.clas.abap | 94 + .../zcl_abapgit_object_enho_intf.clas.xml | 17 + .../zcl_abapgit_object_enho_wdyc.clas.abap | 100 + .../zcl_abapgit_object_enho_wdyc.clas.xml | 17 + .../zcl_abapgit_object_enho_wdyn.clas.abap | 115 + .../zcl_abapgit_object_enho_wdyn.clas.xml | 17 + src/objects/zcl_abapgit_object_enhs.clas.abap | 182 + src/objects/zcl_abapgit_object_enhs.clas.xml | 18 + .../zcl_abapgit_object_enhs_badi_d.clas.abap | 91 + .../zcl_abapgit_object_enhs_badi_d.clas.xml | 17 + .../zcl_abapgit_object_enhs_hook_d.clas.abap | 105 + .../zcl_abapgit_object_enhs_hook_d.clas.xml | 17 + .../zcl_abapgit_object_enqu.clas.abap} | 24 +- src/objects/zcl_abapgit_object_enqu.clas.xml | 18 + .../zcl_abapgit_object_ensc.clas.abap} | 19 +- src/objects/zcl_abapgit_object_ensc.clas.xml | 18 + .../zcl_abapgit_object_form.clas.abap} | 39 +- src/objects/zcl_abapgit_object_form.clas.xml | 18 + .../zcl_abapgit_object_fugr.clas.abap} | 24 +- src/objects/zcl_abapgit_object_fugr.clas.xml | 18 + .../zcl_abapgit_object_iamu.clas.abap} | 20 +- src/objects/zcl_abapgit_object_iamu.clas.xml | 18 + .../zcl_abapgit_object_iarp.clas.abap} | 24 +- src/objects/zcl_abapgit_object_iarp.clas.xml | 18 + .../zcl_abapgit_object_iasp.clas.abap} | 24 +- src/objects/zcl_abapgit_object_iasp.clas.xml | 18 + .../zcl_abapgit_object_iatu.clas.abap} | 24 +- src/objects/zcl_abapgit_object_iatu.clas.xml | 18 + .../zcl_abapgit_object_intf.clas.abap} | 96 +- src/objects/zcl_abapgit_object_intf.clas.xml | 18 + .../zcl_abapgit_object_jobd.clas.abap} | 10 +- src/objects/zcl_abapgit_object_jobd.clas.xml | 18 + .../zcl_abapgit_object_msag.clas.abap} | 24 +- src/objects/zcl_abapgit_object_msag.clas.xml | 18 + .../zcl_abapgit_object_nrob.clas.abap} | 24 +- src/objects/zcl_abapgit_object_nrob.clas.xml | 18 + .../zcl_abapgit_object_para.clas.abap} | 24 +- src/objects/zcl_abapgit_object_para.clas.xml | 18 + .../zcl_abapgit_object_pinf.clas.abap} | 24 +- src/objects/zcl_abapgit_object_pinf.clas.xml | 18 + .../zcl_abapgit_object_prag.clas.abap} | 12 +- src/objects/zcl_abapgit_object_prag.clas.xml | 18 + .../zcl_abapgit_object_prog.clas.abap} | 28 +- src/objects/zcl_abapgit_object_prog.clas.xml | 18 + src/objects/zcl_abapgit_object_samc.clas.abap | 31 + src/objects/zcl_abapgit_object_samc.clas.xml | 18 + src/objects/zcl_abapgit_object_sapc.clas.abap | 31 + src/objects/zcl_abapgit_object_sapc.clas.xml | 18 + .../zcl_abapgit_object_sfbf.clas.abap} | 248 +- src/objects/zcl_abapgit_object_sfbf.clas.xml | 18 + .../zcl_abapgit_object_sfbs.clas.abap} | 230 +- src/objects/zcl_abapgit_object_sfbs.clas.xml | 18 + .../zcl_abapgit_object_sfpf.clas.abap} | 24 +- src/objects/zcl_abapgit_object_sfpf.clas.xml | 18 + .../zcl_abapgit_object_sfpi.clas.abap} | 26 +- src/objects/zcl_abapgit_object_sfpi.clas.xml | 18 + .../zcl_abapgit_object_sfsw.clas.abap} | 210 +- src/objects/zcl_abapgit_object_sfsw.clas.xml | 18 + .../zcl_abapgit_object_shi3.clas.abap} | 20 +- src/objects/zcl_abapgit_object_shi3.clas.xml | 18 + .../zcl_abapgit_object_shi5.clas.abap} | 20 +- src/objects/zcl_abapgit_object_shi5.clas.xml | 18 + .../zcl_abapgit_object_shi8.clas.abap} | 20 +- src/objects/zcl_abapgit_object_shi8.clas.xml | 18 + .../zcl_abapgit_object_shlp.clas.abap} | 24 +- src/objects/zcl_abapgit_object_shlp.clas.xml | 18 + .../zcl_abapgit_object_shma.clas.abap} | 20 +- src/objects/zcl_abapgit_object_shma.clas.xml | 18 + .../zcl_abapgit_object_sicf.clas.abap} | 727 ++-- src/objects/zcl_abapgit_object_sicf.clas.xml | 18 + .../zcl_abapgit_object_smim.clas.abap} | 24 +- src/objects/zcl_abapgit_object_smim.clas.xml | 18 + .../zcl_abapgit_object_splo.clas.abap} | 28 +- src/objects/zcl_abapgit_object_splo.clas.xml | 18 + .../zcl_abapgit_object_srfc.clas.abap} | 11 +- src/objects/zcl_abapgit_object_srfc.clas.xml | 18 + .../zcl_abapgit_object_ssfo.clas.abap} | 24 +- src/objects/zcl_abapgit_object_ssfo.clas.xml | 18 + .../zcl_abapgit_object_ssst.clas.abap} | 24 +- src/objects/zcl_abapgit_object_ssst.clas.xml | 18 + .../zcl_abapgit_object_styl.clas.abap} | 24 +- src/objects/zcl_abapgit_object_styl.clas.xml | 18 + .../zcl_abapgit_object_susc.clas.abap} | 24 +- src/objects/zcl_abapgit_object_susc.clas.xml | 18 + .../zcl_abapgit_object_suso.clas.abap} | 24 +- src/objects/zcl_abapgit_object_suso.clas.xml | 18 + .../zcl_abapgit_object_sxci.clas.abap} | 10 +- src/objects/zcl_abapgit_object_sxci.clas.xml | 18 + .../zcl_abapgit_object_tabl.clas.abap} | 477 ++- src/objects/zcl_abapgit_object_tabl.clas.xml | 18 + .../zcl_abapgit_object_tabl_dialog.clas.abap | 58 + .../zcl_abapgit_object_tabl_dialog.clas.xml | 19 + .../zcl_abapgit_object_tabl_valid.clas.abap | 44 + .../zcl_abapgit_object_tabl_valid.clas.xml | 18 + .../zcl_abapgit_object_tobj.clas.abap} | 24 +- src/objects/zcl_abapgit_object_tobj.clas.xml | 18 + .../zcl_abapgit_object_tran.clas.abap} | 24 +- src/objects/zcl_abapgit_object_tran.clas.xml | 18 + .../zcl_abapgit_object_ttyp.clas.abap} | 24 +- src/objects/zcl_abapgit_object_ttyp.clas.xml | 18 + .../zcl_abapgit_object_type.clas.abap} | 24 +- src/objects/zcl_abapgit_object_type.clas.xml | 18 + .../zcl_abapgit_object_ucsa.clas.abap} | 10 +- src/objects/zcl_abapgit_object_ucsa.clas.xml | 18 + .../zcl_abapgit_object_vcls.clas.abap} | 24 +- src/objects/zcl_abapgit_object_vcls.clas.xml | 18 + .../zcl_abapgit_object_view.clas.abap} | 24 +- src/objects/zcl_abapgit_object_view.clas.xml | 18 + src/objects/zcl_abapgit_object_w3ht.clas.abap | 24 + src/objects/zcl_abapgit_object_w3ht.clas.xml | 18 + src/objects/zcl_abapgit_object_w3mi.clas.abap | 24 + src/objects/zcl_abapgit_object_w3mi.clas.xml | 18 + .../zcl_abapgit_object_w3super.clas.abap} | 85 +- .../zcl_abapgit_object_w3super.clas.xml | 18 + .../zcl_abapgit_object_wapa.clas.abap} | 24 +- src/objects/zcl_abapgit_object_wapa.clas.xml | 18 + .../zcl_abapgit_object_wdya.clas.abap} | 24 +- src/objects/zcl_abapgit_object_wdya.clas.xml | 18 + .../zcl_abapgit_object_wdyn.clas.abap} | 24 +- src/objects/zcl_abapgit_object_wdyn.clas.xml | 18 + .../zcl_abapgit_object_webi.clas.abap} | 24 +- src/objects/zcl_abapgit_object_webi.clas.xml | 18 + .../zcl_abapgit_object_xslt.clas.abap} | 24 +- src/objects/zcl_abapgit_object_xslt.clas.xml | 18 + .../zcl_abapgit_objects_program.clas.abap | 846 +++++ .../zcl_abapgit_objects_program.clas.xml | 17 + .../zcl_abapgit_objects_saxx_super.clas.abap | 378 ++ .../zcl_abapgit_objects_saxx_super.clas.xml | 18 + .../zcl_abapgit_objects_super.clas.abap | 298 ++ .../zcl_abapgit_objects_super.clas.xml | 18 + src/objects/zcl_abapgit_oo_base.clas.abap | 260 ++ src/objects/zcl_abapgit_oo_base.clas.xml | 18 + src/objects/zcl_abapgit_oo_class.clas.abap | 281 ++ src/objects/zcl_abapgit_oo_class.clas.xml | 17 + .../zcl_abapgit_oo_class_new.clas.abap} | 107 +- src/objects/zcl_abapgit_oo_class_new.clas.xml | 17 + src/objects/zcl_abapgit_oo_factory.clas.abap | 27 + src/objects/zcl_abapgit_oo_factory.clas.xml | 17 + .../zcl_abapgit_oo_interface.clas.abap | 72 + src/objects/zcl_abapgit_oo_interface.clas.xml | 17 + .../zcl_abapgit_oo_serializer.clas.abap | 290 ++ ...bapgit_oo_serializer.clas.testclasses.abap | 174 + .../zcl_abapgit_oo_serializer.clas.xml | 18 + src/objects/zif_abapgit_object_enho.intf.abap | 13 + src/objects/zif_abapgit_object_enho.intf.xml | 16 + src/objects/zif_abapgit_object_enhs.intf.abap | 15 + src/objects/zif_abapgit_object_enhs.intf.xml | 16 + .../zif_abapgit_oo_object_fnc.intf.abap | 136 + .../zif_abapgit_oo_object_fnc.intf.xml | 16 + src/zabapgit.prog.abap | 2 - src/zabapgit_object_acid.prog.xml | 22 - src/zabapgit_object_auth.prog.xml | 22 - src/zabapgit_object_clas.prog.xml | 22 - src/zabapgit_object_clas_new.prog.xml | 22 - src/zabapgit_object_cmpt.prog.xml | 22 - src/zabapgit_object_cus0.prog.xml | 25 - src/zabapgit_object_cus1.prog.xml | 25 - src/zabapgit_object_cus2.prog.xml | 25 - src/zabapgit_object_dcls.prog.xml | 22 - src/zabapgit_object_ddls.prog.xml | 22 - src/zabapgit_object_ddlx.prog.xml | 25 - src/zabapgit_object_devc.prog.xml | 25 - src/zabapgit_object_dial.prog.xml | 25 - src/zabapgit_object_doct.prog.xml | 22 - src/zabapgit_object_docv.prog.xml | 22 - src/zabapgit_object_doma.prog.xml | 22 - src/zabapgit_object_dsys.prog.xml | 25 - src/zabapgit_object_dtel.prog.xml | 22 - src/zabapgit_object_enho.prog.abap | 1314 ------- src/zabapgit_object_enho.prog.xml | 22 - src/zabapgit_object_enhs.prog.abap | 421 --- src/zabapgit_object_enhs.prog.xml | 22 - src/zabapgit_object_enqu.prog.xml | 22 - src/zabapgit_object_ensc.prog.xml | 22 - src/zabapgit_object_form.prog.xml | 25 - src/zabapgit_object_fugr.prog.xml | 22 - src/zabapgit_object_iamu.prog.xml | 25 - src/zabapgit_object_iarp.prog.xml | 22 - src/zabapgit_object_iasp.prog.xml | 22 - src/zabapgit_object_iatu.prog.xml | 22 - src/zabapgit_object_intf.prog.xml | 22 - src/zabapgit_object_jobd.prog.xml | 25 - src/zabapgit_object_msag.prog.xml | 22 - src/zabapgit_object_nrob.prog.xml | 22 - src/zabapgit_object_oo_factory.prog.abap | 30 - src/zabapgit_object_oo_factory.prog.xml | 25 - src/zabapgit_object_oo_functions.prog.abap | 686 ---- src/zabapgit_object_oo_functions.prog.xml | 25 - src/zabapgit_object_para.prog.xml | 22 - src/zabapgit_object_pinf.prog.xml | 22 - src/zabapgit_object_prag.prog.xml | 25 - src/zabapgit_object_prog.prog.xml | 22 - src/zabapgit_object_samc.prog.abap | 40 - src/zabapgit_object_samc.prog.xml | 22 - src/zabapgit_object_sapc.prog.abap | 40 - src/zabapgit_object_sapc.prog.xml | 22 - src/zabapgit_object_serializing.prog.abap | 81 - src/zabapgit_object_serializing.prog.xml | 22 - src/zabapgit_object_sfbf.prog.xml | 22 - src/zabapgit_object_sfbs.prog.xml | 22 - src/zabapgit_object_sfpf.prog.xml | 22 - src/zabapgit_object_sfpi.prog.xml | 22 - src/zabapgit_object_sfsw.prog.xml | 22 - src/zabapgit_object_shi3.prog.xml | 22 - src/zabapgit_object_shi5.prog.xml | 25 - src/zabapgit_object_shi8.prog.xml | 25 - src/zabapgit_object_shlp.prog.xml | 22 - src/zabapgit_object_shma.prog.xml | 25 - src/zabapgit_object_sicf.prog.xml | 22 - src/zabapgit_object_smim.prog.xml | 22 - src/zabapgit_object_splo.prog.xml | 22 - src/zabapgit_object_srfc.prog.xml | 25 - src/zabapgit_object_ssfo.prog.xml | 22 - src/zabapgit_object_ssst.prog.xml | 22 - src/zabapgit_object_styl.prog.xml | 22 - src/zabapgit_object_susc.prog.xml | 22 - src/zabapgit_object_suso.prog.xml | 22 - src/zabapgit_object_sxci.prog.xml | 25 - src/zabapgit_object_tabl.prog.xml | 22 - src/zabapgit_object_tabl_valid.prog.abap | 221 -- src/zabapgit_object_tabl_valid.prog.xml | 22 - src/zabapgit_object_tobj.prog.xml | 22 - src/zabapgit_object_tran.prog.xml | 22 - src/zabapgit_object_ttyp.prog.xml | 22 - src/zabapgit_object_type.prog.xml | 22 - src/zabapgit_object_ucsa.prog.xml | 25 - src/zabapgit_object_vcls.prog.xml | 22 - src/zabapgit_object_view.prog.xml | 22 - src/zabapgit_object_w3xx.prog.xml | 22 - src/zabapgit_object_wapa.prog.xml | 22 - src/zabapgit_object_wdya.prog.xml | 22 - src/zabapgit_object_wdyn.prog.xml | 22 - src/zabapgit_object_webi.prog.xml | 22 - src/zabapgit_object_xslt.prog.xml | 22 - src/zabapgit_objects.prog.abap | 3050 ++++++++--------- src/zabapgit_objects_impl.prog.abap | 13 +- src/zabapgit_skip_objects.prog.abap | 4 +- src/zabapgit_tadir.prog.abap | 77 +- src/zabapgit_unit_test.prog.abap | 348 +- src/zabapgit_unit_test_clas_intf.prog.abap | 2675 ++++++++------- 290 files changed, 10827 insertions(+), 10120 deletions(-) create mode 100644 src/objects/zcl_abapgit_comparison_null.clas.abap create mode 100644 src/objects/zcl_abapgit_comparison_null.clas.xml rename src/{zabapgit_object_acid.prog.abap => objects/zcl_abapgit_object_acid.clas.abap} (68%) create mode 100644 src/objects/zcl_abapgit_object_acid.clas.xml rename src/{zabapgit_object_auth.prog.abap => objects/zcl_abapgit_object_auth.clas.abap} (65%) create mode 100644 src/objects/zcl_abapgit_object_auth.clas.xml create mode 100644 src/objects/zcl_abapgit_object_clas.clas.abap create mode 100644 src/objects/zcl_abapgit_object_clas.clas.xml rename src/{zabapgit_object_clas.prog.abap => objects/zcl_abapgit_object_clas_old.clas.abap} (53%) create mode 100644 src/objects/zcl_abapgit_object_clas_old.clas.xml rename src/{zabapgit_object_cmpt.prog.abap => objects/zcl_abapgit_object_cmpt.clas.abap} (92%) create mode 100644 src/objects/zcl_abapgit_object_cmpt.clas.xml rename src/{zabapgit_object_cus0.prog.abap => objects/zcl_abapgit_object_cus0.clas.abap} (81%) create mode 100644 src/objects/zcl_abapgit_object_cus0.clas.xml rename src/{zabapgit_object_cus1.prog.abap => objects/zcl_abapgit_object_cus1.clas.abap} (85%) create mode 100644 src/objects/zcl_abapgit_object_cus1.clas.xml rename src/{zabapgit_object_cus2.prog.abap => objects/zcl_abapgit_object_cus2.clas.abap} (84%) create mode 100644 src/objects/zcl_abapgit_object_cus2.clas.xml rename src/{zabapgit_object_dcls.prog.abap => objects/zcl_abapgit_object_dcls.clas.abap} (92%) create mode 100644 src/objects/zcl_abapgit_object_dcls.clas.xml rename src/{zabapgit_object_ddls.prog.abap => objects/zcl_abapgit_object_ddls.clas.abap} (88%) create mode 100644 src/objects/zcl_abapgit_object_ddls.clas.xml rename src/{zabapgit_object_ddlx.prog.abap => objects/zcl_abapgit_object_ddlx.clas.abap} (94%) create mode 100644 src/objects/zcl_abapgit_object_ddlx.clas.xml rename src/{zabapgit_object_devc.prog.abap => objects/zcl_abapgit_object_devc.clas.abap} (98%) create mode 100644 src/objects/zcl_abapgit_object_devc.clas.xml rename src/{zabapgit_object_dial.prog.abap => objects/zcl_abapgit_object_dial.clas.abap} (92%) create mode 100644 src/objects/zcl_abapgit_object_dial.clas.xml rename src/{zabapgit_object_doct.prog.abap => objects/zcl_abapgit_object_doct.clas.abap} (86%) create mode 100644 src/objects/zcl_abapgit_object_doct.clas.xml rename src/{zabapgit_object_docv.prog.abap => objects/zcl_abapgit_object_docv.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_docv.clas.xml rename src/{zabapgit_object_doma.prog.abap => objects/zcl_abapgit_object_doma.clas.abap} (91%) create mode 100644 src/objects/zcl_abapgit_object_doma.clas.xml rename src/{zabapgit_object_dsys.prog.abap => objects/zcl_abapgit_object_dsys.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_dsys.clas.xml rename src/{zabapgit_object_dtel.prog.abap => objects/zcl_abapgit_object_dtel.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_dtel.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_badi.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_badi.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_class.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_class.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_clif.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_clif.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_fugr.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_fugr.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_hook.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_hook.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_intf.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_intf.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_wdyc.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_wdyc.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enho_wdyn.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enho_wdyn.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enhs.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enhs.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enhs_badi_d.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enhs_badi_d.clas.xml create mode 100644 src/objects/zcl_abapgit_object_enhs_hook_d.clas.abap create mode 100644 src/objects/zcl_abapgit_object_enhs_hook_d.clas.xml rename src/{zabapgit_object_enqu.prog.abap => objects/zcl_abapgit_object_enqu.clas.abap} (81%) create mode 100644 src/objects/zcl_abapgit_object_enqu.clas.xml rename src/{zabapgit_object_ensc.prog.abap => objects/zcl_abapgit_object_ensc.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_ensc.clas.xml rename src/{zabapgit_object_form.prog.abap => objects/zcl_abapgit_object_form.clas.abap} (88%) create mode 100644 src/objects/zcl_abapgit_object_form.clas.xml rename src/{zabapgit_object_fugr.prog.abap => objects/zcl_abapgit_object_fugr.clas.abap} (96%) create mode 100644 src/objects/zcl_abapgit_object_fugr.clas.xml rename src/{zabapgit_object_iamu.prog.abap => objects/zcl_abapgit_object_iamu.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_iamu.clas.xml rename src/{zabapgit_object_iarp.prog.abap => objects/zcl_abapgit_object_iarp.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_iarp.clas.xml rename src/{zabapgit_object_iasp.prog.abap => objects/zcl_abapgit_object_iasp.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_iasp.clas.xml rename src/{zabapgit_object_iatu.prog.abap => objects/zcl_abapgit_object_iatu.clas.abap} (83%) create mode 100644 src/objects/zcl_abapgit_object_iatu.clas.xml rename src/{zabapgit_object_intf.prog.abap => objects/zcl_abapgit_object_intf.clas.abap} (70%) create mode 100644 src/objects/zcl_abapgit_object_intf.clas.xml rename src/{zabapgit_object_jobd.prog.abap => objects/zcl_abapgit_object_jobd.clas.abap} (93%) create mode 100644 src/objects/zcl_abapgit_object_jobd.clas.xml rename src/{zabapgit_object_msag.prog.abap => objects/zcl_abapgit_object_msag.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_msag.clas.xml rename src/{zabapgit_object_nrob.prog.abap => objects/zcl_abapgit_object_nrob.clas.abap} (87%) create mode 100644 src/objects/zcl_abapgit_object_nrob.clas.xml rename src/{zabapgit_object_para.prog.abap => objects/zcl_abapgit_object_para.clas.abap} (77%) create mode 100644 src/objects/zcl_abapgit_object_para.clas.xml rename src/{zabapgit_object_pinf.prog.abap => objects/zcl_abapgit_object_pinf.clas.abap} (91%) create mode 100644 src/objects/zcl_abapgit_object_pinf.clas.xml rename src/{zabapgit_object_prag.prog.abap => objects/zcl_abapgit_object_prag.clas.abap} (90%) create mode 100644 src/objects/zcl_abapgit_object_prag.clas.xml rename src/{zabapgit_object_prog.prog.abap => objects/zcl_abapgit_object_prog.clas.abap} (84%) create mode 100644 src/objects/zcl_abapgit_object_prog.clas.xml create mode 100644 src/objects/zcl_abapgit_object_samc.clas.abap create mode 100644 src/objects/zcl_abapgit_object_samc.clas.xml create mode 100644 src/objects/zcl_abapgit_object_sapc.clas.abap create mode 100644 src/objects/zcl_abapgit_object_sapc.clas.xml rename src/{zabapgit_object_sfbf.prog.abap => objects/zcl_abapgit_object_sfbf.clas.abap} (86%) create mode 100644 src/objects/zcl_abapgit_object_sfbf.clas.xml rename src/{zabapgit_object_sfbs.prog.abap => objects/zcl_abapgit_object_sfbs.clas.abap} (83%) create mode 100644 src/objects/zcl_abapgit_object_sfbs.clas.xml rename src/{zabapgit_object_sfpf.prog.abap => objects/zcl_abapgit_object_sfpf.clas.abap} (84%) create mode 100644 src/objects/zcl_abapgit_object_sfpf.clas.xml rename src/{zabapgit_object_sfpi.prog.abap => objects/zcl_abapgit_object_sfpi.clas.abap} (79%) create mode 100644 src/objects/zcl_abapgit_object_sfpi.clas.xml rename src/{zabapgit_object_sfsw.prog.abap => objects/zcl_abapgit_object_sfsw.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_sfsw.clas.xml rename src/{zabapgit_object_shi3.prog.abap => objects/zcl_abapgit_object_shi3.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_shi3.clas.xml rename src/{zabapgit_object_shi5.prog.abap => objects/zcl_abapgit_object_shi5.clas.abap} (79%) create mode 100644 src/objects/zcl_abapgit_object_shi5.clas.xml rename src/{zabapgit_object_shi8.prog.abap => objects/zcl_abapgit_object_shi8.clas.abap} (81%) create mode 100644 src/objects/zcl_abapgit_object_shi8.clas.xml rename src/{zabapgit_object_shlp.prog.abap => objects/zcl_abapgit_object_shlp.clas.abap} (83%) create mode 100644 src/objects/zcl_abapgit_object_shlp.clas.xml rename src/{zabapgit_object_shma.prog.abap => objects/zcl_abapgit_object_shma.clas.abap} (90%) create mode 100644 src/objects/zcl_abapgit_object_shma.clas.xml rename src/{zabapgit_object_sicf.prog.abap => objects/zcl_abapgit_object_sicf.clas.abap} (77%) create mode 100644 src/objects/zcl_abapgit_object_sicf.clas.xml rename src/{zabapgit_object_smim.prog.abap => objects/zcl_abapgit_object_smim.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_smim.clas.xml rename src/{zabapgit_object_splo.prog.abap => objects/zcl_abapgit_object_splo.clas.abap} (73%) create mode 100644 src/objects/zcl_abapgit_object_splo.clas.xml rename src/{zabapgit_object_srfc.prog.abap => objects/zcl_abapgit_object_srfc.clas.abap} (92%) create mode 100644 src/objects/zcl_abapgit_object_srfc.clas.xml rename src/{zabapgit_object_ssfo.prog.abap => objects/zcl_abapgit_object_ssfo.clas.abap} (89%) create mode 100644 src/objects/zcl_abapgit_object_ssfo.clas.xml rename src/{zabapgit_object_ssst.prog.abap => objects/zcl_abapgit_object_ssst.clas.abap} (87%) create mode 100644 src/objects/zcl_abapgit_object_ssst.clas.xml rename src/{zabapgit_object_styl.prog.abap => objects/zcl_abapgit_object_styl.clas.abap} (81%) create mode 100644 src/objects/zcl_abapgit_object_styl.clas.xml rename src/{zabapgit_object_susc.prog.abap => objects/zcl_abapgit_object_susc.clas.abap} (72%) create mode 100644 src/objects/zcl_abapgit_object_susc.clas.xml rename src/{zabapgit_object_suso.prog.abap => objects/zcl_abapgit_object_suso.clas.abap} (83%) create mode 100644 src/objects/zcl_abapgit_object_suso.clas.xml rename src/{zabapgit_object_sxci.prog.abap => objects/zcl_abapgit_object_sxci.clas.abap} (96%) create mode 100644 src/objects/zcl_abapgit_object_sxci.clas.xml rename src/{zabapgit_object_tabl.prog.abap => objects/zcl_abapgit_object_tabl.clas.abap} (92%) create mode 100644 src/objects/zcl_abapgit_object_tabl.clas.xml create mode 100644 src/objects/zcl_abapgit_object_tabl_dialog.clas.abap create mode 100644 src/objects/zcl_abapgit_object_tabl_dialog.clas.xml create mode 100644 src/objects/zcl_abapgit_object_tabl_valid.clas.abap create mode 100644 src/objects/zcl_abapgit_object_tabl_valid.clas.xml rename src/{zabapgit_object_tobj.prog.abap => objects/zcl_abapgit_object_tobj.clas.abap} (88%) create mode 100644 src/objects/zcl_abapgit_object_tobj.clas.xml rename src/{zabapgit_object_tran.prog.abap => objects/zcl_abapgit_object_tran.clas.abap} (93%) create mode 100644 src/objects/zcl_abapgit_object_tran.clas.xml rename src/{zabapgit_object_ttyp.prog.abap => objects/zcl_abapgit_object_ttyp.clas.abap} (81%) create mode 100644 src/objects/zcl_abapgit_object_ttyp.clas.xml rename src/{zabapgit_object_type.prog.abap => objects/zcl_abapgit_object_type.clas.abap} (83%) create mode 100644 src/objects/zcl_abapgit_object_type.clas.xml rename src/{zabapgit_object_ucsa.prog.abap => objects/zcl_abapgit_object_ucsa.clas.abap} (94%) create mode 100644 src/objects/zcl_abapgit_object_ucsa.clas.xml rename src/{zabapgit_object_vcls.prog.abap => objects/zcl_abapgit_object_vcls.clas.abap} (85%) create mode 100644 src/objects/zcl_abapgit_object_vcls.clas.xml rename src/{zabapgit_object_view.prog.abap => objects/zcl_abapgit_object_view.clas.abap} (87%) create mode 100644 src/objects/zcl_abapgit_object_view.clas.xml create mode 100644 src/objects/zcl_abapgit_object_w3ht.clas.abap create mode 100644 src/objects/zcl_abapgit_object_w3ht.clas.xml create mode 100644 src/objects/zcl_abapgit_object_w3mi.clas.abap create mode 100644 src/objects/zcl_abapgit_object_w3mi.clas.xml rename src/{zabapgit_object_w3xx.prog.abap => objects/zcl_abapgit_object_w3super.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_w3super.clas.xml rename src/{zabapgit_object_wapa.prog.abap => objects/zcl_abapgit_object_wapa.clas.abap} (92%) create mode 100644 src/objects/zcl_abapgit_object_wapa.clas.xml rename src/{zabapgit_object_wdya.prog.abap => objects/zcl_abapgit_object_wdya.clas.abap} (86%) create mode 100644 src/objects/zcl_abapgit_object_wdya.clas.xml rename src/{zabapgit_object_wdyn.prog.abap => objects/zcl_abapgit_object_wdyn.clas.abap} (96%) create mode 100644 src/objects/zcl_abapgit_object_wdyn.clas.xml rename src/{zabapgit_object_webi.prog.abap => objects/zcl_abapgit_object_webi.clas.abap} (93%) create mode 100644 src/objects/zcl_abapgit_object_webi.clas.xml rename src/{zabapgit_object_xslt.prog.abap => objects/zcl_abapgit_object_xslt.clas.abap} (82%) create mode 100644 src/objects/zcl_abapgit_object_xslt.clas.xml create mode 100644 src/objects/zcl_abapgit_objects_program.clas.abap create mode 100644 src/objects/zcl_abapgit_objects_program.clas.xml create mode 100644 src/objects/zcl_abapgit_objects_saxx_super.clas.abap create mode 100644 src/objects/zcl_abapgit_objects_saxx_super.clas.xml create mode 100644 src/objects/zcl_abapgit_objects_super.clas.abap create mode 100644 src/objects/zcl_abapgit_objects_super.clas.xml create mode 100644 src/objects/zcl_abapgit_oo_base.clas.abap create mode 100644 src/objects/zcl_abapgit_oo_base.clas.xml create mode 100644 src/objects/zcl_abapgit_oo_class.clas.abap create mode 100644 src/objects/zcl_abapgit_oo_class.clas.xml rename src/{zabapgit_object_clas_new.prog.abap => objects/zcl_abapgit_oo_class_new.clas.abap} (78%) create mode 100644 src/objects/zcl_abapgit_oo_class_new.clas.xml create mode 100644 src/objects/zcl_abapgit_oo_factory.clas.abap create mode 100644 src/objects/zcl_abapgit_oo_factory.clas.xml create mode 100644 src/objects/zcl_abapgit_oo_interface.clas.abap create mode 100644 src/objects/zcl_abapgit_oo_interface.clas.xml create mode 100644 src/objects/zcl_abapgit_oo_serializer.clas.abap create mode 100644 src/objects/zcl_abapgit_oo_serializer.clas.testclasses.abap create mode 100644 src/objects/zcl_abapgit_oo_serializer.clas.xml create mode 100644 src/objects/zif_abapgit_object_enho.intf.abap create mode 100644 src/objects/zif_abapgit_object_enho.intf.xml create mode 100644 src/objects/zif_abapgit_object_enhs.intf.abap create mode 100644 src/objects/zif_abapgit_object_enhs.intf.xml create mode 100644 src/objects/zif_abapgit_oo_object_fnc.intf.abap create mode 100644 src/objects/zif_abapgit_oo_object_fnc.intf.xml delete mode 100644 src/zabapgit_object_acid.prog.xml delete mode 100644 src/zabapgit_object_auth.prog.xml delete mode 100644 src/zabapgit_object_clas.prog.xml delete mode 100644 src/zabapgit_object_clas_new.prog.xml delete mode 100644 src/zabapgit_object_cmpt.prog.xml delete mode 100644 src/zabapgit_object_cus0.prog.xml delete mode 100644 src/zabapgit_object_cus1.prog.xml delete mode 100644 src/zabapgit_object_cus2.prog.xml delete mode 100644 src/zabapgit_object_dcls.prog.xml delete mode 100644 src/zabapgit_object_ddls.prog.xml delete mode 100644 src/zabapgit_object_ddlx.prog.xml delete mode 100644 src/zabapgit_object_devc.prog.xml delete mode 100644 src/zabapgit_object_dial.prog.xml delete mode 100644 src/zabapgit_object_doct.prog.xml delete mode 100644 src/zabapgit_object_docv.prog.xml delete mode 100644 src/zabapgit_object_doma.prog.xml delete mode 100644 src/zabapgit_object_dsys.prog.xml delete mode 100644 src/zabapgit_object_dtel.prog.xml delete mode 100644 src/zabapgit_object_enho.prog.abap delete mode 100644 src/zabapgit_object_enho.prog.xml delete mode 100644 src/zabapgit_object_enhs.prog.abap delete mode 100644 src/zabapgit_object_enhs.prog.xml delete mode 100644 src/zabapgit_object_enqu.prog.xml delete mode 100644 src/zabapgit_object_ensc.prog.xml delete mode 100644 src/zabapgit_object_form.prog.xml delete mode 100644 src/zabapgit_object_fugr.prog.xml delete mode 100644 src/zabapgit_object_iamu.prog.xml delete mode 100644 src/zabapgit_object_iarp.prog.xml delete mode 100644 src/zabapgit_object_iasp.prog.xml delete mode 100644 src/zabapgit_object_iatu.prog.xml delete mode 100644 src/zabapgit_object_intf.prog.xml delete mode 100644 src/zabapgit_object_jobd.prog.xml delete mode 100644 src/zabapgit_object_msag.prog.xml delete mode 100644 src/zabapgit_object_nrob.prog.xml delete mode 100644 src/zabapgit_object_oo_factory.prog.abap delete mode 100644 src/zabapgit_object_oo_factory.prog.xml delete mode 100644 src/zabapgit_object_oo_functions.prog.abap delete mode 100644 src/zabapgit_object_oo_functions.prog.xml delete mode 100644 src/zabapgit_object_para.prog.xml delete mode 100644 src/zabapgit_object_pinf.prog.xml delete mode 100644 src/zabapgit_object_prag.prog.xml delete mode 100644 src/zabapgit_object_prog.prog.xml delete mode 100644 src/zabapgit_object_samc.prog.abap delete mode 100644 src/zabapgit_object_samc.prog.xml delete mode 100644 src/zabapgit_object_sapc.prog.abap delete mode 100644 src/zabapgit_object_sapc.prog.xml delete mode 100644 src/zabapgit_object_serializing.prog.abap delete mode 100644 src/zabapgit_object_serializing.prog.xml delete mode 100644 src/zabapgit_object_sfbf.prog.xml delete mode 100644 src/zabapgit_object_sfbs.prog.xml delete mode 100644 src/zabapgit_object_sfpf.prog.xml delete mode 100644 src/zabapgit_object_sfpi.prog.xml delete mode 100644 src/zabapgit_object_sfsw.prog.xml delete mode 100644 src/zabapgit_object_shi3.prog.xml delete mode 100644 src/zabapgit_object_shi5.prog.xml delete mode 100644 src/zabapgit_object_shi8.prog.xml delete mode 100644 src/zabapgit_object_shlp.prog.xml delete mode 100644 src/zabapgit_object_shma.prog.xml delete mode 100644 src/zabapgit_object_sicf.prog.xml delete mode 100644 src/zabapgit_object_smim.prog.xml delete mode 100644 src/zabapgit_object_splo.prog.xml delete mode 100644 src/zabapgit_object_srfc.prog.xml delete mode 100644 src/zabapgit_object_ssfo.prog.xml delete mode 100644 src/zabapgit_object_ssst.prog.xml delete mode 100644 src/zabapgit_object_styl.prog.xml delete mode 100644 src/zabapgit_object_susc.prog.xml delete mode 100644 src/zabapgit_object_suso.prog.xml delete mode 100644 src/zabapgit_object_sxci.prog.xml delete mode 100644 src/zabapgit_object_tabl.prog.xml delete mode 100644 src/zabapgit_object_tabl_valid.prog.abap delete mode 100644 src/zabapgit_object_tabl_valid.prog.xml delete mode 100644 src/zabapgit_object_tobj.prog.xml delete mode 100644 src/zabapgit_object_tran.prog.xml delete mode 100644 src/zabapgit_object_ttyp.prog.xml delete mode 100644 src/zabapgit_object_type.prog.xml delete mode 100644 src/zabapgit_object_ucsa.prog.xml delete mode 100644 src/zabapgit_object_vcls.prog.xml delete mode 100644 src/zabapgit_object_view.prog.xml delete mode 100644 src/zabapgit_object_w3xx.prog.xml delete mode 100644 src/zabapgit_object_wapa.prog.xml delete mode 100644 src/zabapgit_object_wdya.prog.xml delete mode 100644 src/zabapgit_object_wdyn.prog.xml delete mode 100644 src/zabapgit_object_webi.prog.xml delete mode 100644 src/zabapgit_object_xslt.prog.xml diff --git a/src/objects/zcl_abapgit_comparison_null.clas.abap b/src/objects/zcl_abapgit_comparison_null.clas.abap new file mode 100644 index 000000000..696593686 --- /dev/null +++ b/src/objects/zcl_abapgit_comparison_null.clas.abap @@ -0,0 +1,22 @@ +CLASS zcl_abapgit_comparison_null DEFINITION PUBLIC FINAL CREATE PUBLIC. + + PUBLIC SECTION. + INTERFACES zif_abapgit_comparison_result . + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_COMPARISON_NULL IMPLEMENTATION. + + + METHOD zif_abapgit_comparison_result~is_result_complete_halt. + rv_response = abap_false. + ENDMETHOD. + + + METHOD zif_abapgit_comparison_result~show_confirmation_dialog. + RETURN. + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/zcl_abapgit_comparison_null.clas.xml b/src/objects/zcl_abapgit_comparison_null.clas.xml new file mode 100644 index 000000000..05c0a2258 --- /dev/null +++ b/src/objects/zcl_abapgit_comparison_null.clas.xml @@ -0,0 +1,19 @@ + + + + + + ZCL_ABAPGIT_COMPARISON_NULL + 1 + E + Null result + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_acid.prog.abap b/src/objects/zcl_abapgit_object_acid.clas.abap similarity index 68% rename from src/zabapgit_object_acid.prog.abap rename to src/objects/zcl_abapgit_object_acid.clas.abap index e2d2ec95f..df68176b8 100644 --- a/src/zabapgit_object_acid.prog.abap +++ b/src/objects/zcl_abapgit_object_acid.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_ACID -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_acid DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_acid DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_acid DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,22 +9,17 @@ CLASS lcl_object_acid DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(ro_aab) TYPE REF TO cl_aab_id RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_acid DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_acid IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_acid IMPLEMENTATION. +CLASS zcl_abapgit_object_acid IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. - ENDMETHOD. "lif_object~has_changed_since + ENDMETHOD. "zif_abapgit_object~has_changed_since METHOD zif_abapgit_object~get_metadata. rs_metadata = get_metadata( ). - ENDMETHOD. "lif_object~get_metadata + ENDMETHOD. "zif_abapgit_object~get_metadata METHOD zif_abapgit_object~changed_by. * looks like "changed by user" is not stored in the database @@ -78,7 +64,7 @@ CLASS lcl_object_acid IMPLEMENTATION. io_xml->add( iv_name = 'DESCRIPTION' ig_data = lv_description ). - ENDMETHOD. "lif_object~serialize + ENDMETHOD. "zif_abapgit_object~serialize METHOD zif_abapgit_object~deserialize. @@ -95,7 +81,7 @@ CLASS lcl_object_acid IMPLEMENTATION. tadir_insert( iv_package ). lo_aab->save( ). - ENDMETHOD. "lif_object~deserialize + ENDMETHOD. "zif_abapgit_object~deserialize METHOD zif_abapgit_object~delete. @@ -121,7 +107,7 @@ CLASS lcl_object_acid IMPLEMENTATION. ENDIF. lo_aab->dequeue( ). - ENDMETHOD. "lif_object~delete + ENDMETHOD. "zif_abapgit_object~delete METHOD zif_abapgit_object~exists. @@ -136,7 +122,7 @@ CLASS lcl_object_acid IMPLEMENTATION. ex_state = lv_state ). rv_bool = boolc( lv_state = abap_true ). - ENDMETHOD. "lif_object~exists + ENDMETHOD. "zif_abapgit_object~exists METHOD zif_abapgit_object~jump. @@ -147,10 +133,10 @@ CLASS lcl_object_acid IMPLEMENTATION. object_type = 'ACID' in_new_window = abap_true. - ENDMETHOD. "lif_object~jump + ENDMETHOD. "zif_abapgit_object~jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_acid IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_acid IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_acid.clas.xml b/src/objects/zcl_abapgit_object_acid.clas.xml new file mode 100644 index 000000000..72f11a19b --- /dev/null +++ b/src/objects/zcl_abapgit_object_acid.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ACID + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_auth.prog.abap b/src/objects/zcl_abapgit_object_auth.clas.abap similarity index 65% rename from src/zabapgit_object_auth.prog.abap rename to src/objects/zcl_abapgit_object_auth.clas.abap index 84baea531..07be90d25 100644 --- a/src/zabapgit_object_auth.prog.abap +++ b/src/objects/zcl_abapgit_object_auth.clas.abap @@ -1,34 +1,20 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_AUTH -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_auth DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_auth DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_auth DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_auth DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_auth IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_auth IMPLEMENTATION. +CLASS zcl_abapgit_object_auth IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. - ENDMETHOD. "lif_object~has_changed_since + ENDMETHOD. "zif_abapgit_object~has_changed_since METHOD zif_abapgit_object~get_metadata. rs_metadata = get_metadata( ). - ENDMETHOD. "lif_object~get_metadata + ENDMETHOD. "zif_abapgit_object~get_metadata METHOD zif_abapgit_object~changed_by. * looks like "changed by user" is not stored in the database @@ -49,7 +35,7 @@ CLASS lcl_object_auth IMPLEMENTATION. io_xml->add( iv_name = 'AUTHX' ig_data = ls_authx ). - ENDMETHOD. "lif_object~serialize + ENDMETHOD. "zif_abapgit_object~serialize METHOD zif_abapgit_object~deserialize. * see include LSAUT_FIELDF02 @@ -75,7 +61,7 @@ CLASS lcl_object_auth IMPLEMENTATION. CALL FUNCTION 'DB_COMMIT'. lo_auth->set_authfld_info_from_db( ls_authx-fieldname ). - ENDMETHOD. "lif_object~deserialize + ENDMETHOD. "zif_abapgit_object~deserialize METHOD zif_abapgit_object~delete. @@ -99,7 +85,7 @@ CLASS lcl_object_auth IMPLEMENTATION. zcx_abapgit_exception=>raise( 'error from SUSR_AUTF_DELETE_FIELD' ). ENDIF. - ENDMETHOD. "lif_object~delete + ENDMETHOD. "zif_abapgit_object~delete METHOD zif_abapgit_object~exists. @@ -111,7 +97,7 @@ CLASS lcl_object_auth IMPLEMENTATION. WHERE fieldname = ms_item-obj_name. "#EC CI_GENBUFF rv_bool = boolc( sy-subrc = 0 ). - ENDMETHOD. "lif_object~exists + ENDMETHOD. "zif_abapgit_object~exists METHOD zif_abapgit_object~jump. @@ -125,10 +111,10 @@ CLASS lcl_object_auth IMPLEMENTATION. id_field = field id_wbo_mode = abap_false. - ENDMETHOD. "lif_object~jump + ENDMETHOD. "zif_abapgit_object~jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_auth IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_auth IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_auth.clas.xml b/src/objects/zcl_abapgit_object_auth.clas.xml new file mode 100644 index 000000000..634eb3ff3 --- /dev/null +++ b/src/objects/zcl_abapgit_object_auth.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_AUTH + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_clas.clas.abap b/src/objects/zcl_abapgit_object_clas.clas.abap new file mode 100644 index 000000000..a87e95329 --- /dev/null +++ b/src/objects/zcl_abapgit_object_clas.clas.abap @@ -0,0 +1,83 @@ +CLASS zcl_abapgit_object_clas DEFINITION PUBLIC INHERITING FROM zcl_abapgit_object_clas_old. + + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + iv_language TYPE spras. + + PROTECTED SECTION. + METHODS: + deserialize_abap REDEFINITION. + +ENDCLASS. + +CLASS zcl_abapgit_object_clas IMPLEMENTATION. + + METHOD constructor. + super->constructor( is_item = is_item + iv_language = iv_language ). + + CREATE OBJECT mo_object_oriented_object_fct TYPE zcl_abapgit_oo_class_new. + ENDMETHOD. + + METHOD deserialize_abap. +* same as in zcl_abapgit_object_clas, but without "mo_object_oriented_object_fct->add_to_activation_list" + + DATA: ls_vseoclass TYPE vseoclass, + lt_source TYPE seop_source_string, + lt_local_definitions TYPE seop_source_string, + lt_local_implementations TYPE seop_source_string, + lt_local_macros TYPE seop_source_string, + lt_test_classes TYPE seop_source_string, + lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, + ls_class_key TYPE seoclskey. + + + lt_source = mo_files->read_abap( ). + + lt_local_definitions = mo_files->read_abap( iv_extra = 'locals_def' + iv_error = abap_false ). "#EC NOTEXT + + lt_local_implementations = mo_files->read_abap( iv_extra = 'locals_imp' + iv_error = abap_false ). "#EC NOTEXT + + lt_local_macros = mo_files->read_abap( iv_extra = 'macros' + iv_error = abap_false ). "#EC NOTEXT + + lt_test_classes = mo_files->read_abap( iv_extra = 'testclasses' + iv_error = abap_false ). "#EC NOTEXT + + ls_class_key-clsname = ms_item-obj_name. + + io_xml->read( EXPORTING iv_name = 'VSEOCLASS' + CHANGING cg_data = ls_vseoclass ). + + mo_object_oriented_object_fct->create( + EXPORTING + iv_package = iv_package + CHANGING + is_properties = ls_vseoclass ). + + mo_object_oriented_object_fct->generate_locals( + is_key = ls_class_key + iv_force = seox_true + it_local_definitions = lt_local_definitions + it_local_implementations = lt_local_implementations + it_local_macros = lt_local_macros + it_local_test_classes = lt_test_classes ). + + mo_object_oriented_object_fct->deserialize_source( + is_key = ls_class_key + it_source = lt_source ). + + io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS' + CHANGING cg_data = lt_descriptions ). + + mo_object_oriented_object_fct->update_descriptions( + is_key = ls_class_key + it_descriptions = lt_descriptions ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_clas.clas.xml b/src/objects/zcl_abapgit_object_clas.clas.xml new file mode 100644 index 000000000..01a8af135 --- /dev/null +++ b/src/objects/zcl_abapgit_object_clas.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_CLAS + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/zabapgit_object_clas.prog.abap b/src/objects/zcl_abapgit_object_clas_old.clas.abap similarity index 53% rename from src/zabapgit_object_clas.prog.abap rename to src/objects/zcl_abapgit_object_clas_old.clas.abap index 16bd4cfee..e33ad986e 100644 --- a/src/zabapgit_object_clas.prog.abap +++ b/src/objects/zcl_abapgit_object_clas_old.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_CLAS -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_clas DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_clas_old DEFINITION INHERITING FROM lcl_objects_program. +CLASS zcl_abapgit_object_clas_old DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_program. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,7 +9,7 @@ CLASS lcl_object_clas_old DEFINITION INHERITING FROM lcl_objects_program. iv_language TYPE spras. PROTECTED SECTION. - DATA: mo_object_oriented_object_fct TYPE REF TO lif_oo_object_fnc, + DATA: mo_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc, mv_skip_testclass TYPE abap_bool. METHODS: @@ -40,14 +31,9 @@ CLASS lcl_object_clas_old DEFINITION INHERITING FROM lcl_objects_program. IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_clas IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_clas_old IMPLEMENTATION. +CLASS zcl_abapgit_object_clas_old IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. DATA: @@ -397,296 +383,14 @@ CLASS lcl_object_clas_old IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. METHOD constructor. super->constructor( is_item = is_item iv_language = iv_language ). - mo_object_oriented_object_fct = lcl_oo_factory=>make( ms_item-obj_type ). + mo_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ). ENDMETHOD. -ENDCLASS. "lcl_object_CLAS IMPLEMENTATION - -CLASS lcl_oo_class DEFINITION INHERITING FROM lcl_oo_base. - - PUBLIC SECTION. - METHODS: - lif_oo_object_fnc~create REDEFINITION, - lif_oo_object_fnc~generate_locals REDEFINITION, - lif_oo_object_fnc~insert_text_pool REDEFINITION, - lif_oo_object_fnc~create_sotr REDEFINITION, - lif_oo_object_fnc~get_includes REDEFINITION, - lif_oo_object_fnc~get_class_properties REDEFINITION, - lif_oo_object_fnc~read_text_pool REDEFINITION, - lif_oo_object_fnc~read_sotr REDEFINITION, - lif_oo_object_fnc~delete REDEFINITION. - -ENDCLASS. - -CLASS lcl_oo_class IMPLEMENTATION. - METHOD lif_oo_object_fnc~create. - CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE' - EXPORTING - devclass = iv_package - overwrite = iv_overwrite - CHANGING - class = is_properties - EXCEPTIONS - existing = 1 - is_interface = 2 - db_error = 3 - component_error = 4 - no_access = 5 - other = 6 - OTHERS = 7. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ). - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~generate_locals. - CALL FUNCTION 'SEO_CLASS_GENERATE_LOCALS' - EXPORTING - clskey = is_key - force = iv_force - locals_def = it_local_definitions - locals_imp = it_local_implementations - locals_mac = it_local_macros - locals_testclasses = it_local_test_classes - EXCEPTIONS - not_existing = 1 - model_only = 2 - locals_not_generated = 3 - locals_not_initialised = 4 - OTHERS = 5. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from generate_locals' ). - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~insert_text_pool. - DATA: lv_cp TYPE program. - - lv_cp = cl_oo_classname_service=>get_classpool_name( iv_class_name ). - - INSERT TEXTPOOL lv_cp - FROM it_text_pool - LANGUAGE iv_language - STATE 'I'. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). - ENDIF. - - zcl_abapgit_objects_activation=>add( iv_type = 'REPT' - iv_name = lv_cp ). - ENDMETHOD. - - METHOD lif_oo_object_fnc~create_sotr. - DATA: lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, - lt_objects TYPE sotr_objects, - ls_paket TYPE sotr_pack, - lv_object LIKE LINE OF lt_objects. - - FIELD-SYMBOLS: LIKE LINE OF lt_sotr. - - LOOP AT it_sotr ASSIGNING . - CALL FUNCTION 'SOTR_OBJECT_GET_OBJECTS' - EXPORTING - object_vector = -header-objid_vec - IMPORTING - objects = lt_objects - EXCEPTIONS - object_not_found = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from SOTR_OBJECT_GET_OBJECTS' ). - ENDIF. - - READ TABLE lt_objects INDEX 1 INTO lv_object. - ASSERT sy-subrc = 0. - - ls_paket-paket = iv_package. - - CALL FUNCTION 'SOTR_CREATE_CONCEPT' - EXPORTING - paket = ls_paket - crea_lan = -header-crea_lan - alias_name = -header-alias_name - object = lv_object - entries = -entries - concept_default = -header-concept - EXCEPTIONS - package_missing = 1 - crea_lan_missing = 2 - object_missing = 3 - paket_does_not_exist = 4 - alias_already_exist = 5 - object_type_not_found = 6 - langu_missing = 7 - identical_context_not_allowed = 8 - text_too_long = 9 - error_in_update = 10 - no_master_langu = 11 - error_in_concept_id = 12 - alias_not_allowed = 13 - tadir_entry_creation_failed = 14 - internal_error = 15 - error_in_correction = 16 - user_cancelled = 17 - no_entry_found = 18 - OTHERS = 19. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from SOTR_CREATE_CONCEPT' ). - ENDIF. - ENDLOOP. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_includes. -* note: includes returned might not exist -* method cl_oo_classname_service=>GET_ALL_CLASS_INCLUDES does not exist in 702 - - DATA: lv_class_name TYPE seoclsname, - lt_methods TYPE seop_methods_w_include. - - FIELD-SYMBOLS: LIKE LINE OF lt_methods. - - lv_class_name = iv_object_name. - - APPEND cl_oo_classname_service=>get_ccdef_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_ccmac_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_ccimp_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_cl_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_ccau_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_pubsec_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_prosec_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_prisec_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_classpool_name( lv_class_name ) TO rt_includes. - APPEND cl_oo_classname_service=>get_ct_name( lv_class_name ) TO rt_includes. - -* skip the CS include, as it is sometimes generated on the fly instead of -* when the methods are changed -* APPEND cl_oo_classname_service=>get_cs_name( lv_class_name ) TO rt_includes. - - cl_oo_classname_service=>get_all_method_includes( - EXPORTING - clsname = lv_class_name - RECEIVING - result = lt_methods - EXCEPTIONS - class_not_existing = 1 ). - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( |Class { lv_class_name } not existing| ). - ENDIF. - - LOOP AT lt_methods ASSIGNING . - APPEND -incname TO rt_includes. - ENDLOOP. - - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_class_properties. - CALL FUNCTION 'SEO_CLIF_GET' - EXPORTING - cifkey = is_class_key - version = seoc_version_active - IMPORTING - class = rs_class_properties - EXCEPTIONS - not_existing = 1 - deleted = 2 - model_only = 3 - OTHERS = 4. - IF sy-subrc = 1. - RETURN. " in case only inactive version exists - ELSEIF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from seo_clif_get' ). - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_text_pool. - DATA: - lv_cp TYPE program. - - lv_cp = cl_oo_classname_service=>get_classpool_name( iv_class_name ). - READ TEXTPOOL lv_cp INTO rt_text_pool LANGUAGE iv_language. "#EC CI_READ_REP - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_sotr. - DATA: lv_concept TYPE sotr_head-concept, - lt_seocompodf TYPE STANDARD TABLE OF seocompodf WITH DEFAULT KEY, - ls_header TYPE sotr_head, - lt_entries TYPE sotr_text_tt. - - FIELD-SYMBOLS: LIKE LINE OF rt_sotr, - LIKE LINE OF lt_seocompodf, - LIKE LINE OF lt_entries. - - - SELECT * FROM seocompodf - INTO TABLE lt_seocompodf - WHERE clsname = iv_object_name - AND version = '1' - AND exposure = '2' - AND attdecltyp = '2' - AND type = 'SOTR_CONC' - ORDER BY PRIMARY KEY. "#EC CI_SUBRC - - LOOP AT lt_seocompodf ASSIGNING . - - lv_concept = translate( val = -attvalue from = '''' to = '' ). - - CALL FUNCTION 'SOTR_GET_CONCEPT' - EXPORTING - concept = lv_concept - IMPORTING - header = ls_header - TABLES - entries = lt_entries - EXCEPTIONS - no_entry_found = 1 - OTHERS = 2. - IF sy-subrc <> 0. - CONTINUE. - ENDIF. - - CLEAR: ls_header-paket, - ls_header-crea_name, - ls_header-crea_tstut, - ls_header-chan_name, - ls_header-chan_tstut. - - LOOP AT lt_entries ASSIGNING . - CLEAR: -version, - -crea_name, - -crea_tstut, - -chan_name, - -chan_tstut. - ENDLOOP. - - APPEND INITIAL LINE TO rt_sotr ASSIGNING . - -header = ls_header. - -entries = lt_entries. - - ENDLOOP. - ENDMETHOD. - - METHOD lif_oo_object_fnc~delete. - CALL FUNCTION 'SEO_CLASS_DELETE_COMPLETE' - EXPORTING - clskey = is_deletion_key - EXCEPTIONS - not_existing = 1 - is_interface = 2 - db_error = 3 - no_access = 4 - other = 5 - OTHERS = 6. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error from SEO_CLASS_DELETE_COMPLETE' ). - ENDIF. - ENDMETHOD. - -ENDCLASS. +ENDCLASS. "zcl_abapgit_object_CLAS IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_clas_old.clas.xml b/src/objects/zcl_abapgit_object_clas_old.clas.xml new file mode 100644 index 000000000..760a31955 --- /dev/null +++ b/src/objects/zcl_abapgit_object_clas_old.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_CLAS_OLD + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/zabapgit_object_cmpt.prog.abap b/src/objects/zcl_abapgit_object_cmpt.clas.abap similarity index 92% rename from src/zabapgit_object_cmpt.prog.abap rename to src/objects/zcl_abapgit_object_cmpt.clas.abap index deaead207..f74833aba 100644 --- a/src/zabapgit_object_cmpt.prog.abap +++ b/src/objects/zcl_abapgit_object_cmpt.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_CMPT -*&---------------------------------------------------------------------* - -CLASS lcl_object_cmpt DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_cmpt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. METHODS: @@ -18,7 +14,7 @@ CLASS lcl_object_cmpt DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_cmpt IMPLEMENTATION. +CLASS zcl_abapgit_object_cmpt IMPLEMENTATION. METHOD constructor. @@ -206,7 +202,7 @@ CLASS lcl_object_cmpt IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_cmpt.clas.xml b/src/objects/zcl_abapgit_object_cmpt.clas.xml new file mode 100644 index 000000000..715acc245 --- /dev/null +++ b/src/objects/zcl_abapgit_object_cmpt.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_CMPT + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_cus0.prog.abap b/src/objects/zcl_abapgit_object_cus0.clas.abap similarity index 81% rename from src/zabapgit_object_cus0.prog.abap rename to src/objects/zcl_abapgit_object_cus0.clas.abap index 720842d9a..3a15b2760 100644 --- a/src/zabapgit_object_cus0.prog.abap +++ b/src/objects/zcl_abapgit_object_cus0.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_cus0 -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_cus0 DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_cus0 DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_cus0 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -25,12 +18,9 @@ CLASS lcl_object_cus0 DEFINITION INHERITING FROM lcl_objects_super FINAL. END OF ty_img_activity. DATA: mv_img_activity TYPE cus_img_ac. -ENDCLASS. "lcl_object_cus0 DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_cus0 IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_cus0 IMPLEMENTATION. +CLASS zcl_abapgit_object_cus0 IMPLEMENTATION. METHOD constructor. @@ -147,7 +137,7 @@ CLASS lcl_object_cus0 IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_cus0 IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_cus0 IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_cus0.clas.xml b/src/objects/zcl_abapgit_object_cus0.clas.xml new file mode 100644 index 000000000..3a24d8d00 --- /dev/null +++ b/src/objects/zcl_abapgit_object_cus0.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_CUS0 + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_cus1.prog.abap b/src/objects/zcl_abapgit_object_cus1.clas.abap similarity index 85% rename from src/zabapgit_object_cus1.prog.abap rename to src/objects/zcl_abapgit_object_cus1.clas.abap index 034645e25..616978ad2 100644 --- a/src/zabapgit_object_cus1.prog.abap +++ b/src/objects/zcl_abapgit_object_cus1.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_cus1 -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_cus1 DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_cus1 DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_cus1 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -36,12 +29,9 @@ CLASS lcl_object_cus1 DEFINITION INHERITING FROM lcl_objects_super FINAL. DATA: mv_customizing_activity TYPE cus_img_ac. -ENDCLASS. "lcl_object_cus1 DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_cus1 IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_cus1 IMPLEMENTATION. +CLASS zcl_abapgit_object_cus1 IMPLEMENTATION. METHOD constructor. @@ -159,7 +149,7 @@ CLASS lcl_object_cus1 IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_cus1 IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_cus1 IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_cus1.clas.xml b/src/objects/zcl_abapgit_object_cus1.clas.xml new file mode 100644 index 000000000..ccbbe6a73 --- /dev/null +++ b/src/objects/zcl_abapgit_object_cus1.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_CUS1 + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_cus2.prog.abap b/src/objects/zcl_abapgit_object_cus2.clas.abap similarity index 84% rename from src/zabapgit_object_cus2.prog.abap rename to src/objects/zcl_abapgit_object_cus2.clas.abap index 3eebf07ab..8ecad1e41 100644 --- a/src/zabapgit_object_cus2.prog.abap +++ b/src/objects/zcl_abapgit_object_cus2.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_cus2 -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_cus2 DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_cus2 DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_cus2 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -36,12 +29,9 @@ CLASS lcl_object_cus2 DEFINITION INHERITING FROM lcl_objects_super FINAL. DATA: mv_img_attribute TYPE cus_atr. -ENDCLASS. "lcl_object_cus2 DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_cus2 IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_cus2 IMPLEMENTATION. +CLASS zcl_abapgit_object_cus2 IMPLEMENTATION. METHOD constructor. @@ -152,7 +142,7 @@ CLASS lcl_object_cus2 IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_cus2 IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_cus2 IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_cus2.clas.xml b/src/objects/zcl_abapgit_object_cus2.clas.xml new file mode 100644 index 000000000..12cc1db3e --- /dev/null +++ b/src/objects/zcl_abapgit_object_cus2.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_CUS2 + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_dcls.prog.abap b/src/objects/zcl_abapgit_object_dcls.clas.abap similarity index 92% rename from src/zabapgit_object_dcls.prog.abap rename to src/objects/zcl_abapgit_object_dcls.clas.abap index 9bb4f0070..df78cae7c 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/objects/zcl_abapgit_object_dcls.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_dcls -*&---------------------------------------------------------------------* - -CLASS lcl_object_dcls DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_dcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -10,7 +6,7 @@ CLASS lcl_object_dcls DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_dcls IMPLEMENTATION. +CLASS zcl_abapgit_object_dcls IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -183,7 +179,7 @@ CLASS lcl_object_dcls IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_dcls.clas.xml b/src/objects/zcl_abapgit_object_dcls.clas.xml new file mode 100644 index 000000000..a1fb3b008 --- /dev/null +++ b/src/objects/zcl_abapgit_object_dcls.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DCLS + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ddls.prog.abap b/src/objects/zcl_abapgit_object_ddls.clas.abap similarity index 88% rename from src/zabapgit_object_ddls.prog.abap rename to src/objects/zcl_abapgit_object_ddls.clas.abap index a97176e18..05dfe34b5 100644 --- a/src/zabapgit_object_ddls.prog.abap +++ b/src/objects/zcl_abapgit_object_ddls.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_VIEW -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_view DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ddls DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,14 +9,9 @@ CLASS lcl_object_ddls DEFINITION INHERITING FROM lcl_objects_super FINAL. IMPORTING iv_ddls_name TYPE tadir-obj_name RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_view IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ddls IMPLEMENTATION. +CLASS zcl_abapgit_object_ddls IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -240,7 +226,7 @@ CLASS lcl_object_ddls IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. "zif_abapgit_object~compare_to_remote_version METHOD open_adt_stob. @@ -297,4 +283,4 @@ CLASS lcl_object_ddls IMPLEMENTATION. ENDMETHOD. "open_adt_stob -ENDCLASS. "lcl_object_view IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_view IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_ddls.clas.xml b/src/objects/zcl_abapgit_object_ddls.clas.xml new file mode 100644 index 000000000..25bac3762 --- /dev/null +++ b/src/objects/zcl_abapgit_object_ddls.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DDLS + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ddlx.prog.abap b/src/objects/zcl_abapgit_object_ddlx.clas.abap similarity index 94% rename from src/zabapgit_object_ddlx.prog.abap rename to src/objects/zcl_abapgit_object_ddlx.clas.abap index e5b120a1e..f9f68fab2 100644 --- a/src/zabapgit_object_ddlx.prog.abap +++ b/src/objects/zcl_abapgit_object_ddlx.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_ddlx -*&---------------------------------------------------------------------* - -CLASS lcl_object_ddlx DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ddlx DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -30,7 +26,7 @@ CLASS lcl_object_ddlx DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_ddlx IMPLEMENTATION. +CLASS zcl_abapgit_object_ddlx IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -179,7 +175,7 @@ CLASS lcl_object_ddlx IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_ddlx.clas.xml b/src/objects/zcl_abapgit_object_ddlx.clas.xml new file mode 100644 index 000000000..901075253 --- /dev/null +++ b/src/objects/zcl_abapgit_object_ddlx.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DDLX + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_devc.prog.abap b/src/objects/zcl_abapgit_object_devc.clas.abap similarity index 98% rename from src/zabapgit_object_devc.prog.abap rename to src/objects/zcl_abapgit_object_devc.clas.abap index 55a8534d5..9af6a9b6c 100644 --- a/src/zabapgit_object_devc.prog.abap +++ b/src/objects/zcl_abapgit_object_devc.clas.abap @@ -1,9 +1,5 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_devc -*&---------------------------------------------------------------------* - -CLASS lcl_object_devc DEFINITION - INHERITING FROM lcl_objects_super +CLASS zcl_abapgit_object_devc DEFINITION PUBLIC + INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. @@ -29,7 +25,7 @@ CLASS lcl_object_devc DEFINITION mv_local_devclass TYPE devclass. ENDCLASS. -CLASS lcl_object_devc IMPLEMENTATION. +CLASS zcl_abapgit_object_devc IMPLEMENTATION. METHOD constructor. super->constructor( is_item = is_item iv_language = iv_language ). @@ -64,7 +60,7 @@ CLASS lcl_object_devc IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. METHOD zif_abapgit_object~delete. diff --git a/src/objects/zcl_abapgit_object_devc.clas.xml b/src/objects/zcl_abapgit_object_devc.clas.xml new file mode 100644 index 000000000..6c7eb16c1 --- /dev/null +++ b/src/objects/zcl_abapgit_object_devc.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DEVC + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_dial.prog.abap b/src/objects/zcl_abapgit_object_dial.clas.abap similarity index 92% rename from src/zabapgit_object_dial.prog.abap rename to src/objects/zcl_abapgit_object_dial.clas.abap index 3536ff1ae..b8bd362ce 100644 --- a/src/zabapgit_object_dial.prog.abap +++ b/src/objects/zcl_abapgit_object_dial.clas.abap @@ -1,9 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_dial -*&---------------------------------------------------------------------* - - -CLASS lcl_object_dial DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_dial DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -22,7 +17,7 @@ CLASS lcl_object_dial DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_dial IMPLEMENTATION. +CLASS zcl_abapgit_object_dial IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -185,7 +180,7 @@ CLASS lcl_object_dial IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_dial.clas.xml b/src/objects/zcl_abapgit_object_dial.clas.xml new file mode 100644 index 000000000..41d8f6ff5 --- /dev/null +++ b/src/objects/zcl_abapgit_object_dial.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DIAL + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_doct.prog.abap b/src/objects/zcl_abapgit_object_doct.clas.abap similarity index 86% rename from src/zabapgit_object_doct.prog.abap rename to src/objects/zcl_abapgit_object_doct.clas.abap index a12cc32dc..e13c48a5e 100644 --- a/src/zabapgit_object_doct.prog.abap +++ b/src/objects/zcl_abapgit_object_doct.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_DOCT -*&---------------------------------------------------------------------* - -CLASS lcl_object_doct DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_doct DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -23,14 +19,9 @@ CLASS lcl_object_doct DEFINITION INHERITING FROM lcl_objects_super FINAL. METHODS: read RETURNING VALUE(rs_data) TYPE ty_data. -ENDCLASS. "lcl_object_msag DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_view IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_doct IMPLEMENTATION. +CLASS zcl_abapgit_object_doct IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -196,7 +187,7 @@ CLASS lcl_object_doct IMPLEMENTATION. ENDMETHOD. "serialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_msag IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_doct.clas.xml b/src/objects/zcl_abapgit_object_doct.clas.xml new file mode 100644 index 000000000..635131a4a --- /dev/null +++ b/src/objects/zcl_abapgit_object_doct.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DOCT + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_docv.prog.abap b/src/objects/zcl_abapgit_object_docv.clas.abap similarity index 82% rename from src/zabapgit_object_docv.prog.abap rename to src/objects/zcl_abapgit_object_docv.clas.abap index 86e29023e..455748b35 100644 --- a/src/zabapgit_object_docv.prog.abap +++ b/src/objects/zcl_abapgit_object_docv.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_DOCT -*&---------------------------------------------------------------------* - -CLASS lcl_object_docv DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_docv DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -22,14 +18,9 @@ CLASS lcl_object_docv DEFINITION INHERITING FROM lcl_objects_super FINAL. METHODS: read RETURNING VALUE(rs_data) TYPE ty_data. -ENDCLASS. "lcl_object_msag DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_view IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_docv IMPLEMENTATION. +CLASS zcl_abapgit_object_docv IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -159,7 +150,7 @@ CLASS lcl_object_docv IMPLEMENTATION. ENDMETHOD. "serialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_msag IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_docv.clas.xml b/src/objects/zcl_abapgit_object_docv.clas.xml new file mode 100644 index 000000000..800e2da30 --- /dev/null +++ b/src/objects/zcl_abapgit_object_docv.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DOCV + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_doma.prog.abap b/src/objects/zcl_abapgit_object_doma.clas.abap similarity index 91% rename from src/zabapgit_object_doma.prog.abap rename to src/objects/zcl_abapgit_object_doma.clas.abap index 7c2ec7c36..d8fe5082a 100644 --- a/src/zabapgit_object_doma.prog.abap +++ b/src/objects/zcl_abapgit_object_doma.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_DOMA -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_doma DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_doma DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_doma DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -41,14 +32,9 @@ CLASS lcl_object_doma DEFINITION INHERITING FROM lcl_objects_super FINAL. it_dd07v TYPE dd07v_tab RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_doma DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_doma IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_doma IMPLEMENTATION. +CLASS zcl_abapgit_object_doma IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -366,7 +352,7 @@ CLASS lcl_object_doma IMPLEMENTATION. ENDMETHOD. "deserialize_texts METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_doma IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_doma.clas.xml b/src/objects/zcl_abapgit_object_doma.clas.xml new file mode 100644 index 000000000..6d20937aa --- /dev/null +++ b/src/objects/zcl_abapgit_object_doma.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DOMA + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_dsys.prog.abap b/src/objects/zcl_abapgit_object_dsys.clas.abap similarity index 82% rename from src/zabapgit_object_dsys.prog.abap rename to src/objects/zcl_abapgit_object_dsys.clas.abap index 78ccc8b42..96df5b53e 100644 --- a/src/zabapgit_object_dsys.prog.abap +++ b/src/objects/zcl_abapgit_object_dsys.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_dsys -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_dsys DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_dsys DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_dsys DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -33,12 +26,9 @@ CLASS lcl_object_dsys DEFINITION INHERITING FROM lcl_objects_super FINAL. METHODS: read RETURNING VALUE(rs_data) TYPE ty_data. -ENDCLASS. "lcl_object_dsys DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_dsys IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_dsys IMPLEMENTATION. +CLASS zcl_abapgit_object_dsys IMPLEMENTATION. METHOD constructor. @@ -152,7 +142,7 @@ CLASS lcl_object_dsys IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. METHOD read. @@ -172,4 +162,4 @@ CLASS lcl_object_dsys IMPLEMENTATION. ENDMETHOD. -ENDCLASS. "lcl_object_dsys IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_dsys IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_dsys.clas.xml b/src/objects/zcl_abapgit_object_dsys.clas.xml new file mode 100644 index 000000000..993effbf7 --- /dev/null +++ b/src/objects/zcl_abapgit_object_dsys.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DSYS + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_dtel.prog.abap b/src/objects/zcl_abapgit_object_dtel.clas.abap similarity index 89% rename from src/zabapgit_object_dtel.prog.abap rename to src/objects/zcl_abapgit_object_dtel.clas.abap index b8a651e3e..24715d7a3 100644 --- a/src/zabapgit_object_dtel.prog.abap +++ b/src/objects/zcl_abapgit_object_dtel.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_DTEL -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_dtel DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_dtel DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_dtel DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -34,14 +25,9 @@ CLASS lcl_object_dtel DEFINITION INHERITING FROM lcl_objects_super FINAL. is_dd04v TYPE dd04v RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_dtel IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_dtel IMPLEMENTATION. +CLASS zcl_abapgit_object_dtel IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -330,7 +316,7 @@ CLASS lcl_object_dtel IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_dtel IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_dtel IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_dtel.clas.xml b/src/objects/zcl_abapgit_object_dtel.clas.xml new file mode 100644 index 000000000..8daf91697 --- /dev/null +++ b/src/objects/zcl_abapgit_object_dtel.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_DTEL + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho.clas.abap b/src/objects/zcl_abapgit_object_enho.clas.abap new file mode 100644 index 000000000..c0c58b541 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho.clas.abap @@ -0,0 +1,179 @@ +CLASS zcl_abapgit_object_enho DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. + + PUBLIC SECTION. + INTERFACES zif_abapgit_object. + ALIASES mo_files FOR zif_abapgit_object~mo_files. + + PRIVATE SECTION. + + METHODS: + factory + IMPORTING + iv_tool TYPE enhtooltype + RETURNING + VALUE(ri_enho) TYPE REF TO zif_abapgit_object_enho + RAISING + zcx_abapgit_exception. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho IMPLEMENTATION. + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "zif_abapgit_object~has_changed_since + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + ENDMETHOD. "zif_abapgit_object~get_metadata + + METHOD zif_abapgit_object~changed_by. + rv_user = c_user_unknown. " todo + ENDMETHOD. "zif_abapgit_object~changed_by + + METHOD zif_abapgit_object~exists. + + DATA: lv_enh_id TYPE enhname. + + + lv_enh_id = ms_item-obj_name. + TRY. + cl_enh_factory=>get_enhancement( + enhancement_id = lv_enh_id + bypassing_buffer = abap_true ). + rv_bool = abap_true. + CATCH cx_enh_root. + rv_bool = abap_false. + ENDTRY. + + ENDMETHOD. "zif_abapgit_object~exists + + METHOD zif_abapgit_object~serialize. + + DATA: lv_enh_id TYPE enhname, + li_enho TYPE REF TO zif_abapgit_object_enho, + li_enh_tool TYPE REF TO if_enh_tool. + + + IF zif_abapgit_object~exists( ) = abap_false. + RETURN. + ENDIF. + + lv_enh_id = ms_item-obj_name. + TRY. + li_enh_tool = cl_enh_factory=>get_enhancement( + enhancement_id = lv_enh_id + bypassing_buffer = abap_true ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). + ENDTRY. + + li_enho = factory( li_enh_tool->get_tool( ) ). + + li_enho->serialize( io_xml = io_xml + ii_enh_tool = li_enh_tool ). + + ENDMETHOD. "serialize + + METHOD factory. + + CASE iv_tool. + WHEN cl_enh_tool_badi_impl=>tooltype. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_badi + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN cl_enh_tool_hook_impl=>tooltype. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_hook + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN cl_enh_tool_class=>tooltype. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_class + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN cl_enh_tool_intf=>tooltype. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_intf + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN cl_wdr_cfg_enhancement=>tooltype. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_wdyc + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN 'FUGRENH'. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_fugr + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN 'WDYENH'. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_wdyn + EXPORTING + is_item = ms_item + io_files = mo_files. + WHEN OTHERS. + zcx_abapgit_exception=>raise( |Unsupported ENHO type { iv_tool }| ). + ENDCASE. + + ENDMETHOD. "factory + + METHOD zif_abapgit_object~deserialize. + + DATA: lv_tool TYPE enhtooltype, + li_enho TYPE REF TO zif_abapgit_object_enho. + + + IF zif_abapgit_object~exists( ) = abap_true. + zif_abapgit_object~delete( ). + ENDIF. + + io_xml->read( EXPORTING iv_name = 'TOOL' + CHANGING cg_data = lv_tool ). + + li_enho = factory( lv_tool ). + + li_enho->deserialize( io_xml = io_xml + iv_package = iv_package ). + + zcl_abapgit_objects_activation=>add_item( ms_item ). + + ENDMETHOD. "deserialize + + METHOD zif_abapgit_object~delete. + + DATA: lv_enh_id TYPE enhname, + li_enh_object TYPE REF TO if_enh_object. + + + lv_enh_id = ms_item-obj_name. + TRY. + li_enh_object = cl_enh_factory=>get_enhancement( + enhancement_id = lv_enh_id + lock = abap_true ). + li_enh_object->delete( ). + li_enh_object->save( ). + li_enh_object->unlock( ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'Error deleting ENHO' ). + ENDTRY. + + ENDMETHOD. "delete + + METHOD zif_abapgit_object~jump. + + CALL FUNCTION 'RS_TOOL_ACCESS' + EXPORTING + operation = 'SHOW' + object_name = ms_item-obj_name + object_type = 'ENHO' + in_new_window = abap_true. + + ENDMETHOD. "jump + + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. "zif_abapgit_object~compare_to_remote_version + +ENDCLASS. "zcl_abapgit_object_enho IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho.clas.xml b/src/objects/zcl_abapgit_object_enho.clas.xml new file mode 100644 index 000000000..1e3968382 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_badi.clas.abap b/src/objects/zcl_abapgit_object_enho_badi.clas.abap new file mode 100644 index 000000000..13e81e3a5 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_badi.clas.abap @@ -0,0 +1,111 @@ +CLASS zcl_abapgit_object_enho_badi DEFINITION PUBLIC. + + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_badi IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lo_badi_impl TYPE REF TO cl_enh_tool_badi_impl, + lv_spot_name TYPE enhspotname, + lv_shorttext TYPE string, + lt_impl TYPE enh_badi_impl_data_it. + + FIELD-SYMBOLS: LIKE LINE OF lt_impl, + LIKE LINE OF -filter_values, + LIKE LINE OF -filters. + + + lo_badi_impl ?= ii_enh_tool. + + lv_shorttext = lo_badi_impl->if_enh_object_docu~get_shorttext( ). + lv_spot_name = lo_badi_impl->get_spot_name( ). + lt_impl = lo_badi_impl->get_implementations( ). + + LOOP AT lt_impl ASSIGNING . +* make sure the XML serialization does not dump, field type = N + LOOP AT -filter_values ASSIGNING . + IF -filter_numeric_value1 CA space. + CLEAR -filter_numeric_value1. + ENDIF. + ENDLOOP. + LOOP AT -filters ASSIGNING . + IF -filter_numeric_value1 CA space. + CLEAR -filter_numeric_value1. + ENDIF. + ENDLOOP. + ENDLOOP. + + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + io_xml->add( ig_data = lv_shorttext + iv_name = 'SHORTTEXT' ). + io_xml->add( iv_name = 'SPOT_NAME' + ig_data = lv_spot_name ). + io_xml->add( iv_name = 'IMPL' + ig_data = lt_impl ). + + ENDMETHOD. "zif_abapgit_object_enho~serialize + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: lv_spot_name TYPE enhspotname, + lv_shorttext TYPE string, + lv_enhname TYPE enhname, + lo_badi TYPE REF TO cl_enh_tool_badi_impl, + li_tool TYPE REF TO if_enh_tool, + lv_package TYPE devclass, + lt_impl TYPE enh_badi_impl_data_it. + + FIELD-SYMBOLS: LIKE LINE OF lt_impl. + + + io_xml->read( EXPORTING iv_name = 'SHORTTEXT' + CHANGING cg_data = lv_shorttext ). + io_xml->read( EXPORTING iv_name = 'SPOT_NAME' + CHANGING cg_data = lv_spot_name ). + io_xml->read( EXPORTING iv_name = 'IMPL' + CHANGING cg_data = lt_impl ). + + lv_enhname = ms_item-obj_name. + lv_package = iv_package. + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = lv_enhname + enhtype = cl_abstract_enh_tool_redef=>credefinition + enhtooltype = cl_enh_tool_badi_impl=>tooltype + IMPORTING + enhancement = li_tool + CHANGING + devclass = lv_package ). + lo_badi ?= li_tool. + + lo_badi->set_spot_name( lv_spot_name ). + lo_badi->if_enh_object_docu~set_shorttext( lv_shorttext ). + LOOP AT lt_impl ASSIGNING . + lo_badi->add_implementation( ). + ENDLOOP. + lo_badi->if_enh_object~save( ). + lo_badi->if_enh_object~unlock( ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'error deserializing ENHO badi' ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + +ENDCLASS. "zcl_abapgit_object_enho_badi IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_badi.clas.xml b/src/objects/zcl_abapgit_object_enho_badi.clas.xml new file mode 100644 index 000000000..979e8009f --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_badi.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_BADI + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_class.clas.abap b/src/objects/zcl_abapgit_object_enho_class.clas.abap new file mode 100644 index 000000000..a87697272 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_class.clas.abap @@ -0,0 +1,129 @@ +CLASS zcl_abapgit_object_enho_class DEFINITION PUBLIC. + + PUBLIC SECTION. + METHODS: + constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. + DATA: mo_files TYPE REF TO zcl_abapgit_objects_files. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_class IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + mo_files = io_files. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lo_enh_class TYPE REF TO cl_enh_tool_class, + lt_owr TYPE enhmeth_tabkeys, + lt_pre TYPE enhmeth_tabkeys, + lt_post TYPE enhmeth_tabkeys, + lt_source TYPE rswsourcet, + lv_class TYPE seoclsname, + lv_shorttext TYPE string. + + + lo_enh_class ?= ii_enh_tool. + + lv_shorttext = lo_enh_class->if_enh_object_docu~get_shorttext( ). + lt_owr = lo_enh_class->get_owr_methods( ). + lt_pre = lo_enh_class->get_pre_methods( ). + lt_post = lo_enh_class->get_post_methods( ). + lt_source = lo_enh_class->get_eimp_include( ). + lo_enh_class->get_class( IMPORTING class_name = lv_class ). + + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + io_xml->add( ig_data = lv_shorttext + iv_name = 'SHORTTEXT' ). + io_xml->add( iv_name = 'CLASS' + ig_data = lv_class ). + io_xml->add( iv_name = 'OWR_METHODS' + ig_data = lt_owr ). + io_xml->add( iv_name = 'PRE_METHODS' + ig_data = lt_pre ). + io_xml->add( iv_name = 'POST_METHODS' + ig_data = lt_post ). + + mo_files->add_abap( lt_source ). + + zcl_abapgit_object_enho_clif=>serialize( + io_xml = io_xml + io_files = mo_files + io_clif = lo_enh_class ). + + ENDMETHOD. "zif_abapgit_object_enho~serialize + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: lo_enh_class TYPE REF TO cl_enh_tool_class, + lt_owr TYPE enhmeth_tabkeys, + lt_pre TYPE enhmeth_tabkeys, + lt_post TYPE enhmeth_tabkeys, + lt_source TYPE rswsourcet, + li_tool TYPE REF TO if_enh_tool, + lv_shorttext TYPE string, + lv_class TYPE seoclsname, + lv_enhname TYPE enhname, + lv_package TYPE devclass. + + + io_xml->read( EXPORTING iv_name = 'SHORTTEXT' + CHANGING cg_data = lv_shorttext ). + io_xml->read( EXPORTING iv_name = 'OWR_METHODS' + CHANGING cg_data = lt_owr ). + io_xml->read( EXPORTING iv_name = 'PRE_METHODS' + CHANGING cg_data = lt_pre ). + io_xml->read( EXPORTING iv_name = 'POST_METHODS' + CHANGING cg_data = lt_post ). + io_xml->read( EXPORTING iv_name = 'CLASS' + CHANGING cg_data = lv_class ). + lt_source = mo_files->read_abap( ). + + lv_enhname = ms_item-obj_name. + lv_package = iv_package. + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = lv_enhname + enhtype = '' + enhtooltype = cl_enh_tool_class=>tooltype + IMPORTING + enhancement = li_tool + CHANGING + devclass = lv_package ). + lo_enh_class ?= li_tool. + + lo_enh_class->if_enh_object_docu~set_shorttext( lv_shorttext ). + lo_enh_class->set_class( lv_class ). + lo_enh_class->set_owr_methods( version = 'I' + owr_methods = lt_owr ). + lo_enh_class->set_pre_methods( version = 'I' + pre_methods = lt_pre ). + lo_enh_class->set_post_methods( version = 'I' + post_methods = lt_post ). + lo_enh_class->set_eimp_include( version = 'I' + eimp_source = lt_source ). + + zcl_abapgit_object_enho_clif=>deserialize( + io_xml = io_xml + io_clif = lo_enh_class ). + + lo_enh_class->if_enh_object~save( ). + lo_enh_class->if_enh_object~unlock( ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'error deserializing ENHO class' ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + +ENDCLASS. "zcl_abapgit_object_enho_class IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_class.clas.xml b/src/objects/zcl_abapgit_object_enho_class.clas.xml new file mode 100644 index 000000000..c44e9ceb1 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_class.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_CLASS + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_clif.clas.abap b/src/objects/zcl_abapgit_object_enho_clif.clas.abap new file mode 100644 index 000000000..8d3ceec5e --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_clif.clas.abap @@ -0,0 +1,155 @@ +CLASS zcl_abapgit_object_enho_clif DEFINITION PUBLIC. + + PUBLIC SECTION. + CLASS-METHODS: + deserialize + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input + io_clif TYPE REF TO cl_enh_tool_clif + RAISING zcx_abapgit_exception + cx_enh_root, + serialize + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output + io_files TYPE REF TO zcl_abapgit_objects_files + io_clif TYPE REF TO cl_enh_tool_clif + RAISING zcx_abapgit_exception. + + PRIVATE SECTION. + CLASS-METHODS: serialize_includes + IMPORTING io_files TYPE REF TO zcl_abapgit_objects_files + io_clif TYPE REF TO cl_enh_tool_clif + RAISING zcx_abapgit_exception. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_clif IMPLEMENTATION. + + METHOD serialize_includes. + + DATA: lt_includes TYPE enhnewmeth_tabincl_plus_enha, + lt_source TYPE TABLE OF abaptxt255, + lv_include TYPE programm. + + FIELD-SYMBOLS: LIKE LINE OF lt_includes. + + + lt_includes = io_clif->get_enh_method_includes( ). + LOOP AT lt_includes ASSIGNING . + lv_include = io_clif->if_enh_tool~get_name( ). + TRANSLATE lv_include USING ' ='. + lv_include+30 = 'EM'. + lv_include+32(8) = -includenr. + + CALL FUNCTION 'RPY_PROGRAM_READ' + EXPORTING + program_name = lv_include + with_lowercase = abap_true + TABLES + source_extended = lt_source + EXCEPTIONS + cancelled = 1 + not_found = 2 + permission_error = 3 + OTHERS = 4. + IF sy-subrc = 0. + io_files->add_abap( iv_extra = |EM{ -includenr }| + it_abap = lt_source ). + ENDIF. + ENDLOOP. + + ENDMETHOD. "serialize_includes + + METHOD serialize. + + DATA: lt_tab_attributes TYPE enhclasstabattrib, + lt_tab_methods TYPE enhnewmeth_tab. + + FIELD-SYMBOLS: LIKE LINE OF lt_tab_attributes, + LIKE LINE OF lt_tab_methods. + + + io_clif->get_enhattributes( + IMPORTING + tab_attributes = lt_tab_attributes ). + + io_clif->get_enh_new_methodes( + IMPORTING + tab_methodes = lt_tab_methods ). + + serialize_includes( io_clif = io_clif + io_files = io_files ). + + LOOP AT lt_tab_attributes ASSIGNING . + CLEAR: -author, + -createdon, + -changedby, + -changedon. + ENDLOOP. + + LOOP AT lt_tab_methods ASSIGNING . + CLEAR: -meth_header-author, + -meth_header-createdon, + -meth_header-changedby, + -meth_header-changedon, + -meth_header-descript_id. + ENDLOOP. + + io_xml->add( iv_name = 'TAB_ATTRIBUTES' + ig_data = lt_tab_attributes ). + io_xml->add( iv_name = 'TAB_METHODS' + ig_data = lt_tab_methods ). + + ENDMETHOD. "serialize + + METHOD deserialize. + + DATA: lt_tab_attributes TYPE enhclasstabattrib, + lt_tab_methods TYPE enhnewmeth_tab, + ls_header TYPE vseomethod, + ls_param TYPE vseomepara, + ls_exc TYPE vseoexcep. + + FIELD-SYMBOLS: LIKE LINE OF lt_tab_methods, + LIKE LINE OF -meth_param, + LIKE LINE OF -meth_exc. + + + io_xml->read( EXPORTING iv_name = 'TAB_ATTRIBUTES' + CHANGING cg_data = lt_tab_attributes ). + io_xml->read( EXPORTING iv_name = 'TAB_METHODS' + CHANGING cg_data = lt_tab_methods ). + + io_clif->set_enhattributes( lt_tab_attributes ). + +* todo: deserialize includes + +* SAP standard SET_ENH_NEW_METHOS does not work + + LOOP AT lt_tab_methods ASSIGNING . + + MOVE-CORRESPONDING -meth_header TO ls_header. + + io_clif->add_change_new_enh_method( + methkey = -methkey + method_header = ls_header ). + +* parameters + LOOP AT -meth_param ASSIGNING . + MOVE-CORRESPONDING TO ls_param. + io_clif->add_change_enh_methparam( + methname = -methkey-cmpname + param_line = ls_param ). + ENDLOOP. + +* exceptions + LOOP AT -meth_exc ASSIGNING . + MOVE-CORRESPONDING TO ls_exc. + io_clif->add_change_enh_methexc( + methname = -methkey-cmpname + except_line = ls_exc ). + ENDLOOP. + + ENDLOOP. + + ENDMETHOD. "deserialize + +ENDCLASS. "zcl_abapgit_object_enho_clif IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_clif.clas.xml b/src/objects/zcl_abapgit_object_enho_clif.clas.xml new file mode 100644 index 000000000..26b9c6ac4 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_clif.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_CLIF + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_fugr.clas.abap b/src/objects/zcl_abapgit_object_enho_fugr.clas.abap new file mode 100644 index 000000000..a32ee9b5e --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_fugr.clas.abap @@ -0,0 +1,118 @@ +CLASS zcl_abapgit_object_enho_fugr DEFINITION PUBLIC. + + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, + mo_files TYPE REF TO zcl_abapgit_objects_files. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + mo_files = io_files. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: lo_fugrdata TYPE REF TO cl_enh_tool_fugr, + ls_enha_data TYPE enhfugrdata, + li_tool TYPE REF TO if_enh_tool, + tool TYPE enhtooltype, + lv_package TYPE devclass. + + FIELD-SYMBOLS: TYPE enhfugrfuncdata. + + io_xml->read( + EXPORTING + iv_name = 'TOOL' + CHANGING + cg_data = tool ). + + io_xml->read( + EXPORTING + iv_name = 'FUGRDATA' + CHANGING + cg_data = ls_enha_data ). + + lv_package = iv_package. + + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = |{ ms_item-obj_name }| + enhtype = '' + enhtooltype = tool + IMPORTING + enhancement = li_tool + CHANGING + devclass = lv_package ). + + lo_fugrdata ?= li_tool. + + lo_fugrdata->set_fugr( ls_enha_data-fugr ). + + LOOP AT ls_enha_data-enh_fubas ASSIGNING . + + lo_fugrdata->set_func_data( func_name = -fuba + func_enhadata = ). + + ENDLOOP. + + lo_fugrdata->if_enh_object~save( ). + lo_fugrdata->if_enh_object~unlock( ). + + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( |error deserializing ENHO fugrdata { ms_item-obj_name }| ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lo_fugrdata TYPE REF TO cl_enh_tool_fugr, + fugr_name TYPE rs38l-area, + ls_enha_data TYPE enhfugrdata. + + FIELD-SYMBOLS: TYPE enhfugrparamdocu. + + lo_fugrdata ?= ii_enh_tool. + + lo_fugrdata->get_fugr( + IMPORTING + fugr_name = fugr_name ). + + TRY. + lo_fugrdata->get_all_data_for_fugr( + EXPORTING + fugr_name = fugr_name + IMPORTING + enha_data = ls_enha_data ). + + LOOP AT ls_enha_data-docuobjs ASSIGNING . + + CLEAR: -shorttext, + -longtext. + + ENDLOOP. + + CATCH cx_enh_not_found. + zcx_abapgit_exception=>raise( |error deserializing ENHO fugrdata { ms_item-obj_name }| ). + ENDTRY. + + io_xml->add( iv_name = 'TOOL' + ig_data = lo_fugrdata->if_enh_tool~get_tool( ) ). + + io_xml->add( iv_name = 'FUGRDATA' + ig_data = ls_enha_data ). + + ENDMETHOD. "zif_abapgit_object_enho~serialize + +ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_fugr.clas.xml b/src/objects/zcl_abapgit_object_enho_fugr.clas.xml new file mode 100644 index 000000000..76c90e646 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_fugr.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_FUGR + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_hook.clas.abap b/src/objects/zcl_abapgit_object_enho_hook.clas.abap new file mode 100644 index 000000000..4f1258d14 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_hook.clas.abap @@ -0,0 +1,195 @@ +CLASS zcl_abapgit_object_enho_hook DEFINITION PUBLIC. + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + TYPES: BEGIN OF ty_spaces, + full_name TYPE string. + TYPES: spaces TYPE STANDARD TABLE OF i WITH DEFAULT KEY, + END OF ty_spaces. + + TYPES: ty_spaces_tt TYPE STANDARD TABLE OF ty_spaces WITH DEFAULT KEY. + + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. + DATA: mo_files TYPE REF TO zcl_abapgit_objects_files. + + METHODS hook_impl_deserialize + IMPORTING it_spaces TYPE ty_spaces_tt + CHANGING ct_impl TYPE enh_hook_impl_it + RAISING zcx_abapgit_exception. + + METHODS hook_impl_serialize + EXPORTING et_spaces TYPE ty_spaces_tt + CHANGING ct_impl TYPE enh_hook_impl_it + RAISING zcx_abapgit_exception. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_hook IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + mo_files = io_files. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lv_shorttext TYPE string, + lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl, + ls_original_object TYPE enh_hook_admin, + lt_spaces TYPE ty_spaces_tt, + lt_enhancements TYPE enh_hook_impl_it. + + + lo_hook_impl ?= ii_enh_tool. + + lv_shorttext = lo_hook_impl->if_enh_object_docu~get_shorttext( ). + lo_hook_impl->get_original_object( + IMPORTING + pgmid = ls_original_object-pgmid + obj_name = ls_original_object-org_obj_name + obj_type = ls_original_object-org_obj_type + main_type = ls_original_object-org_main_type + main_name = ls_original_object-org_main_name + program = ls_original_object-programname ). + ls_original_object-include_bound = lo_hook_impl->get_include_bound( ). + lt_enhancements = lo_hook_impl->get_hook_impls( ). + + hook_impl_serialize( + IMPORTING et_spaces = lt_spaces + CHANGING ct_impl = lt_enhancements ). + + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + io_xml->add( ig_data = lv_shorttext + iv_name = 'SHORTTEXT' ). + io_xml->add( ig_data = ls_original_object + iv_name = 'ORIGINAL_OBJECT' ). + io_xml->add( iv_name = 'ENHANCEMENTS' + ig_data = lt_enhancements ). + io_xml->add( iv_name = 'SPACES' + ig_data = lt_spaces ). + + ENDMETHOD. "zif_abapgit_object_enho~serialize + + METHOD hook_impl_serialize. +* handle normalization of XML values +* i.e. remove leading spaces + + FIELD-SYMBOLS: LIKE LINE OF ct_impl, + LIKE LINE OF et_spaces, + TYPE i, + TYPE string. + + + LOOP AT ct_impl ASSIGNING . + APPEND INITIAL LINE TO et_spaces ASSIGNING . + -full_name = -full_name. + LOOP AT -source ASSIGNING . + APPEND INITIAL LINE TO -spaces ASSIGNING . + WHILE strlen( ) >= 1 AND (1) = ` `. + = +1. + = + 1. + ENDWHILE. + ENDLOOP. + ENDLOOP. + ENDMETHOD. "hook_impl_serialize + + METHOD hook_impl_deserialize. + + FIELD-SYMBOLS: LIKE LINE OF ct_impl, + TYPE string, + TYPE i, + LIKE LINE OF it_spaces. + + + LOOP AT ct_impl ASSIGNING . + READ TABLE it_spaces ASSIGNING WITH KEY full_name = -full_name. + IF sy-subrc = 0. + LOOP AT -source ASSIGNING . + READ TABLE -spaces ASSIGNING INDEX sy-tabix. + IF sy-subrc = 0 AND > 0. + DO TIMES. + CONCATENATE space INTO RESPECTING BLANKS. + ENDDO. + ENDIF. + ENDLOOP. + ENDIF. + ENDLOOP. + + ENDMETHOD. "hook_impl_deserialize + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: lv_shorttext TYPE string, + lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl, + li_tool TYPE REF TO if_enh_tool, + lv_enhname TYPE enhname, + lv_package TYPE devclass, + ls_original_object TYPE enh_hook_admin, + lt_spaces TYPE ty_spaces_tt, + lt_enhancements TYPE enh_hook_impl_it. + + FIELD-SYMBOLS: LIKE LINE OF lt_enhancements. + + + io_xml->read( EXPORTING iv_name = 'SHORTTEXT' + CHANGING cg_data = lv_shorttext ). + io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' + CHANGING cg_data = ls_original_object ). + io_xml->read( EXPORTING iv_name = 'ENHANCEMENTS' + CHANGING cg_data = lt_enhancements ). + io_xml->read( EXPORTING iv_name = 'SPACES' + CHANGING cg_data = lt_spaces ). + + hook_impl_deserialize( EXPORTING it_spaces = lt_spaces + CHANGING ct_impl = lt_enhancements ). + + lv_enhname = ms_item-obj_name. + lv_package = iv_package. + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = lv_enhname + enhtype = cl_abstract_enh_tool_redef=>credefinition + enhtooltype = cl_enh_tool_hook_impl=>tooltype + IMPORTING + enhancement = li_tool + CHANGING + devclass = lv_package ). + lo_hook_impl ?= li_tool. + + lo_hook_impl->if_enh_object_docu~set_shorttext( lv_shorttext ). + lo_hook_impl->set_original_object( + pgmid = ls_original_object-pgmid + obj_name = ls_original_object-org_obj_name + obj_type = ls_original_object-org_obj_type + program = ls_original_object-programname + main_type = ls_original_object-org_main_type + main_name = ls_original_object-org_main_name ). + lo_hook_impl->set_include_bound( ls_original_object-include_bound ). + + LOOP AT lt_enhancements ASSIGNING . + lo_hook_impl->add_hook_impl( + overwrite = -overwrite + method = -method + enhmode = -enhmode + full_name = -full_name + source = -source + spot = -spotname + parent_full_name = -parent_full_name ). + ENDLOOP. + lo_hook_impl->if_enh_object~save( ). + lo_hook_impl->if_enh_object~unlock( ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'error deserializing ENHO hook' ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + +ENDCLASS. "zcl_abapgit_object_enho_hook IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_hook.clas.xml b/src/objects/zcl_abapgit_object_enho_hook.clas.xml new file mode 100644 index 000000000..f4a08ae47 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_hook.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_HOOK + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_intf.clas.abap b/src/objects/zcl_abapgit_object_enho_intf.clas.abap new file mode 100644 index 000000000..74798de79 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_intf.clas.abap @@ -0,0 +1,94 @@ +CLASS zcl_abapgit_object_enho_intf DEFINITION PUBLIC. + + PUBLIC SECTION. + METHODS: + constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, + mo_files TYPE REF TO zcl_abapgit_objects_files. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_intf IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + mo_files = io_files. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lo_enh_intf TYPE REF TO cl_enh_tool_intf, + lv_class TYPE seoclsname, + lv_shorttext TYPE string. + + + lo_enh_intf ?= ii_enh_tool. + + lv_shorttext = lo_enh_intf->if_enh_object_docu~get_shorttext( ). + lo_enh_intf->get_class( IMPORTING class_name = lv_class ). + + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + io_xml->add( ig_data = lv_shorttext + iv_name = 'SHORTTEXT' ). + io_xml->add( iv_name = 'CLASS' + ig_data = lv_class ). + + zcl_abapgit_object_enho_clif=>serialize( + io_xml = io_xml + io_files = mo_files + io_clif = lo_enh_intf ). + + ENDMETHOD. "zif_abapgit_object_enho~serialize + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: lo_enh_intf TYPE REF TO cl_enh_tool_intf, + li_tool TYPE REF TO if_enh_tool, + lv_shorttext TYPE string, + lv_class TYPE seoclsname, + lv_enhname TYPE enhname, + lv_package TYPE devclass. + + + io_xml->read( EXPORTING iv_name = 'SHORTTEXT' + CHANGING cg_data = lv_shorttext ). + io_xml->read( EXPORTING iv_name = 'CLASS' + CHANGING cg_data = lv_class ). + + lv_enhname = ms_item-obj_name. + lv_package = iv_package. + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = lv_enhname + enhtype = '' + enhtooltype = cl_enh_tool_intf=>tooltype + IMPORTING + enhancement = li_tool + CHANGING + devclass = lv_package ). + lo_enh_intf ?= li_tool. + + lo_enh_intf->if_enh_object_docu~set_shorttext( lv_shorttext ). + lo_enh_intf->set_class( lv_class ). + + zcl_abapgit_object_enho_clif=>deserialize( + io_xml = io_xml + io_clif = lo_enh_intf ). + + lo_enh_intf->if_enh_object~save( ). + lo_enh_intf->if_enh_object~unlock( ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'error deserializing ENHO interface' ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + +ENDCLASS. "zcl_abapgit_object_enho_interface IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_intf.clas.xml b/src/objects/zcl_abapgit_object_enho_intf.clas.xml new file mode 100644 index 000000000..7f127baa2 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_intf.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_INTF + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_wdyc.clas.abap b/src/objects/zcl_abapgit_object_enho_wdyc.clas.abap new file mode 100644 index 000000000..1cae045c8 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_wdyc.clas.abap @@ -0,0 +1,100 @@ +CLASS zcl_abapgit_object_enho_wdyc DEFINITION PUBLIC. + + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_wdyc IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: lv_enhname TYPE enhname, + lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, + li_tool TYPE REF TO if_enh_tool, + ls_obj TYPE wdy_config_key, + lv_package TYPE devclass. + + + io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' + CHANGING cg_data = ls_obj ). + + lv_enhname = ms_item-obj_name. + lv_package = iv_package. + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = lv_enhname + enhtype = '' + enhtooltype = cl_wdr_cfg_enhancement=>tooltype + IMPORTING + enhancement = li_tool + CHANGING + devclass = lv_package ). + lo_wdyconf ?= li_tool. + +* todo +* io_xml->read_xml() +* CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( ) +* lo_wdyconf->set_enhancement_data( ) + ASSERT 0 = 1. + + lo_wdyconf->if_enh_object~save( ). + lo_wdyconf->if_enh_object~unlock( ). + CATCH cx_enh_root. + zcx_abapgit_exception=>raise( 'error deserializing ENHO wdyconf' ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, + lt_data TYPE wdy_cfg_expl_data_tab, + ls_outline TYPE wdy_cfg_outline_data, + ls_obj TYPE wdy_config_key, + li_document TYPE REF TO if_ixml_document, + li_element TYPE REF TO if_ixml_element. + + + lo_wdyconf ?= ii_enh_tool. + + ls_obj = lo_wdyconf->get_original_object( ). + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + io_xml->add( iv_name = 'ORIGINAL_OBJECT' + ig_data = ls_obj ). + +* only works on new ABAP versions, parameters differ between versions + CALL METHOD lo_wdyconf->('GET_ENHANCEMENT_DATA') + EXPORTING + p_scope = 1 + IMPORTING + p_enh_data = lt_data. + + CALL METHOD cl_wdr_cfg_persistence_utils=>('COMP_TABLES_TO_XML') + EXPORTING + outline_data = ls_outline + expl_data_tab = lt_data + IMPORTING + element = li_element + CHANGING + document = li_document. + + io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA' + ii_xml = li_element ). + + ENDMETHOD. "zif_abapgit_object_enho~serialize + +ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_wdyc.clas.xml b/src/objects/zcl_abapgit_object_enho_wdyc.clas.xml new file mode 100644 index 000000000..2788e5203 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_wdyc.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_WDYC + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enho_wdyn.clas.abap b/src/objects/zcl_abapgit_object_enho_wdyn.clas.abap new file mode 100644 index 000000000..611431903 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_wdyn.clas.abap @@ -0,0 +1,115 @@ +CLASS zcl_abapgit_object_enho_wdyn DEFINITION PUBLIC. + + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files. + INTERFACES: zif_abapgit_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. + +ENDCLASS. + +CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + ENDMETHOD. "constructor + + METHOD zif_abapgit_object_enho~deserialize. + + DATA: ls_enh_data TYPE enhwdyn, + li_tool TYPE REF TO if_enh_tool, + lo_wdyn TYPE REF TO cl_enh_tool_wdy, + tool_type TYPE enhtooltype, + package TYPE devclass. + + FIELD-SYMBOLS: TYPE enhwdyc, + TYPE enhwdyv. + + io_xml->read( + EXPORTING + iv_name = 'TOOL' + CHANGING + cg_data = tool_type ). + + io_xml->read( + EXPORTING + iv_name = 'COMPONENT_DATA' + CHANGING + cg_data = ls_enh_data ). + + package = iv_package. + + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = |{ ms_item-obj_name }| + enhtype = '' + enhtooltype = tool_type + IMPORTING + enhancement = li_tool + CHANGING + devclass = package ). + + lo_wdyn ?= li_tool. + + lo_wdyn->initialize( ls_enh_data-component_name ). + + lo_wdyn->set_component_data( ls_enh_data-component_data ). + + LOOP AT ls_enh_data-controller_data ASSIGNING . + + lo_wdyn->set_controller_data( p_controller_name = -controller_name + p_enh_data = ). + + ENDLOOP. + + LOOP AT ls_enh_data-view_data ASSIGNING . + + lo_wdyn->set_view_data( p_view_name = -view_name + p_enh_data = ). + + ENDLOOP. + + lo_wdyn->if_enh_object~save( ). + lo_wdyn->if_enh_object~unlock( ). + + CATCH cx_root. + zcx_abapgit_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~deserialize + + METHOD zif_abapgit_object_enho~serialize. + + DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy, + component_name TYPE wdy_component_name, + ls_enh_data TYPE enhwdyn. + + lo_wdyn ?= ii_enh_tool. + + component_name = lo_wdyn->get_component_name( ). + + TRY. + lo_wdyn->get_all_data_for_comp( + EXPORTING + p_component_name = component_name + IMPORTING + p_enh_data = ls_enh_data ). + + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + + io_xml->add( iv_name = 'COMPONENT_DATA' + ig_data = ls_enh_data ). + + CATCH cx_enh_not_found. + zcx_abapgit_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ). + ENDTRY. + + ENDMETHOD. "zif_abapgit_object_enho~serialize + +ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enho_wdyn.clas.xml b/src/objects/zcl_abapgit_object_enho_wdyn.clas.xml new file mode 100644 index 000000000..92717e59c --- /dev/null +++ b/src/objects/zcl_abapgit_object_enho_wdyn.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHO_WDYN + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enhs.clas.abap b/src/objects/zcl_abapgit_object_enhs.clas.abap new file mode 100644 index 000000000..7401d007d --- /dev/null +++ b/src/objects/zcl_abapgit_object_enhs.clas.abap @@ -0,0 +1,182 @@ +CLASS zcl_abapgit_object_enhs DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. + + PUBLIC SECTION. + INTERFACES zif_abapgit_object. + ALIASES mo_files FOR zif_abapgit_object~mo_files. + + PRIVATE SECTION. + METHODS: + factory + IMPORTING + iv_tool TYPE enhtooltype + RETURNING + VALUE(ri_enho) TYPE REF TO zif_abapgit_object_enhs + RAISING + zcx_abapgit_exception. + +ENDCLASS. + +CLASS zcl_abapgit_object_enhs IMPLEMENTATION. + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "zif_abapgit_object~has_changed_since + + METHOD zif_abapgit_object~changed_by. + + DATA: lv_spot_name TYPE enhspotname, + li_spot_ref TYPE REF TO if_enh_spot_tool. + + lv_spot_name = ms_item-obj_name. + + TRY. + li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ). + li_spot_ref->get_attributes( IMPORTING changedby = rv_user ). + + CATCH cx_enh_root. + rv_user = c_user_unknown. + ENDTRY. + + ENDMETHOD. + + METHOD zif_abapgit_object~deserialize. + + DATA: lv_parent TYPE enhspotcompositename, + lv_spot_name TYPE enhspotname, + lv_tool TYPE enhspottooltype, + lv_package LIKE iv_package, + li_spot_ref TYPE REF TO if_enh_spot_tool, + li_enhs TYPE REF TO zif_abapgit_object_enhs, + lx_root TYPE REF TO cx_root. + + IF zif_abapgit_object~exists( ) = abap_true. + zif_abapgit_object~delete( ). + ENDIF. + + io_xml->read( EXPORTING iv_name = 'TOOL' + CHANGING cg_data = lv_tool ). + + lv_spot_name = ms_item-obj_name. + lv_package = iv_package. + + TRY. + cl_enh_factory=>create_enhancement_spot( + EXPORTING + spot_name = lv_spot_name + tooltype = lv_tool + dark = abap_false + compositename = lv_parent + IMPORTING + spot = li_spot_ref + CHANGING + devclass = lv_package ). + + CATCH cx_enh_root INTO lx_root. + zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). + ENDTRY. + + li_enhs = factory( lv_tool ). + + li_enhs->deserialize( io_xml = io_xml + iv_package = iv_package + ii_enh_spot_tool = li_spot_ref ). + + ENDMETHOD. "deserialize + + METHOD zif_abapgit_object~serialize. + + DATA: lv_spot_name TYPE enhspotname, + li_spot_ref TYPE REF TO if_enh_spot_tool, + li_enhs TYPE REF TO zif_abapgit_object_enhs, + lx_root TYPE REF TO cx_root. + + lv_spot_name = ms_item-obj_name. + + TRY. + li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ). + + CATCH cx_enh_root INTO lx_root. + zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). + ENDTRY. + + li_enhs = factory( li_spot_ref->get_tool( ) ). + + li_enhs->serialize( io_xml = io_xml + ii_enh_spot_tool = li_spot_ref ). + + ENDMETHOD. "serialize + + METHOD zif_abapgit_object~exists. + + DATA: lv_spot_name TYPE enhspotname, + li_spot_ref TYPE REF TO if_enh_spot_tool. + + lv_spot_name = ms_item-obj_name. + + TRY. + li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ). + + rv_bool = abap_true. + + CATCH cx_enh_root. + rv_bool = abap_false. + ENDTRY. + + ENDMETHOD. "exists + + METHOD zif_abapgit_object~delete. + + DATA: lv_spot_name TYPE enhspotname, + li_enh_object TYPE REF TO if_enh_object, + lx_root TYPE REF TO cx_root. + + lv_spot_name = ms_item-obj_name. + + TRY. + li_enh_object ?= cl_enh_factory=>get_enhancement_spot( spot_name = lv_spot_name + lock = abap_true ). + + li_enh_object->delete( nevertheless_delete = abap_true + run_dark = abap_true ). + + li_enh_object->unlock( ). + + CATCH cx_enh_root INTO lx_root. + zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). + ENDTRY. + + ENDMETHOD. "delete + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + ENDMETHOD. "get_metadata + + METHOD zif_abapgit_object~jump. + + CALL FUNCTION 'RS_TOOL_ACCESS' + EXPORTING + operation = 'SHOW' + object_name = ms_item-obj_name + object_type = 'ENHS' + in_new_window = abap_true. + + ENDMETHOD. "jump + + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. + + METHOD factory. + + CASE iv_tool. + WHEN cl_enh_tool_badi_def=>tooltype. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enhs_badi_d. + WHEN cl_enh_tool_hook_def=>tool_type. + CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enhs_hook_d. + WHEN OTHERS. + zcx_abapgit_exception=>raise( |ENHS: Unsupported tool { iv_tool }| ). + ENDCASE. + + ENDMETHOD. + +ENDCLASS. "zcl_abapgit_object_enhs diff --git a/src/objects/zcl_abapgit_object_enhs.clas.xml b/src/objects/zcl_abapgit_object_enhs.clas.xml new file mode 100644 index 000000000..620460469 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enhs.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHS + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enhs_badi_d.clas.abap b/src/objects/zcl_abapgit_object_enhs_badi_d.clas.abap new file mode 100644 index 000000000..0798e3270 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enhs_badi_d.clas.abap @@ -0,0 +1,91 @@ +CLASS zcl_abapgit_object_enhs_badi_d DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES: zif_abapgit_object_enhs. + +ENDCLASS. + +CLASS zcl_abapgit_object_enhs_badi_d IMPLEMENTATION. + + METHOD zif_abapgit_object_enhs~deserialize. + + DATA: lv_parent TYPE enhspotcompositename, + lt_enh_badi TYPE enh_badi_data_it, + lo_badidef_tool TYPE REF TO cl_enh_tool_badi_def, + lv_enh_shorttext TYPE string, +* lv_package LIKE iv_package, + li_enh_object TYPE REF TO if_enh_object, + li_enh_object_docu TYPE REF TO if_enh_object_docu, + lv_text TYPE string, + lx_error TYPE REF TO cx_enh_root. + + FIELD-SYMBOLS: LIKE LINE OF lt_enh_badi. + + io_xml->read( EXPORTING iv_name = 'PARENT_COMP' + CHANGING cg_data = lv_parent ). + + io_xml->read( EXPORTING iv_name = 'BADI_DATA' + CHANGING cg_data = lt_enh_badi ). + + io_xml->read( EXPORTING iv_name = 'SHORTTEXT' + CHANGING cg_data = lv_enh_shorttext ). + +* lv_package = iv_package. + + li_enh_object ?= ii_enh_spot_tool. + li_enh_object_docu ?= ii_enh_spot_tool. + + TRY. + li_enh_object_docu->set_shorttext( lv_enh_shorttext ). + + lo_badidef_tool ?= ii_enh_spot_tool. + + LOOP AT lt_enh_badi ASSIGNING . + lo_badidef_tool->add_badi_def( ). + ENDLOOP. + + li_enh_object->save( ). + li_enh_object->activate( ). + li_enh_object->unlock( ). + + CATCH cx_enh_root INTO lx_error. + lv_text = lx_error->get_text( ). + zcx_abapgit_exception=>raise( lv_text ). + ENDTRY. + + ENDMETHOD. + + METHOD zif_abapgit_object_enhs~serialize. + + DATA: lv_spot_name TYPE enhspotname, + lv_parent TYPE enhspotcompositename, + lt_enh_badi TYPE enh_badi_data_it, + lo_badidef_tool TYPE REF TO cl_enh_tool_badi_def, + lv_enh_shorttext TYPE string, + li_enh_object_docu TYPE REF TO if_enh_object_docu. + + lo_badidef_tool ?= ii_enh_spot_tool. + + li_enh_object_docu ?= ii_enh_spot_tool. + lv_enh_shorttext = li_enh_object_docu->get_shorttext( ). + + "get parent = composite enhs (ENHC) + lv_parent = cl_r3standard_persistence=>enh_find_parent_composite( lv_spot_name ). + "get subsequent BADI definitions + lt_enh_badi = lo_badidef_tool->get_badi_defs( ). + + io_xml->add( ig_data = ii_enh_spot_tool->get_tool( ) + iv_name = 'TOOL' ). + + io_xml->add( ig_data = lv_enh_shorttext + iv_name = 'SHORTTEXT' ). + + io_xml->add( ig_data = lv_parent + iv_name = 'PARENT_COMP' ). + + io_xml->add( ig_data = lt_enh_badi + iv_name = 'BADI_DATA' ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_enhs_badi_d.clas.xml b/src/objects/zcl_abapgit_object_enhs_badi_d.clas.xml new file mode 100644 index 000000000..9c8a12d3e --- /dev/null +++ b/src/objects/zcl_abapgit_object_enhs_badi_d.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHS_BADI_D + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_enhs_hook_d.clas.abap b/src/objects/zcl_abapgit_object_enhs_hook_d.clas.abap new file mode 100644 index 000000000..f8af192fe --- /dev/null +++ b/src/objects/zcl_abapgit_object_enhs_hook_d.clas.abap @@ -0,0 +1,105 @@ +CLASS zcl_abapgit_object_enhs_hook_d DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES: zif_abapgit_object_enhs. + + PRIVATE SECTION. + TYPES: BEGIN OF ty_hook_defifnition, + pgmid TYPE pgmid, + obj_name TYPE trobj_name, + obj_type TYPE trobjtype, + main_type TYPE trobjtype, + main_name TYPE eu_aname, + program TYPE progname, + def_hooks TYPE enh_hook_def_ext_it, + END OF ty_hook_defifnition. + +ENDCLASS. + +CLASS zcl_abapgit_object_enhs_hook_d IMPLEMENTATION. + + METHOD zif_abapgit_object_enhs~deserialize. + + DATA: lv_enh_shorttext TYPE string, + ls_enh_hook_definition TYPE enh_hook_def, + ls_hook_definition TYPE ty_hook_defifnition, + li_enh_object TYPE REF TO if_enh_object, + li_enh_object_docu TYPE REF TO if_enh_object_docu, + lo_hookdef_tool TYPE REF TO cl_enh_tool_hook_def, + lx_error TYPE REF TO cx_enh_root, + lv_text TYPE string. + + FIELD-SYMBOLS: TYPE enh_hook_def_ext. + + io_xml->read( EXPORTING iv_name = 'SHORTTEXT' + CHANGING cg_data = lv_enh_shorttext ). + + io_xml->read( EXPORTING iv_name = 'BADI_DATA' + CHANGING cg_data = ls_hook_definition ). + + li_enh_object ?= ii_enh_spot_tool. + li_enh_object_docu ?= ii_enh_spot_tool. + + TRY. + li_enh_object_docu->set_shorttext( lv_enh_shorttext ). + + lo_hookdef_tool ?= ii_enh_spot_tool. + + lo_hookdef_tool->set_original_object( pgmid = ls_hook_definition-pgmid + obj_name = ls_hook_definition-obj_name + obj_type = ls_hook_definition-obj_type + program = ls_hook_definition-program + main_type = ls_hook_definition-main_type + main_name = ls_hook_definition-main_name ). + + LOOP AT ls_hook_definition-def_hooks ASSIGNING . + MOVE-CORRESPONDING TO ls_enh_hook_definition. + lo_hookdef_tool->add_hook_def( ls_enh_hook_definition ). + ENDLOOP. + + li_enh_object->save( ). + li_enh_object->activate( ). + li_enh_object->unlock( ). + + CATCH cx_enh_root INTO lx_error. + lv_text = lx_error->get_text( ). + zcx_abapgit_exception=>raise( lv_text ). + ENDTRY. + + ENDMETHOD. + + METHOD zif_abapgit_object_enhs~serialize. + + DATA: lo_hookdef_tool TYPE REF TO cl_enh_tool_hook_def, + lv_enh_shorttext TYPE string, + li_enh_object_docu TYPE REF TO if_enh_object_docu, + ls_hook_definition TYPE ty_hook_defifnition. + + lo_hookdef_tool ?= ii_enh_spot_tool. + + li_enh_object_docu ?= ii_enh_spot_tool. + lv_enh_shorttext = li_enh_object_docu->get_shorttext( ). + + ls_hook_definition-def_hooks = lo_hookdef_tool->get_hook_defs( ). + + lo_hookdef_tool->get_original_object( + IMPORTING + pgmid = ls_hook_definition-pgmid + obj_name = ls_hook_definition-obj_name + obj_type = ls_hook_definition-obj_type + main_type = ls_hook_definition-main_type + main_name = ls_hook_definition-main_name + program = ls_hook_definition-program ). + + io_xml->add( ig_data = ii_enh_spot_tool->get_tool( ) + iv_name = 'TOOL' ). + + io_xml->add( ig_data = lv_enh_shorttext + iv_name = 'SHORTTEXT' ). + + io_xml->add( ig_data = ls_hook_definition + iv_name = 'BADI_DATA' ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_enhs_hook_d.clas.xml b/src/objects/zcl_abapgit_object_enhs_hook_d.clas.xml new file mode 100644 index 000000000..b56fed3eb --- /dev/null +++ b/src/objects/zcl_abapgit_object_enhs_hook_d.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENHS_HOOK_D + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/zabapgit_object_enqu.prog.abap b/src/objects/zcl_abapgit_object_enqu.clas.abap similarity index 81% rename from src/zabapgit_object_enqu.prog.abap rename to src/objects/zcl_abapgit_object_enqu.clas.abap index f5ba35598..1b29a4b48 100644 --- a/src/zabapgit_object_enqu.prog.abap +++ b/src/objects/zcl_abapgit_object_enqu.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_ENUQ -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_enqu DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enqu DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_enqu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_dtel IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enqu IMPLEMENTATION. +CLASS zcl_abapgit_object_enqu IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -186,7 +172,7 @@ CLASS lcl_object_enqu IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_enqu IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_enqu IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_enqu.clas.xml b/src/objects/zcl_abapgit_object_enqu.clas.xml new file mode 100644 index 000000000..c1f7f79c2 --- /dev/null +++ b/src/objects/zcl_abapgit_object_enqu.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENQU + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ensc.prog.abap b/src/objects/zcl_abapgit_object_ensc.clas.abap similarity index 89% rename from src/zabapgit_object_ensc.prog.abap rename to src/objects/zcl_abapgit_object_ensc.clas.abap index d1810107c..d7ff374bd 100644 --- a/src/zabapgit_object_ensc.prog.abap +++ b/src/objects/zcl_abapgit_object_ensc.clas.abap @@ -1,22 +1,15 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_ENSC -*&---------------------------------------------------------------------* - -CLASS lcl_object_ensc DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ensc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_ensc +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_ensc IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_ensc IMPLEMENTATION. +CLASS zcl_abapgit_object_ensc IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since + ENDMETHOD. METHOD zif_abapgit_object~changed_by. rv_user = c_user_unknown. " todo @@ -191,7 +184,7 @@ CLASS lcl_object_ensc IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_ensc +ENDCLASS. "zcl_abapgit_object_ensc diff --git a/src/objects/zcl_abapgit_object_ensc.clas.xml b/src/objects/zcl_abapgit_object_ensc.clas.xml new file mode 100644 index 000000000..0eadbda4b --- /dev/null +++ b/src/objects/zcl_abapgit_object_ensc.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_ENSC + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_form.prog.abap b/src/objects/zcl_abapgit_object_form.clas.abap similarity index 88% rename from src/zabapgit_object_form.prog.abap rename to src/objects/zcl_abapgit_object_form.clas.abap index 5667580a8..202675ef9 100644 --- a/src/zabapgit_object_form.prog.abap +++ b/src/objects/zcl_abapgit_object_form.clas.abap @@ -1,10 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_FORM -*&---------------------------------------------------------------------* -*----------------------------------------------------------------------* -* CLASS lcl_object_form DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_form DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -47,26 +41,26 @@ CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL. METHODS _save_form IMPORTING - it_lines TYPE lcl_object_form=>tyt_lines + it_lines TYPE zcl_abapgit_object_form=>tyt_lines CHANGING - cs_form_data TYPE lcl_object_form=>tys_form_data. + cs_form_data TYPE zcl_abapgit_object_form=>tys_form_data. METHODS _extract_tdlines IMPORTING - is_form_data TYPE lcl_object_form=>tys_form_data + is_form_data TYPE zcl_abapgit_object_form=>tys_form_data RETURNING - VALUE(et_lines) TYPE lcl_object_form=>tyt_lines + VALUE(et_lines) TYPE zcl_abapgit_object_form=>tyt_lines RAISING zcx_abapgit_exception. METHODS _clear_changed_fields CHANGING - cs_form_data TYPE lcl_object_form=>tys_form_data. + cs_form_data TYPE zcl_abapgit_object_form=>tys_form_data. METHODS _compress_lines IMPORTING - is_form_data TYPE lcl_object_form=>tys_form_data - it_lines TYPE lcl_object_form=>tyt_lines + is_form_data TYPE zcl_abapgit_object_form=>tys_form_data + it_lines TYPE zcl_abapgit_object_form=>tyt_lines RAISING zcx_abapgit_exception. @@ -74,22 +68,19 @@ CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL. IMPORTING iv_object_name TYPE zif_abapgit_definitions=>ty_item-obj_name RETURNING - VALUE(et_text_header) TYPE lcl_object_form=>tyt_text_header. + VALUE(et_text_header) TYPE zcl_abapgit_object_form=>tyt_text_header. METHODS _read_form IMPORTING - is_text_header TYPE lcl_object_form=>tys_text_header + is_text_header TYPE zcl_abapgit_object_form=>tys_text_header EXPORTING ev_form_found TYPE flag - es_form_data TYPE lcl_object_form=>tys_form_data - et_lines TYPE lcl_object_form=>tyt_lines. + es_form_data TYPE zcl_abapgit_object_form=>tys_form_data + et_lines TYPE zcl_abapgit_object_form=>tyt_lines. ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_form IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_form IMPLEMENTATION. +CLASS zcl_abapgit_object_form IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -259,7 +250,7 @@ CLASS lcl_object_form IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. METHOD _build_extra_from_header. @@ -415,4 +406,4 @@ CLASS lcl_object_form IMPLEMENTATION. ENDMETHOD. -ENDCLASS. "lcl_object_FORM IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_FORM IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_form.clas.xml b/src/objects/zcl_abapgit_object_form.clas.xml new file mode 100644 index 000000000..bf4ce6932 --- /dev/null +++ b/src/objects/zcl_abapgit_object_form.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_FORM + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_fugr.prog.abap b/src/objects/zcl_abapgit_object_fugr.clas.abap similarity index 96% rename from src/zabapgit_object_fugr.prog.abap rename to src/objects/zcl_abapgit_object_fugr.clas.abap index 8f7608d70..e1a89835b 100644 --- a/src/zabapgit_object_fugr.prog.abap +++ b/src/objects/zcl_abapgit_object_fugr.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_FUGR -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_fugr DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_fugr DEFINITION INHERITING FROM lcl_objects_program FINAL. +CLASS zcl_abapgit_object_fugr DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_program FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -76,14 +67,9 @@ CLASS lcl_object_fugr DEFINITION INHERITING FROM lcl_objects_program FINAL. RETURNING VALUE(rv_return) TYPE abap_bool RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_fugr DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_dtel IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_fugr IMPLEMENTATION. +CLASS zcl_abapgit_object_fugr IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -792,7 +778,7 @@ CLASS lcl_object_fugr IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_fugr IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_fugr IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_fugr.clas.xml b/src/objects/zcl_abapgit_object_fugr.clas.xml new file mode 100644 index 000000000..8abedcc66 --- /dev/null +++ b/src/objects/zcl_abapgit_object_fugr.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_FUGR + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_iamu.prog.abap b/src/objects/zcl_abapgit_object_iamu.clas.abap similarity index 89% rename from src/zabapgit_object_iamu.prog.abap rename to src/objects/zcl_abapgit_object_iamu.clas.abap index 701ac746b..3396827d3 100644 --- a/src/zabapgit_object_iamu.prog.abap +++ b/src/objects/zcl_abapgit_object_iamu.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_iamu -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_iamu DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iamu DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_iamu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -45,12 +36,7 @@ CLASS lcl_object_iamu DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_iamu IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iamu IMPLEMENTATION. +CLASS zcl_abapgit_object_iamu IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -176,7 +162,7 @@ CLASS lcl_object_iamu IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_iamu.clas.xml b/src/objects/zcl_abapgit_object_iamu.clas.xml new file mode 100644 index 000000000..4649c4162 --- /dev/null +++ b/src/objects/zcl_abapgit_object_iamu.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_IAMU + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_iarp.prog.abap b/src/objects/zcl_abapgit_object_iarp.clas.abap similarity index 82% rename from src/zabapgit_object_iarp.prog.abap rename to src/objects/zcl_abapgit_object_iarp.clas.abap index d98fdcfd9..db4f01fd9 100644 --- a/src/zabapgit_object_iarp.prog.abap +++ b/src/objects/zcl_abapgit_object_iarp.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_IARP -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_iarp DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iarp DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_iarp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -24,14 +15,9 @@ CLASS lcl_object_iarp DEFINITION INHERITING FROM lcl_objects_super FINAL. it_parameters TYPE w3resopara_tabletype RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_iarp IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iarp IMPLEMENTATION. +CLASS zcl_abapgit_object_iarp IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -195,7 +181,7 @@ CLASS lcl_object_iarp IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_iarp IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_iarp IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_iarp.clas.xml b/src/objects/zcl_abapgit_object_iarp.clas.xml new file mode 100644 index 000000000..aa7d01fe2 --- /dev/null +++ b/src/objects/zcl_abapgit_object_iarp.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_IARP + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_iasp.prog.abap b/src/objects/zcl_abapgit_object_iasp.clas.abap similarity index 82% rename from src/zabapgit_object_iasp.prog.abap rename to src/objects/zcl_abapgit_object_iasp.clas.abap index 88b61d611..9b813efb0 100644 --- a/src/zabapgit_object_iasp.prog.abap +++ b/src/objects/zcl_abapgit_object_iasp.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_IASP -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_iasp DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iasp DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_iasp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -24,14 +15,9 @@ CLASS lcl_object_iasp DEFINITION INHERITING FROM lcl_objects_super FINAL. it_parameters TYPE w3servpara_tabletype RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_iasp IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iasp IMPLEMENTATION. +CLASS zcl_abapgit_object_iasp IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -195,7 +181,7 @@ CLASS lcl_object_iasp IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_iasp IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_iasp IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_iasp.clas.xml b/src/objects/zcl_abapgit_object_iasp.clas.xml new file mode 100644 index 000000000..7fc19dce0 --- /dev/null +++ b/src/objects/zcl_abapgit_object_iasp.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_IASP + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_iatu.prog.abap b/src/objects/zcl_abapgit_object_iatu.clas.abap similarity index 83% rename from src/zabapgit_object_iatu.prog.abap rename to src/objects/zcl_abapgit_object_iatu.clas.abap index 924fed94e..4d953b96c 100644 --- a/src/zabapgit_object_iatu.prog.abap +++ b/src/objects/zcl_abapgit_object_iatu.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_IATU -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_iatu DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iatu DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_iatu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -24,14 +15,9 @@ CLASS lcl_object_iatu DEFINITION INHERITING FROM lcl_objects_super FINAL. iv_source TYPE string RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_iatu DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_iatu IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_iatu IMPLEMENTATION. +CLASS zcl_abapgit_object_iatu IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -212,7 +198,7 @@ CLASS lcl_object_iatu IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_iatu IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_iatu IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_iatu.clas.xml b/src/objects/zcl_abapgit_object_iatu.clas.xml new file mode 100644 index 000000000..94818057a --- /dev/null +++ b/src/objects/zcl_abapgit_object_iatu.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_IATU + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_intf.prog.abap b/src/objects/zcl_abapgit_object_intf.clas.abap similarity index 70% rename from src/zabapgit_object_intf.prog.abap rename to src/objects/zcl_abapgit_object_intf.clas.abap index b1d3fa43e..ee71b43e2 100644 --- a/src/zabapgit_object_intf.prog.abap +++ b/src/objects/zcl_abapgit_object_intf.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_INTF -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_intf DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_intf DEFINITION FINAL INHERITING FROM lcl_objects_program. +CLASS zcl_abapgit_object_intf DEFINITION PUBLIC FINAL INHERITING FROM zcl_abapgit_objects_program. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. @@ -26,21 +17,20 @@ CLASS lcl_object_intf DEFINITION FINAL INHERITING FROM lcl_objects_program. RAISING zcx_abapgit_exception. PRIVATE SECTION. - DATA mo_object_oriented_object_fct TYPE REF TO lif_oo_object_fnc. + DATA mo_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc. METHODS serialize_xml IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_intf DEFINITION +ENDCLASS. - -CLASS lcl_object_intf IMPLEMENTATION. +CLASS zcl_abapgit_object_intf IMPLEMENTATION. METHOD constructor. super->constructor( is_item = is_item iv_language = iv_language ). - mo_object_oriented_object_fct = lcl_oo_factory=>make( iv_object_type = ms_item-obj_type ). + mo_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( iv_object_type = ms_item-obj_type ). ENDMETHOD. METHOD zif_abapgit_object~deserialize. @@ -214,7 +204,7 @@ CLASS lcl_object_intf IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. METHOD zif_abapgit_object~delete. @@ -259,77 +249,3 @@ CLASS lcl_object_intf IMPLEMENTATION. ENDMETHOD. ENDCLASS. - - -CLASS lcl_oo_interface DEFINITION - INHERITING FROM lcl_oo_base. - PUBLIC SECTION. - METHODS: - lif_oo_object_fnc~create REDEFINITION, - lif_oo_object_fnc~get_includes REDEFINITION, - lif_oo_object_fnc~get_interface_properties REDEFINITION, - lif_oo_object_fnc~delete REDEFINITION. -ENDCLASS. - -CLASS lcl_oo_interface IMPLEMENTATION. - METHOD lif_oo_object_fnc~create. - CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE' - EXPORTING - devclass = iv_package - overwrite = iv_overwrite - CHANGING - interface = is_properties - EXCEPTIONS - existing = 1 - is_class = 2 - db_error = 3 - component_error = 4 - no_access = 5 - other = 6 - OTHERS = 7. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error from SEO_INTERFACE_CREATE_COMPLETE' ). - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_includes. - DATA lv_interface_name TYPE seoclsname. - lv_interface_name = iv_object_name. - APPEND cl_oo_classname_service=>get_interfacepool_name( lv_interface_name ) TO rt_includes. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_interface_properties. - CALL FUNCTION 'SEO_CLIF_GET' - EXPORTING - cifkey = is_interface_key - version = seoc_version_active - IMPORTING - interface = rs_interface_properties - EXCEPTIONS - not_existing = 1 - deleted = 2 - model_only = 3 - OTHERS = 4. - IF sy-subrc = 1. - RETURN. " in case only inactive version exists - ELSEIF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from seo_clif_get' ). - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~delete. - CALL FUNCTION 'SEO_INTERFACE_DELETE_COMPLETE' - EXPORTING - intkey = is_deletion_key - EXCEPTIONS - not_existing = 1 - is_class = 2 - db_error = 3 - no_access = 4 - other = 5 - OTHERS = 6. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error from SEO_INTERFACE_DELETE_COMPLETE' ). - ENDIF. - ENDMETHOD. -ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_intf.clas.xml b/src/objects/zcl_abapgit_object_intf.clas.xml new file mode 100644 index 000000000..b6d5c939a --- /dev/null +++ b/src/objects/zcl_abapgit_object_intf.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_INTF + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_jobd.prog.abap b/src/objects/zcl_abapgit_object_jobd.clas.abap similarity index 93% rename from src/zabapgit_object_jobd.prog.abap rename to src/objects/zcl_abapgit_object_jobd.clas.abap index f14912ec7..88146e871 100644 --- a/src/zabapgit_object_jobd.prog.abap +++ b/src/objects/zcl_abapgit_object_jobd.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_jobd -*&---------------------------------------------------------------------* - -CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_jobd DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -12,7 +8,7 @@ CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_jobd IMPLEMENTATION. +CLASS zcl_abapgit_object_jobd IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -193,7 +189,7 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_jobd.clas.xml b/src/objects/zcl_abapgit_object_jobd.clas.xml new file mode 100644 index 000000000..3078ffd68 --- /dev/null +++ b/src/objects/zcl_abapgit_object_jobd.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_JOBD + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_msag.prog.abap b/src/objects/zcl_abapgit_object_msag.clas.abap similarity index 89% rename from src/zabapgit_object_msag.prog.abap rename to src/objects/zcl_abapgit_object_msag.clas.abap index c1852419b..aae5bf8c2 100644 --- a/src/zabapgit_object_msag.prog.abap +++ b/src/objects/zcl_abapgit_object_msag.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_MSAG -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_msag DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_msag DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_msag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -30,14 +21,9 @@ CLASS lcl_object_msag DEFINITION INHERITING FROM lcl_objects_super FINAL. RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_msag DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_view IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_msag IMPLEMENTATION. +CLASS zcl_abapgit_object_msag IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -299,7 +285,7 @@ CLASS lcl_object_msag IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_msag IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_msag.clas.xml b/src/objects/zcl_abapgit_object_msag.clas.xml new file mode 100644 index 000000000..4780a95c2 --- /dev/null +++ b/src/objects/zcl_abapgit_object_msag.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_MSAG + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_nrob.prog.abap b/src/objects/zcl_abapgit_object_nrob.clas.abap similarity index 87% rename from src/zabapgit_object_nrob.prog.abap rename to src/objects/zcl_abapgit_object_nrob.clas.abap index 2a569142b..dbeae55cd 100644 --- a/src/zabapgit_object_nrob.prog.abap +++ b/src/objects/zcl_abapgit_object_nrob.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_NROB -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_nrob DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_nrob DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_nrob DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,14 +9,9 @@ CLASS lcl_object_nrob DEFINITION INHERITING FROM lcl_objects_super FINAL. delete_intervals IMPORTING iv_object TYPE inri-object RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_nrob DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_nrob IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_nrob IMPLEMENTATION. +CLASS zcl_abapgit_object_nrob IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -285,7 +271,7 @@ CLASS lcl_object_nrob IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_nrob IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_nrob IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_nrob.clas.xml b/src/objects/zcl_abapgit_object_nrob.clas.xml new file mode 100644 index 000000000..d70b1a675 --- /dev/null +++ b/src/objects/zcl_abapgit_object_nrob.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_NROB + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_para.prog.abap b/src/objects/zcl_abapgit_object_para.clas.abap similarity index 77% rename from src/zabapgit_object_para.prog.abap rename to src/objects/zcl_abapgit_object_para.clas.abap index 80a427e6d..4d6067d41 100644 --- a/src/zabapgit_object_para.prog.abap +++ b/src/objects/zcl_abapgit_object_para.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_PARA -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_para DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_para DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_para DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_para DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_para IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_para IMPLEMENTATION. +CLASS zcl_abapgit_object_para IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -145,7 +131,7 @@ CLASS lcl_object_para IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_para IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_para IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_para.clas.xml b/src/objects/zcl_abapgit_object_para.clas.xml new file mode 100644 index 000000000..9c088e40d --- /dev/null +++ b/src/objects/zcl_abapgit_object_para.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_PARA + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_pinf.prog.abap b/src/objects/zcl_abapgit_object_pinf.clas.abap similarity index 91% rename from src/zabapgit_object_pinf.prog.abap rename to src/objects/zcl_abapgit_object_pinf.clas.abap index 2d0530c40..bd1382a49 100644 --- a/src/zabapgit_object_pinf.prog.abap +++ b/src/objects/zcl_abapgit_object_pinf.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_PINF -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_PINF DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_pinf DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_pinf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -38,14 +29,9 @@ CLASS lcl_object_pinf DEFINITION INHERITING FROM lcl_objects_super FINAL. ii_interface TYPE REF TO if_package_interface RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_PINF DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_PINF IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_pinf IMPLEMENTATION. +CLASS zcl_abapgit_object_pinf IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -356,7 +342,7 @@ CLASS lcl_object_pinf IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_PINF IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_PINF IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_pinf.clas.xml b/src/objects/zcl_abapgit_object_pinf.clas.xml new file mode 100644 index 000000000..cc4ee78fa --- /dev/null +++ b/src/objects/zcl_abapgit_object_pinf.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_PINF + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_prag.prog.abap b/src/objects/zcl_abapgit_object_prag.clas.abap similarity index 90% rename from src/zabapgit_object_prag.prog.abap rename to src/objects/zcl_abapgit_object_prag.clas.abap index 6874d87d8..578e60623 100644 --- a/src/zabapgit_object_prag.prog.abap +++ b/src/objects/zcl_abapgit_object_prag.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_prag -*&---------------------------------------------------------------------* - -CLASS lcl_object_prag DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_prag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -30,7 +26,7 @@ CLASS lcl_object_prag DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_prag IMPLEMENTATION. +CLASS zcl_abapgit_object_prag IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -68,7 +64,7 @@ CLASS lcl_object_prag IMPLEMENTATION. METHOD zif_abapgit_object~serialize. DATA: lo_pragma TYPE REF TO cl_abap_pragma, - pragma TYPE lcl_object_prag=>ty_pragma. + pragma TYPE zcl_abapgit_object_prag=>ty_pragma. TRY. lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ). @@ -151,7 +147,7 @@ CLASS lcl_object_prag IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_prag.clas.xml b/src/objects/zcl_abapgit_object_prag.clas.xml new file mode 100644 index 000000000..78afabb30 --- /dev/null +++ b/src/objects/zcl_abapgit_object_prag.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_PRAG + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_prog.prog.abap b/src/objects/zcl_abapgit_object_prog.clas.abap similarity index 84% rename from src/zabapgit_object_prog.prog.abap rename to src/objects/zcl_abapgit_object_prog.clas.abap index c581cc8cb..78186e260 100644 --- a/src/zabapgit_object_prog.prog.abap +++ b/src/objects/zcl_abapgit_object_prog.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_PROG -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_prog DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_prog DEFINITION INHERITING FROM lcl_objects_program FINAL. +CLASS zcl_abapgit_object_prog DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_program FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -28,14 +19,9 @@ CLASS lcl_object_prog DEFINITION INHERITING FROM lcl_objects_program FINAL. IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_prog DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_prog IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_prog IMPLEMENTATION. +CLASS zcl_abapgit_object_prog IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -113,7 +99,7 @@ CLASS lcl_object_prog IMPLEMENTATION. " Texts serializing (translations) serialize_texts( io_xml ). - ENDMETHOD. "lif_serialize~serialize + ENDMETHOD. "zif_abapgit_serialize~serialize METHOD zif_abapgit_object~deserialize. @@ -156,10 +142,10 @@ CLASS lcl_object_prog IMPLEMENTATION. " Texts deserializing (translations) deserialize_texts( io_xml ). - ENDMETHOD. "lif_serialize~deserialize + ENDMETHOD. "zif_abapgit_serialize~deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. "zif_abapgit_object~compare_to_remote_version METHOD serialize_texts. @@ -213,4 +199,4 @@ CLASS lcl_object_prog IMPLEMENTATION. ENDMETHOD. "deserialize_texts -ENDCLASS. "lcl_object_prog IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_prog IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_prog.clas.xml b/src/objects/zcl_abapgit_object_prog.clas.xml new file mode 100644 index 000000000..f4770d3f9 --- /dev/null +++ b/src/objects/zcl_abapgit_object_prog.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_PROG + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_samc.clas.abap b/src/objects/zcl_abapgit_object_samc.clas.abap new file mode 100644 index 000000000..391f10c1b --- /dev/null +++ b/src/objects/zcl_abapgit_object_samc.clas.abap @@ -0,0 +1,31 @@ +CLASS zcl_abapgit_object_samc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_saxx_super FINAL. + + PROTECTED SECTION. + METHODS: + get_persistence_class_name REDEFINITION, + get_data_class_name REDEFINITION, + get_data_structure_name REDEFINITION. + +ENDCLASS. + +CLASS zcl_abapgit_object_samc IMPLEMENTATION. + + METHOD get_data_class_name. + + r_data_class_name = 'CL_AMC_APPLICATION_OBJ_DATA'. + + ENDMETHOD. + + METHOD get_data_structure_name. + + r_data_structure_name = 'AMC_APPLICATION_COMPLETE'. + + ENDMETHOD. + + METHOD get_persistence_class_name. + + r_persistence_class_name = 'CL_AMC_APPLICATION_OBJ_PERS'. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_samc.clas.xml b/src/objects/zcl_abapgit_object_samc.clas.xml new file mode 100644 index 000000000..f13cf063c --- /dev/null +++ b/src/objects/zcl_abapgit_object_samc.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SAMC + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_sapc.clas.abap b/src/objects/zcl_abapgit_object_sapc.clas.abap new file mode 100644 index 000000000..a802f8084 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sapc.clas.abap @@ -0,0 +1,31 @@ +CLASS zcl_abapgit_object_sapc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_saxx_super FINAL. + + PROTECTED SECTION. + METHODS: + get_persistence_class_name REDEFINITION, + get_data_class_name REDEFINITION, + get_data_structure_name REDEFINITION. + +ENDCLASS. + +CLASS zcl_abapgit_object_sapc IMPLEMENTATION. + + METHOD get_data_class_name. + + r_data_class_name = 'CL_APC_APPLICATION_OBJ_DATA'. + + ENDMETHOD. + + METHOD get_data_structure_name. + + r_data_structure_name = 'APC_APPLICATION_COMPLETE'. + + ENDMETHOD. + + METHOD get_persistence_class_name. + + r_persistence_class_name = 'CL_APC_APPLICATION_OBJ_PERS'. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_sapc.clas.xml b/src/objects/zcl_abapgit_object_sapc.clas.xml new file mode 100644 index 000000000..00b85e2f6 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sapc.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SAPC + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sfbf.prog.abap b/src/objects/zcl_abapgit_object_sfbf.clas.abap similarity index 86% rename from src/zabapgit_object_sfbf.prog.abap rename to src/objects/zcl_abapgit_object_sfbf.clas.abap index b1b8b285b..c621e545d 100644 --- a/src/zabapgit_object_sfbf.prog.abap +++ b/src/objects/zcl_abapgit_object_sfbf.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SFBF -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_SFBF DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfbf DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sfbf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,57 +9,12 @@ CLASS lcl_object_sfbf DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(ro_bf) TYPE REF TO cl_sfw_bf RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_SFBF DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_SFBF IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfbf IMPLEMENTATION. - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since - METHOD zif_abapgit_object~changed_by. +CLASS ZCL_ABAPGIT_OBJECT_SFBF IMPLEMENTATION. - DATA: ls_data TYPE sfw_bf. - - ls_data = get( )->get_header_data( ). - - rv_user = ls_data-changedby. - - IF rv_user IS INITIAL. - rv_user = ls_data-author. - ENDIF. - - ENDMETHOD. - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - rs_metadata-ddic = abap_true. - ENDMETHOD. "zif_abapgit_object~get_metadata - - METHOD zif_abapgit_object~exists. - - DATA: ls_tadir TYPE tadir, - lv_bf TYPE sfw_bfunction. - - lv_bf = ms_item-obj_name. - IF cl_sfw_bf=>check_existence( lv_bf ) = abap_false. - RETURN. - ENDIF. - - ls_tadir = lcl_tadir=>read_single( - iv_object = ms_item-obj_type - iv_obj_name = ms_item-obj_name ). - IF ls_tadir IS INITIAL. - RETURN. - ENDIF. - - rv_bool = abap_true. - ENDMETHOD. "zif_abapgit_object~exists METHOD get. @@ -88,68 +34,47 @@ CLASS lcl_object_sfbf IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_object~serialize. - DATA: lo_bf TYPE REF TO cl_sfw_bf, - ls_header TYPE sfw_bf, - lv_name_32 TYPE sfw_name32, - lv_name_80 TYPE sfw_name80, - lt_assigned_switches TYPE sfw_swbf_outtab, - lt_dependancies TYPE sfw_depend_outtab, - ls_sfw_bfc_kw TYPE sfw_bfc_kw, - ls_sfw_bfc_tc TYPE sfw_bfc_tc, - ls_sfw_bfc_rn TYPE sfw_bfc_rn, - lt_parent_bfs TYPE sfw_bs_bf_outtab. + METHOD zif_abapgit_object~changed_by. + DATA: ls_data TYPE sfw_bf. - IF zif_abapgit_object~exists( ) = abap_false. - RETURN. + ls_data = get( )->get_header_data( ). + + rv_user = ls_data-changedby. + + IF rv_user IS INITIAL. + rv_user = ls_data-author. ENDIF. - lo_bf = get( ). + ENDMETHOD. - ls_header = lo_bf->get_header_data( ). - CLEAR: ls_header-author, - ls_header-createdon, - ls_header-changedby, - ls_header-changedon, - ls_header-timestamp. - lo_bf->get_texts( - IMPORTING - p_32 = lv_name_32 - p_80 = lv_name_80 ). + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. - lt_assigned_switches = lo_bf->get_assigned_switches( ). - lt_dependancies = lo_bf->get_excluded_bf( ). - lo_bf->get_content_data( - IMPORTING - ex_sfw_bfc_kw = ls_sfw_bfc_kw - ex_sfw_bfc_tc = ls_sfw_bfc_tc - ex_sfw_bfc_rn = ls_sfw_bfc_rn ). - lt_parent_bfs = lo_bf->get_parent_bfs( ). - io_xml->add( ig_data = ls_header - iv_name = 'HEADER' ). - io_xml->add( ig_data = lv_name_32 - iv_name = 'NAME32' ). - io_xml->add( ig_data = lv_name_80 - iv_name = 'NAME80' ). + METHOD zif_abapgit_object~delete. - io_xml->add( ig_data = lt_assigned_switches - iv_name = 'ASSIGNED_SWITCHES' ). - io_xml->add( ig_data = lt_dependancies - iv_name = 'DEPENDANCIES' ). - io_xml->add( ig_data = ls_sfw_bfc_kw - iv_name = 'CONTENT_KW' ). - io_xml->add( ig_data = ls_sfw_bfc_tc - iv_name = 'CONTENT_TC' ). - io_xml->add( ig_data = ls_sfw_bfc_rn - iv_name = 'CONTENT_RN' ). - io_xml->add( ig_data = lt_parent_bfs - iv_name = 'PARENT_BFS' ). + DATA: lv_bf TYPE sfw_bfunction, + lt_delete TYPE sfw_bftab, + lt_msgtab TYPE sprot_u_tab. + + + lv_bf = ms_item-obj_name. + APPEND lv_bf TO lt_delete. + + cl_sfw_activate=>delete_sfbf( EXPORTING p_bfuncts = lt_delete + IMPORTING p_msgtab = lt_msgtab ). + + READ TABLE lt_msgtab WITH KEY severity = 'E' TRANSPORTING NO FIELDS. + IF sy-subrc = 0. + zcx_abapgit_exception=>raise( 'Error deleting SFBF' ). + ENDIF. + + ENDMETHOD. "delete - ENDMETHOD. "serialize METHOD zif_abapgit_object~deserialize. @@ -217,25 +142,39 @@ CLASS lcl_object_sfbf IMPLEMENTATION. ENDMETHOD. "deserialize - METHOD zif_abapgit_object~delete. - DATA: lv_bf TYPE sfw_bfunction, - lt_delete TYPE sfw_bftab, - lt_msgtab TYPE sprot_u_tab. + METHOD zif_abapgit_object~exists. + DATA: ls_tadir TYPE tadir, + lv_bf TYPE sfw_bfunction. lv_bf = ms_item-obj_name. - APPEND lv_bf TO lt_delete. - - cl_sfw_activate=>delete_sfbf( EXPORTING p_bfuncts = lt_delete - IMPORTING p_msgtab = lt_msgtab ). - - READ TABLE lt_msgtab WITH KEY severity = 'E' TRANSPORTING NO FIELDS. - IF sy-subrc = 0. - zcx_abapgit_exception=>raise( 'Error deleting SFBF' ). + IF cl_sfw_bf=>check_existence( lv_bf ) = abap_false. + RETURN. ENDIF. - ENDMETHOD. "delete + SELECT SINGLE * FROM tadir INTO ls_tadir + WHERE pgmid = 'R3TR' + AND object = ms_item-obj_type + AND obj_name = ms_item-obj_name. + IF ls_tadir IS INITIAL. + RETURN. + ENDIF. + + rv_bool = abap_true. + ENDMETHOD. "zif_abapgit_object~exists + + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + rs_metadata-ddic = abap_true. + ENDMETHOD. "zif_abapgit_object~get_metadata + + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "zif_abapgit_object~has_changed_since + METHOD zif_abapgit_object~jump. @@ -248,8 +187,67 @@ CLASS lcl_object_sfbf IMPLEMENTATION. ENDMETHOD. "jump - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. -ENDCLASS. "lcl_object_SFBF IMPLEMENTATION + METHOD zif_abapgit_object~serialize. + + DATA: lo_bf TYPE REF TO cl_sfw_bf, + ls_header TYPE sfw_bf, + lv_name_32 TYPE sfw_name32, + lv_name_80 TYPE sfw_name80, + lt_assigned_switches TYPE sfw_swbf_outtab, + lt_dependancies TYPE sfw_depend_outtab, + ls_sfw_bfc_kw TYPE sfw_bfc_kw, + ls_sfw_bfc_tc TYPE sfw_bfc_tc, + ls_sfw_bfc_rn TYPE sfw_bfc_rn, + lt_parent_bfs TYPE sfw_bs_bf_outtab. + + + IF zif_abapgit_object~exists( ) = abap_false. + RETURN. + ENDIF. + + lo_bf = get( ). + + ls_header = lo_bf->get_header_data( ). + CLEAR: ls_header-author, + ls_header-createdon, + ls_header-changedby, + ls_header-changedon, + ls_header-timestamp. + + lo_bf->get_texts( + IMPORTING + p_32 = lv_name_32 + p_80 = lv_name_80 ). + + lt_assigned_switches = lo_bf->get_assigned_switches( ). + lt_dependancies = lo_bf->get_excluded_bf( ). + lo_bf->get_content_data( + IMPORTING + ex_sfw_bfc_kw = ls_sfw_bfc_kw + ex_sfw_bfc_tc = ls_sfw_bfc_tc + ex_sfw_bfc_rn = ls_sfw_bfc_rn ). + lt_parent_bfs = lo_bf->get_parent_bfs( ). + + io_xml->add( ig_data = ls_header + iv_name = 'HEADER' ). + io_xml->add( ig_data = lv_name_32 + iv_name = 'NAME32' ). + io_xml->add( ig_data = lv_name_80 + iv_name = 'NAME80' ). + + io_xml->add( ig_data = lt_assigned_switches + iv_name = 'ASSIGNED_SWITCHES' ). + io_xml->add( ig_data = lt_dependancies + iv_name = 'DEPENDANCIES' ). + io_xml->add( ig_data = ls_sfw_bfc_kw + iv_name = 'CONTENT_KW' ). + io_xml->add( ig_data = ls_sfw_bfc_tc + iv_name = 'CONTENT_TC' ). + io_xml->add( ig_data = ls_sfw_bfc_rn + iv_name = 'CONTENT_RN' ). + io_xml->add( ig_data = lt_parent_bfs + iv_name = 'PARENT_BFS' ). + + ENDMETHOD. "serialize +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_sfbf.clas.xml b/src/objects/zcl_abapgit_object_sfbf.clas.xml new file mode 100644 index 000000000..5c9415229 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sfbf.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SFBF + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sfbs.prog.abap b/src/objects/zcl_abapgit_object_sfbs.clas.abap similarity index 83% rename from src/zabapgit_object_sfbs.prog.abap rename to src/objects/zcl_abapgit_object_sfbs.clas.abap index c8c1d8af9..7ccbda572 100644 --- a/src/zabapgit_object_sfbs.prog.abap +++ b/src/objects/zcl_abapgit_object_sfbs.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SFBS -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_SFBS DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfbs DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sfbs DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,32 +9,12 @@ CLASS lcl_object_sfbs DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(ro_bfs) TYPE REF TO cl_sfw_bfs RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_SFBS DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_SFBS IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfbs IMPLEMENTATION. - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since - METHOD zif_abapgit_object~changed_by. +CLASS ZCL_ABAPGIT_OBJECT_SFBS IMPLEMENTATION. - DATA: ls_data TYPE sfw_bs. - - ls_data = get( )->get_header_data( ). - - rv_user = ls_data-changedby. - - IF rv_user IS INITIAL. - rv_user = ls_data-author. - ENDIF. - - ENDMETHOD. METHOD get. @@ -62,81 +33,47 @@ CLASS lcl_object_sfbs IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - rs_metadata-ddic = abap_true. - ENDMETHOD. "zif_abapgit_object~get_metadata - METHOD zif_abapgit_object~exists. + METHOD zif_abapgit_object~changed_by. - DATA: ls_tadir TYPE tadir, - lv_bfset TYPE sfw_bset. + DATA: ls_data TYPE sfw_bs. + + ls_data = get( )->get_header_data( ). + + rv_user = ls_data-changedby. + + IF rv_user IS INITIAL. + rv_user = ls_data-author. + ENDIF. + + ENDMETHOD. + + + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. + + + METHOD zif_abapgit_object~delete. + + DATA: lv_bfset TYPE sfw_bset, + lt_delete TYPE sfw_bstab, + lt_msgtab TYPE sprot_u_tab. lv_bfset = ms_item-obj_name. - IF cl_sfw_bfs=>check_existence( lv_bfset ) = abap_false. - RETURN. + APPEND lv_bfset TO lt_delete. + + cl_sfw_activate=>delete_sfbs( EXPORTING p_bsets = lt_delete + IMPORTING p_msgtab = lt_msgtab ). + + READ TABLE lt_msgtab WITH KEY severity = 'E' TRANSPORTING NO FIELDS. + IF sy-subrc = 0. + zcx_abapgit_exception=>raise( 'Error deleting SFBS' ). ENDIF. - ls_tadir = lcl_tadir=>read_single( - iv_object = ms_item-obj_type - iv_obj_name = ms_item-obj_name ). - IF ls_tadir IS INITIAL. - RETURN. - ENDIF. + ENDMETHOD. "delete - rv_bool = abap_true. - - ENDMETHOD. "zif_abapgit_object~exists - - METHOD zif_abapgit_object~serialize. - - DATA: lo_bfs TYPE REF TO cl_sfw_bfs, - ls_header TYPE sfw_bs, - lv_name_32 TYPE sfw_name32, - lv_name_80 TYPE sfw_name80, - lt_assigned_bf TYPE sfw_bfbs_outtab, - lt_nested_bfs TYPE sfw_bsbs_outtab, - lt_parent_bfs TYPE sfw_bs_bs_parent_outtab. - - - IF zif_abapgit_object~exists( ) = abap_false. - RETURN. - ENDIF. - - lo_bfs = get( ). - - ls_header = lo_bfs->get_header_data( ). - CLEAR: ls_header-author, - ls_header-createdon, - ls_header-changedby, - ls_header-changedon, - ls_header-timestamp. - - lo_bfs->get_texts( - IMPORTING - p_32 = lv_name_32 - p_80 = lv_name_80 ). - - lt_assigned_bf = lo_bfs->get_assigned_bf( ). - lt_nested_bfs = lo_bfs->get_nested_bfs( ). - lt_parent_bfs = lo_bfs->get_nested_parent( ). - - io_xml->add( ig_data = ls_header - iv_name = 'HEADER' ). - io_xml->add( ig_data = lv_name_32 - iv_name = 'NAME32' ). - io_xml->add( ig_data = lv_name_80 - iv_name = 'NAME80' ). - - io_xml->add( ig_data = lt_assigned_bf - iv_name = 'ASSIGNED_BF' ). - io_xml->add( ig_data = lt_nested_bfs - iv_name = 'NESTED_BFS' ). - io_xml->add( ig_data = lt_parent_bfs - iv_name = 'PARENT_BFS' ). - - ENDMETHOD. "serialize METHOD zif_abapgit_object~deserialize. @@ -191,25 +128,41 @@ CLASS lcl_object_sfbs IMPLEMENTATION. ENDMETHOD. "deserialize - METHOD zif_abapgit_object~delete. - DATA: lv_bfset TYPE sfw_bset, - lt_delete TYPE sfw_bstab, - lt_msgtab TYPE sprot_u_tab. + METHOD zif_abapgit_object~exists. + + DATA: ls_tadir TYPE tadir, + lv_bfset TYPE sfw_bset. lv_bfset = ms_item-obj_name. - APPEND lv_bfset TO lt_delete. - - cl_sfw_activate=>delete_sfbs( EXPORTING p_bsets = lt_delete - IMPORTING p_msgtab = lt_msgtab ). - - READ TABLE lt_msgtab WITH KEY severity = 'E' TRANSPORTING NO FIELDS. - IF sy-subrc = 0. - zcx_abapgit_exception=>raise( 'Error deleting SFBS' ). + IF cl_sfw_bfs=>check_existence( lv_bfset ) = abap_false. + RETURN. ENDIF. - ENDMETHOD. "delete + SELECT SINGLE * FROM tadir INTO ls_tadir + WHERE pgmid = 'R3TR' + AND object = ms_item-obj_type + AND obj_name = ms_item-obj_name. + IF ls_tadir IS INITIAL. + RETURN. + ENDIF. + + rv_bool = abap_true. + + ENDMETHOD. "zif_abapgit_object~exists + + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + rs_metadata-ddic = abap_true. + ENDMETHOD. "zif_abapgit_object~get_metadata + + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "zif_abapgit_object~has_changed_since + METHOD zif_abapgit_object~jump. @@ -222,8 +175,53 @@ CLASS lcl_object_sfbs IMPLEMENTATION. ENDMETHOD. "jump - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. -ENDCLASS. "lcl_object_SFBS IMPLEMENTATION + METHOD zif_abapgit_object~serialize. + + DATA: lo_bfs TYPE REF TO cl_sfw_bfs, + ls_header TYPE sfw_bs, + lv_name_32 TYPE sfw_name32, + lv_name_80 TYPE sfw_name80, + lt_assigned_bf TYPE sfw_bfbs_outtab, + lt_nested_bfs TYPE sfw_bsbs_outtab, + lt_parent_bfs TYPE sfw_bs_bs_parent_outtab. + + + IF zif_abapgit_object~exists( ) = abap_false. + RETURN. + ENDIF. + + lo_bfs = get( ). + + ls_header = lo_bfs->get_header_data( ). + CLEAR: ls_header-author, + ls_header-createdon, + ls_header-changedby, + ls_header-changedon, + ls_header-timestamp. + + lo_bfs->get_texts( + IMPORTING + p_32 = lv_name_32 + p_80 = lv_name_80 ). + + lt_assigned_bf = lo_bfs->get_assigned_bf( ). + lt_nested_bfs = lo_bfs->get_nested_bfs( ). + lt_parent_bfs = lo_bfs->get_nested_parent( ). + + io_xml->add( ig_data = ls_header + iv_name = 'HEADER' ). + io_xml->add( ig_data = lv_name_32 + iv_name = 'NAME32' ). + io_xml->add( ig_data = lv_name_80 + iv_name = 'NAME80' ). + + io_xml->add( ig_data = lt_assigned_bf + iv_name = 'ASSIGNED_BF' ). + io_xml->add( ig_data = lt_nested_bfs + iv_name = 'NESTED_BFS' ). + io_xml->add( ig_data = lt_parent_bfs + iv_name = 'PARENT_BFS' ). + + ENDMETHOD. "serialize +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_sfbs.clas.xml b/src/objects/zcl_abapgit_object_sfbs.clas.xml new file mode 100644 index 000000000..b74c1c5c3 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sfbs.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SFBS + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sfpf.prog.abap b/src/objects/zcl_abapgit_object_sfpf.clas.abap similarity index 84% rename from src/zabapgit_object_sfpf.prog.abap rename to src/objects/zcl_abapgit_object_sfpf.clas.abap index 6b0ded485..f5d4e97de 100644 --- a/src/zabapgit_object_sfpf.prog.abap +++ b/src/objects/zcl_abapgit_object_sfpf.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_DOMA -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_doma DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfpf DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sfpf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -26,14 +17,9 @@ CLASS lcl_object_sfpf DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(rv_xstr) TYPE xstring RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_doma DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_doma IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfpf IMPLEMENTATION. +CLASS zcl_abapgit_object_sfpf IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -222,7 +208,7 @@ CLASS lcl_object_sfpf IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_doma IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_sfpf.clas.xml b/src/objects/zcl_abapgit_object_sfpf.clas.xml new file mode 100644 index 000000000..f4eaa0ad8 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sfpf.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SFPF + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sfpi.prog.abap b/src/objects/zcl_abapgit_object_sfpi.clas.abap similarity index 79% rename from src/zabapgit_object_sfpi.prog.abap rename to src/objects/zcl_abapgit_object_sfpi.clas.abap index 6117ddee8..b842b30ac 100644 --- a/src/zabapgit_object_sfpi.prog.abap +++ b/src/objects/zcl_abapgit_object_sfpi.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_DOMA -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_doma DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfpi DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sfpi DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -22,14 +13,9 @@ CLASS lcl_object_sfpi DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(rv_xstr) TYPE xstring RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_doma DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_doma IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfpi IMPLEMENTATION. +CLASS zcl_abapgit_object_sfpi IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -136,7 +122,7 @@ CLASS lcl_object_sfpi IMPLEMENTATION. lv_xstr = interface_to_xstring( ). li_document = cl_ixml_80_20=>parse_to_document( stream_xstring = lv_xstr ). - lcl_object_sfpf=>fix_oref( li_document ). + zcl_abapgit_object_sfpf=>fix_oref( li_document ). io_xml->set_raw( li_document->get_root_element( ) ). ENDMETHOD. "serialize @@ -168,7 +154,7 @@ CLASS lcl_object_sfpi IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_doma IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_sfpi.clas.xml b/src/objects/zcl_abapgit_object_sfpi.clas.xml new file mode 100644 index 000000000..bbff92be0 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sfpi.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SFPI + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sfsw.prog.abap b/src/objects/zcl_abapgit_object_sfsw.clas.abap similarity index 82% rename from src/zabapgit_object_sfsw.prog.abap rename to src/objects/zcl_abapgit_object_sfsw.clas.abap index e7f67a99c..01a2b5a31 100644 --- a/src/zabapgit_object_sfsw.prog.abap +++ b/src/objects/zcl_abapgit_object_sfsw.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SFSW -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_sfsw DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfsw DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sfsw DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -18,58 +9,12 @@ CLASS lcl_object_sfsw DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(ro_switch) TYPE REF TO cl_sfw_sw RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_sfsw DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_sfsw IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sfsw IMPLEMENTATION. - - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since - - METHOD zif_abapgit_object~changed_by. - - DATA: ls_data TYPE sfw_switch. +ENDCLASS. - ls_data = get( )->get_header_data( ). - rv_user = ls_data-changedby. - IF rv_user IS INITIAL. - rv_user = ls_data-author. - ENDIF. +CLASS ZCL_ABAPGIT_OBJECT_SFSW IMPLEMENTATION. - ENDMETHOD. - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - rs_metadata-ddic = abap_true. - ENDMETHOD. "zif_abapgit_object~get_metadata - - METHOD zif_abapgit_object~exists. - - DATA: ls_tadir TYPE tadir, - lv_switch_id TYPE sfw_switch_id. - - - lv_switch_id = ms_item-obj_name. - IF cl_sfw_sw=>check_existence( lv_switch_id ) = abap_false. - RETURN. - ENDIF. - - ls_tadir = lcl_tadir=>read_single( - iv_object = ms_item-obj_type - iv_obj_name = ms_item-obj_name ). - IF ls_tadir IS INITIAL. - RETURN. - ENDIF. - - rv_bool = abap_true. - ENDMETHOD. "zif_abapgit_object~exists METHOD get. @@ -85,50 +30,44 @@ CLASS lcl_object_sfsw IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_object~serialize. - DATA: lo_switch TYPE REF TO cl_sfw_sw, - ls_header TYPE sfw_switch, - lv_name_32 TYPE sfw_name32, - lv_name_80 TYPE sfw_name80, - lt_parent_bf TYPE sfw_bf_sw_outtab, - lt_conflicts TYPE sfw_confl_outtab. + METHOD zif_abapgit_object~changed_by. + + DATA: ls_data TYPE sfw_switch. - IF zif_abapgit_object~exists( ) = abap_false. - RETURN. + ls_data = get( )->get_header_data( ). + + rv_user = ls_data-changedby. + IF rv_user IS INITIAL. + rv_user = ls_data-author. ENDIF. - lo_switch = get( ). + ENDMETHOD. - ls_header = lo_switch->get_header_data( ). - CLEAR: ls_header-author, - ls_header-createdon, - ls_header-changedby, - ls_header-changedon, - ls_header-timestamp. - lo_switch->get_texts( - IMPORTING - p_32 = lv_name_32 - p_80 = lv_name_80 ). + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. - lt_parent_bf = lo_switch->get_parent_bf( ). - lt_conflicts = lo_switch->get_conflicts( ). - io_xml->add( ig_data = ls_header - iv_name = 'HEADER' ). - io_xml->add( ig_data = lv_name_32 - iv_name = 'NAME32' ). - io_xml->add( ig_data = lv_name_80 - iv_name = 'NAME80' ). + METHOD zif_abapgit_object~delete. - io_xml->add( ig_data = lt_parent_bf - iv_name = 'PARENT_BF' ). - io_xml->add( ig_data = lt_conflicts - iv_name = 'CONFLICTS' ). + DATA: lv_switch_id TYPE sfw_switch_id, + lo_switch TYPE REF TO cl_sfw_sw. + + + lv_switch_id = ms_item-obj_name. + TRY. + lo_switch = cl_sfw_sw=>get_switch( lv_switch_id ). + lo_switch->set_delete_flag( lv_switch_id ). + lo_switch->save_all( ). + CATCH cx_pak_invalid_data cx_pak_invalid_state cx_pak_not_authorized. + zcx_abapgit_exception=>raise( 'Error deleting Switch' ). + ENDTRY. + + ENDMETHOD. "delete - ENDMETHOD. "serialize METHOD zif_abapgit_object~deserialize. @@ -185,22 +124,40 @@ CLASS lcl_object_sfsw IMPLEMENTATION. ENDMETHOD. "deserialize - METHOD zif_abapgit_object~delete. - DATA: lv_switch_id TYPE sfw_switch_id, - lo_switch TYPE REF TO cl_sfw_sw. + METHOD zif_abapgit_object~exists. + + DATA: ls_tadir TYPE tadir, + lv_switch_id TYPE sfw_switch_id. lv_switch_id = ms_item-obj_name. - TRY. - lo_switch = cl_sfw_sw=>get_switch( lv_switch_id ). - lo_switch->set_delete_flag( lv_switch_id ). - lo_switch->save_all( ). - CATCH cx_pak_invalid_data cx_pak_invalid_state cx_pak_not_authorized. - zcx_abapgit_exception=>raise( 'Error deleting Switch' ). - ENDTRY. + IF cl_sfw_sw=>check_existence( lv_switch_id ) = abap_false. + RETURN. + ENDIF. + + SELECT SINGLE * FROM tadir INTO ls_tadir + WHERE pgmid = 'R3TR' + AND object = ms_item-obj_type + AND obj_name = ms_item-obj_name. + IF ls_tadir IS INITIAL. + RETURN. + ENDIF. + + rv_bool = abap_true. + ENDMETHOD. "zif_abapgit_object~exists + + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + rs_metadata-ddic = abap_true. + ENDMETHOD. "zif_abapgit_object~get_metadata + + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "zif_abapgit_object~has_changed_since - ENDMETHOD. "delete METHOD zif_abapgit_object~jump. @@ -213,8 +170,49 @@ CLASS lcl_object_sfsw IMPLEMENTATION. ENDMETHOD. "jump - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. -ENDCLASS. "lcl_object_sfsw IMPLEMENTATION + METHOD zif_abapgit_object~serialize. + + DATA: lo_switch TYPE REF TO cl_sfw_sw, + ls_header TYPE sfw_switch, + lv_name_32 TYPE sfw_name32, + lv_name_80 TYPE sfw_name80, + lt_parent_bf TYPE sfw_bf_sw_outtab, + lt_conflicts TYPE sfw_confl_outtab. + + + IF zif_abapgit_object~exists( ) = abap_false. + RETURN. + ENDIF. + + lo_switch = get( ). + + ls_header = lo_switch->get_header_data( ). + CLEAR: ls_header-author, + ls_header-createdon, + ls_header-changedby, + ls_header-changedon, + ls_header-timestamp. + + lo_switch->get_texts( + IMPORTING + p_32 = lv_name_32 + p_80 = lv_name_80 ). + + lt_parent_bf = lo_switch->get_parent_bf( ). + lt_conflicts = lo_switch->get_conflicts( ). + + io_xml->add( ig_data = ls_header + iv_name = 'HEADER' ). + io_xml->add( ig_data = lv_name_32 + iv_name = 'NAME32' ). + io_xml->add( ig_data = lv_name_80 + iv_name = 'NAME80' ). + + io_xml->add( ig_data = lt_parent_bf + iv_name = 'PARENT_BF' ). + io_xml->add( ig_data = lt_conflicts + iv_name = 'CONFLICTS' ). + + ENDMETHOD. "serialize +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_sfsw.clas.xml b/src/objects/zcl_abapgit_object_sfsw.clas.xml new file mode 100644 index 000000000..65bd812cb --- /dev/null +++ b/src/objects/zcl_abapgit_object_sfsw.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SFSW + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_shi3.prog.abap b/src/objects/zcl_abapgit_object_shi3.clas.abap similarity index 89% rename from src/zabapgit_object_shi3.prog.abap rename to src/objects/zcl_abapgit_object_shi3.clas.abap index 05a0ffc68..dd65fc8e8 100644 --- a/src/zabapgit_object_shi3.prog.abap +++ b/src/objects/zcl_abapgit_object_shi3.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SHI3 -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_shi3 DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_shi3 DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_shi3 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -29,12 +22,9 @@ CLASS lcl_object_shi3 DEFINITION INHERITING FROM lcl_objects_super FINAL. CHANGING cs_head TYPE ttree ct_nodes TYPE hier_iface_t. -ENDCLASS. "lcl_object_shi3 DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_shi3 IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_shi3 IMPLEMENTATION. +CLASS zcl_abapgit_object_shi3 IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -268,7 +258,7 @@ CLASS lcl_object_shi3 IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_shi3 IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_shi3 IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_shi3.clas.xml b/src/objects/zcl_abapgit_object_shi3.clas.xml new file mode 100644 index 000000000..d9082a87b --- /dev/null +++ b/src/objects/zcl_abapgit_object_shi3.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SHI3 + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_shi5.prog.abap b/src/objects/zcl_abapgit_object_shi5.clas.abap similarity index 79% rename from src/zabapgit_object_shi5.prog.abap rename to src/objects/zcl_abapgit_object_shi5.clas.abap index 9e9ce5385..b294fc52e 100644 --- a/src/zabapgit_object_shi5.prog.abap +++ b/src/objects/zcl_abapgit_object_shi5.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_shi5 -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_shi5 DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_shi5 DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_shi5 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -27,12 +20,9 @@ CLASS lcl_object_shi5 DEFINITION INHERITING FROM lcl_objects_super FINAL. DATA: mv_extension TYPE hier_names. -ENDCLASS. "lcl_object_shi5 DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_shi5 IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_shi5 IMPLEMENTATION. +CLASS zcl_abapgit_object_shi5 IMPLEMENTATION. METHOD constructor. @@ -133,7 +123,7 @@ CLASS lcl_object_shi5 IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_shi5 IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_shi5 IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_shi5.clas.xml b/src/objects/zcl_abapgit_object_shi5.clas.xml new file mode 100644 index 000000000..bb375344a --- /dev/null +++ b/src/objects/zcl_abapgit_object_shi5.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SHI5 + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_shi8.prog.abap b/src/objects/zcl_abapgit_object_shi8.clas.abap similarity index 81% rename from src/zabapgit_object_shi8.prog.abap rename to src/objects/zcl_abapgit_object_shi8.clas.abap index b7746e591..c57406721 100644 --- a/src/zabapgit_object_shi8.prog.abap +++ b/src/objects/zcl_abapgit_object_shi8.clas.abap @@ -1,11 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_shi8 -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_shi8 DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_shi8 DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_shi8 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -19,12 +12,9 @@ CLASS lcl_object_shi8 DEFINITION INHERITING FROM lcl_objects_super FINAL. PRIVATE SECTION. DATA: mv_assignment_id TYPE hier_sfw_id. -ENDCLASS. "lcl_object_shi8 DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_shi8 IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_shi8 IMPLEMENTATION. +CLASS zcl_abapgit_object_shi8 IMPLEMENTATION. METHOD constructor. @@ -139,7 +129,7 @@ CLASS lcl_object_shi8 IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_shi8 IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_shi8 IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_shi8.clas.xml b/src/objects/zcl_abapgit_object_shi8.clas.xml new file mode 100644 index 000000000..66b6d28d9 --- /dev/null +++ b/src/objects/zcl_abapgit_object_shi8.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SHI8 + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_shlp.prog.abap b/src/objects/zcl_abapgit_object_shlp.clas.abap similarity index 83% rename from src/zabapgit_object_shlp.prog.abap rename to src/objects/zcl_abapgit_object_shlp.clas.abap index 27c9530e0..ef17e7bbb 100644 --- a/src/zabapgit_object_shlp.prog.abap +++ b/src/objects/zcl_abapgit_object_shlp.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SHLP -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_shlp DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_shlp DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_shlp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_dtel IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_shlp IMPLEMENTATION. +CLASS zcl_abapgit_object_shlp IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -207,7 +193,7 @@ CLASS lcl_object_shlp IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_shlp IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_shlp IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_shlp.clas.xml b/src/objects/zcl_abapgit_object_shlp.clas.xml new file mode 100644 index 000000000..ee413bc0c --- /dev/null +++ b/src/objects/zcl_abapgit_object_shlp.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SHLP + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_shma.prog.abap b/src/objects/zcl_abapgit_object_shma.clas.abap similarity index 90% rename from src/zabapgit_object_shma.prog.abap rename to src/objects/zcl_abapgit_object_shma.clas.abap index 5e8d88651..e7322f027 100644 --- a/src/zabapgit_object_shma.prog.abap +++ b/src/objects/zcl_abapgit_object_shma.clas.abap @@ -1,15 +1,11 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_shma -*&---------------------------------------------------------------------* - -CLASS lcl_object_shma DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_shma DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ENDCLASS. -CLASS lcl_object_shma IMPLEMENTATION. +CLASS zcl_abapgit_object_shma IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -50,7 +46,7 @@ CLASS lcl_object_shma IMPLEMENTATION. lv_area_name = ms_item-obj_name. TRY. - CALL METHOD ('\PROGRAM=SAPLSHMA\CLASS=LCL_SHMA_HELPER')=>('READ_AREA_ATTRIBUTES_ALL') + CALL METHOD ('\PROGRAM=SAPLSHMA\CLASS=ZCL_ABAPGIT_SHMA_HELPER')=>('READ_AREA_ATTRIBUTES_ALL') EXPORTING area_name = lv_area_name IMPORTING @@ -86,7 +82,7 @@ CLASS lcl_object_shma IMPLEMENTATION. cg_data = ls_area_attributes ). TRY. - CALL METHOD ('\PROGRAM=SAPLSHMA\CLASS=LCL_SHMA_HELPER')=>('INSERT_AREA') + CALL METHOD ('\PROGRAM=SAPLSHMA\CLASS=ZCL_ABAPGIT_SHMA_HELPER')=>('INSERT_AREA') EXPORTING area_name = lv_area_name attributes = ls_area_attributes @@ -140,12 +136,12 @@ CLASS lcl_object_shma IMPLEMENTATION. zcx_abapgit_exception=>raise( |Error deleting SHMA { ms_item-obj_name }| ). ENDIF. - CALL METHOD ('\PROGRAM=SAPMSHM_MONITOR\CLASS=LCL_SHMM')=>('FREE_AREA_BY_NAME') + CALL METHOD ('\PROGRAM=SAPMSHM_MONITOR\CLASS=ZCL_ABAPGIT_SHMM')=>('FREE_AREA_BY_NAME') EXPORTING area_name = lv_area_name affect_server = cl_shm_area=>affect_all_servers. - CREATE OBJECT lo_cts_if TYPE ('\FUNCTION-POOL=SHMA\CLASS=LCL_CTS_INTERFACE') + CREATE OBJECT lo_cts_if TYPE ('\FUNCTION-POOL=SHMA\CLASS=ZCL_ABAPGIT_CTS_INTERFACE') EXPORTING area = lv_area_name. @@ -209,7 +205,7 @@ CLASS lcl_object_shma IMPLEMENTATION. ENDIF. - CALL METHOD ('\PROGRAM=SAPLSHMA\CLASS=LCL_SHMA_HELPER')=>('DELETE_RUNTIME_SETTINGS') + CALL METHOD ('\PROGRAM=SAPLSHMA\CLASS=ZCL_ABAPGIT_SHMA_HELPER')=>('DELETE_RUNTIME_SETTINGS') EXPORTING area_name = lv_area_name. @@ -266,7 +262,7 @@ CLASS lcl_object_shma IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_shma.clas.xml b/src/objects/zcl_abapgit_object_shma.clas.xml new file mode 100644 index 000000000..b67fc1912 --- /dev/null +++ b/src/objects/zcl_abapgit_object_shma.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SHMA + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sicf.prog.abap b/src/objects/zcl_abapgit_object_sicf.clas.abap similarity index 77% rename from src/zabapgit_object_sicf.prog.abap rename to src/objects/zcl_abapgit_object_sicf.clas.abap index b42e32bb4..92de41a68 100644 --- a/src/zabapgit_object_sicf.prog.abap +++ b/src/objects/zcl_abapgit_object_sicf.clas.abap @@ -1,331 +1,87 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SICF -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_sicf DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sicf DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sicf DEFINITION + PUBLIC + INHERITING FROM zcl_abapgit_objects_super + FINAL + CREATE PUBLIC . PUBLIC SECTION. - INTERFACES zif_abapgit_object. - ALIASES mo_files FOR zif_abapgit_object~mo_files. + INTERFACES zif_abapgit_object . + + ALIASES mo_files + FOR zif_abapgit_object~mo_files . + + CLASS-METHODS read_tadir_sicf + IMPORTING + !iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR' + !iv_obj_name TYPE tadir-obj_name + RETURNING + VALUE(rs_tadir) TYPE tadir + RAISING + zcx_abapgit_exception . + CLASS-METHODS read_sicf_url + IMPORTING + !iv_obj_name TYPE tadir-obj_name + RETURNING + VALUE(rv_hash) TYPE text25 + RAISING + zcx_abapgit_exception . PRIVATE SECTION. - TYPES: ty_icfhandler_tt TYPE STANDARD TABLE OF icfhandler WITH DEFAULT KEY. - TYPES: BEGIN OF ty_sicf_key, - icf_name TYPE icfservice-icf_name, - icfparguid TYPE icfservice-icfparguid, - END OF ty_sicf_key. + TYPES: + ty_icfhandler_tt TYPE STANDARD TABLE OF icfhandler WITH DEFAULT KEY . + TYPES: + BEGIN OF ty_sicf_key, + icf_name TYPE icfservice-icf_name, + icfparguid TYPE icfservice-icfparguid, + END OF ty_sicf_key . METHODS read - IMPORTING iv_clear TYPE abap_bool DEFAULT abap_true - EXPORTING es_icfservice TYPE icfservice - es_icfdocu TYPE icfdocu - et_icfhandler TYPE ty_icfhandler_tt - ev_url TYPE string - RAISING zcx_abapgit_exception. - + IMPORTING + !iv_clear TYPE abap_bool DEFAULT abap_true + EXPORTING + !es_icfservice TYPE icfservice + !es_icfdocu TYPE icfdocu + !et_icfhandler TYPE ty_icfhandler_tt + !ev_url TYPE string + RAISING + zcx_abapgit_exception . METHODS insert_sicf - IMPORTING is_icfservice TYPE icfservice - is_icfdocu TYPE icfdocu - it_icfhandler TYPE ty_icfhandler_tt - iv_package TYPE devclass - iv_url TYPE string - RAISING zcx_abapgit_exception. - + IMPORTING + !is_icfservice TYPE icfservice + !is_icfdocu TYPE icfdocu + !it_icfhandler TYPE ty_icfhandler_tt + !iv_package TYPE devclass + !iv_url TYPE string + RAISING + zcx_abapgit_exception . METHODS change_sicf - IMPORTING is_icfservice TYPE icfservice - is_icfdocu TYPE icfdocu - it_icfhandler TYPE ty_icfhandler_tt - iv_package TYPE devclass - iv_parent TYPE icfparguid - RAISING zcx_abapgit_exception. - + IMPORTING + !is_icfservice TYPE icfservice + !is_icfdocu TYPE icfdocu + !it_icfhandler TYPE ty_icfhandler_tt + !iv_package TYPE devclass + !iv_parent TYPE icfparguid + RAISING + zcx_abapgit_exception . METHODS to_icfhndlist - IMPORTING it_list TYPE ty_icfhandler_tt - RETURNING VALUE(rt_list) TYPE icfhndlist. - + IMPORTING + !it_list TYPE ty_icfhandler_tt + RETURNING + VALUE(rt_list) TYPE icfhndlist . METHODS find_parent - IMPORTING iv_url TYPE string - RETURNING VALUE(rv_parent) TYPE icfparguid - RAISING zcx_abapgit_exception. - -ENDCLASS. "lcl_object_sicf DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_sicf IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sicf IMPLEMENTATION. - - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since - - METHOD zif_abapgit_object~changed_by. - - DATA: ls_icfservice TYPE icfservice. - - - read( EXPORTING iv_clear = abap_false - IMPORTING es_icfservice = ls_icfservice ). - - rv_user = ls_icfservice-icf_muser. - - IF rv_user IS INITIAL. - rv_user = c_user_unknown. - ENDIF. - - ENDMETHOD. - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - ENDMETHOD. "zif_abapgit_object~get_metadata - - METHOD zif_abapgit_object~exists. - - DATA: ls_tadir TYPE tadir, - ls_key TYPE ty_sicf_key. - - ls_tadir = lcl_tadir=>read_single_sicf( ms_item-obj_name ). - - rv_bool = boolc( NOT ls_tadir IS INITIAL ). - - IF rv_bool = abap_true. - ls_key = ls_tadir-obj_name. - SELECT SINGLE icfaltnme FROM icfservice INTO ls_key-icf_name - WHERE icf_name = ls_key-icf_name - AND icfparguid = ls_key-icfparguid. - rv_bool = boolc( sy-subrc = 0 ). - ENDIF. - - ENDMETHOD. "zif_abapgit_object~exists - - METHOD zif_abapgit_object~serialize. - - DATA: ls_icfservice TYPE icfservice, - ls_icfdocu TYPE icfdocu, - lv_url TYPE string, - lt_icfhandler TYPE TABLE OF icfhandler. - - - read( IMPORTING es_icfservice = ls_icfservice - es_icfdocu = ls_icfdocu - et_icfhandler = lt_icfhandler - ev_url = lv_url ). - IF ls_icfservice IS INITIAL. - RETURN. - ENDIF. - - CLEAR ls_icfservice-icfnodguid. - CLEAR ls_icfservice-icfparguid. - CLEAR ls_icfservice-icf_user. - CLEAR ls_icfservice-icf_cclnt. - CLEAR ls_icfservice-icf_mclnt. - - io_xml->add( iv_name = 'URL' - ig_data = lv_url ). - io_xml->add( iv_name = 'ICFSERVICE' - ig_data = ls_icfservice ). - io_xml->add( iv_name = 'ICFDOCU' - ig_data = ls_icfdocu ). - io_xml->add( iv_name = 'ICFHANDLER_TABLE' - ig_data = lt_icfhandler ). - - ENDMETHOD. "serialize - - METHOD read. - - DATA: lt_serv_info TYPE icfservtbl, - ls_serv_info LIKE LINE OF lt_serv_info, - ls_key TYPE ty_sicf_key. - - FIELD-SYMBOLS: LIKE LINE OF et_icfhandler. - - - CLEAR es_icfservice. - CLEAR es_icfdocu. - CLEAR et_icfhandler. - CLEAR ev_url. - - ls_key = lcl_tadir=>read_single_sicf( ms_item-obj_name )-obj_name. - - cl_icf_tree=>if_icf_tree~get_info_from_serv( - EXPORTING - icf_name = ls_key-icf_name - icfparguid = ls_key-icfparguid - icf_langu = mv_language IMPORTING - serv_info = lt_serv_info - icfdocu = es_icfdocu - url = ev_url - EXCEPTIONS - wrong_name = 1 - wrong_parguid = 2 - incorrect_service = 3 - no_authority = 4 - OTHERS = 5 ). - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'SICF - error from get_info_from_serv' ). - ENDIF. - - ASSERT lines( lt_serv_info ) = 1. - READ TABLE lt_serv_info INDEX 1 INTO ls_serv_info. - ASSERT sy-subrc = 0. - - MOVE-CORRESPONDING ls_serv_info-service TO es_icfservice. - IF iv_clear = abap_true. - CLEAR es_icfservice-icf_cuser. - CLEAR es_icfservice-icf_cdate. - CLEAR es_icfservice-icf_muser. - CLEAR es_icfservice-icf_mdate. - ENDIF. - - CLEAR es_icfdocu-icfparguid. - - APPEND LINES OF ls_serv_info-handlertbl TO et_icfhandler. - LOOP AT et_icfhandler ASSIGNING . - CLEAR -icfparguid. - ENDLOOP. - - ENDMETHOD. "read - - METHOD zif_abapgit_object~deserialize. - - DATA: ls_icfservice TYPE icfservice, - ls_read TYPE icfservice, - ls_icfdocu TYPE icfdocu, - lv_url TYPE string, - lv_exists TYPE abap_bool, - lt_icfhandler TYPE TABLE OF icfhandler. + !iv_url TYPE string + RETURNING + VALUE(rv_parent) TYPE icfparguid + RAISING + zcx_abapgit_exception . +ENDCLASS. - io_xml->read( EXPORTING iv_name = 'URL' - CHANGING cg_data = lv_url ). - io_xml->read( EXPORTING iv_name = 'ICFSERVICE' - CHANGING cg_data = ls_icfservice ). - io_xml->read( EXPORTING iv_name = 'ICFDOCU' - CHANGING cg_data = ls_icfdocu ). - io_xml->read( EXPORTING iv_name = 'ICFHANDLER_TABLE' - CHANGING cg_data = lt_icfhandler ). +CLASS ZCL_ABAPGIT_OBJECT_SICF IMPLEMENTATION. - lv_exists = zif_abapgit_object~exists( ). - IF lv_exists = abap_false. - insert_sicf( is_icfservice = ls_icfservice - is_icfdocu = ls_icfdocu - it_icfhandler = lt_icfhandler - iv_package = iv_package - iv_url = lv_url ). - ELSE. - read( IMPORTING es_icfservice = ls_read ). - change_sicf( is_icfservice = ls_icfservice - is_icfdocu = ls_icfdocu - it_icfhandler = lt_icfhandler - iv_package = iv_package - iv_parent = ls_read-icfparguid ). - ENDIF. - - ENDMETHOD. "deserialize - - METHOD to_icfhndlist. - - FIELD-SYMBOLS: LIKE LINE OF it_list. - - -* convert to sorted table - LOOP AT it_list ASSIGNING . - INSERT -icfhandler INTO TABLE rt_list. - ENDLOOP. - - ENDMETHOD. "to_icfhndlist - - METHOD find_parent. - - cl_icf_tree=>if_icf_tree~service_from_url( - EXPORTING - url = iv_url - hostnumber = 0 - IMPORTING - icfnodguid = rv_parent - EXCEPTIONS - wrong_application = 1 - no_application = 2 - not_allow_application = 3 - wrong_url = 4 - no_authority = 5 - OTHERS = 6 ). - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'SICF - error from service_from_url' ). - ENDIF. - - ENDMETHOD. "find_parent - - METHOD insert_sicf. - - DATA: lt_icfhndlist TYPE icfhndlist, - ls_icfserdesc TYPE icfserdesc, - ls_icfdocu TYPE icfdocu, - lv_parent TYPE icfparguid. - - - lt_icfhndlist = to_icfhndlist( it_icfhandler ). - lv_parent = find_parent( iv_url ). - -* nice, it seems that the structure should be mistreated - ls_icfdocu = is_icfdocu-icf_docu. - - MOVE-CORRESPONDING is_icfservice TO ls_icfserdesc. - - cl_icf_tree=>if_icf_tree~insert_node( - EXPORTING - icf_name = is_icfservice-orig_name - icfparguid = lv_parent - icfdocu = ls_icfdocu - doculang = mv_language - icfhandlst = lt_icfhndlist - package = iv_package - application = space - icfserdesc = ls_icfserdesc - icfactive = abap_true - EXCEPTIONS - empty_icf_name = 1 - no_new_virtual_host = 2 - special_service_error = 3 - parent_not_existing = 4 - enqueue_error = 5 - node_already_existing = 6 - empty_docu = 7 - doculang_not_installed = 8 - security_info_error = 9 - user_password_error = 10 - password_encryption_error = 11 - invalid_url = 12 - invalid_otr_concept = 13 - formflg401_error = 14 - handler_error = 15 - transport_error = 16 - tadir_error = 17 - package_not_found = 18 - wrong_application = 19 - not_allow_application = 20 - no_application = 21 - invalid_icfparguid = 22 - alt_name_invalid = 23 - alternate_name_exist = 24 - wrong_icf_name = 25 - no_authority = 26 - OTHERS = 27 ). - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( |SICF - error from insert_node: { sy-subrc }| ). - ENDIF. - - ENDMETHOD. "insert_sicf METHOD change_sicf. @@ -393,6 +149,246 @@ CLASS lcl_object_sicf IMPLEMENTATION. ENDMETHOD. "change_sicf + + METHOD find_parent. + + cl_icf_tree=>if_icf_tree~service_from_url( + EXPORTING + url = iv_url + hostnumber = 0 + IMPORTING + icfnodguid = rv_parent + EXCEPTIONS + wrong_application = 1 + no_application = 2 + not_allow_application = 3 + wrong_url = 4 + no_authority = 5 + OTHERS = 6 ). + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'SICF - error from service_from_url' ). + ENDIF. + + ENDMETHOD. "find_parent + + + METHOD insert_sicf. + + DATA: lt_icfhndlist TYPE icfhndlist, + ls_icfserdesc TYPE icfserdesc, + ls_icfdocu TYPE icfdocu, + lv_parent TYPE icfparguid. + + + lt_icfhndlist = to_icfhndlist( it_icfhandler ). + lv_parent = find_parent( iv_url ). + +* nice, it seems that the structure should be mistreated + ls_icfdocu = is_icfdocu-icf_docu. + + MOVE-CORRESPONDING is_icfservice TO ls_icfserdesc. + + cl_icf_tree=>if_icf_tree~insert_node( + EXPORTING + icf_name = is_icfservice-orig_name + icfparguid = lv_parent + icfdocu = ls_icfdocu + doculang = mv_language + icfhandlst = lt_icfhndlist + package = iv_package + application = space + icfserdesc = ls_icfserdesc + icfactive = abap_true + EXCEPTIONS + empty_icf_name = 1 + no_new_virtual_host = 2 + special_service_error = 3 + parent_not_existing = 4 + enqueue_error = 5 + node_already_existing = 6 + empty_docu = 7 + doculang_not_installed = 8 + security_info_error = 9 + user_password_error = 10 + password_encryption_error = 11 + invalid_url = 12 + invalid_otr_concept = 13 + formflg401_error = 14 + handler_error = 15 + transport_error = 16 + tadir_error = 17 + package_not_found = 18 + wrong_application = 19 + not_allow_application = 20 + no_application = 21 + invalid_icfparguid = 22 + alt_name_invalid = 23 + alternate_name_exist = 24 + wrong_icf_name = 25 + no_authority = 26 + OTHERS = 27 ). + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |SICF - error from insert_node: { sy-subrc }| ). + ENDIF. + + ENDMETHOD. "insert_sicf + + + METHOD read. + + DATA: lt_serv_info TYPE icfservtbl, + ls_serv_info LIKE LINE OF lt_serv_info, + ls_key TYPE ty_sicf_key. + + FIELD-SYMBOLS: LIKE LINE OF et_icfhandler. + + + CLEAR es_icfservice. + CLEAR es_icfdocu. + CLEAR et_icfhandler. + CLEAR ev_url. + + ls_key = read_tadir_sicf( ms_item-obj_name )-obj_name. + + cl_icf_tree=>if_icf_tree~get_info_from_serv( + EXPORTING + icf_name = ls_key-icf_name + icfparguid = ls_key-icfparguid + icf_langu = mv_language + IMPORTING + serv_info = lt_serv_info + icfdocu = es_icfdocu + url = ev_url + EXCEPTIONS + wrong_name = 1 + wrong_parguid = 2 + incorrect_service = 3 + no_authority = 4 + OTHERS = 5 ). + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'SICF - error from get_info_from_serv' ). + ENDIF. + + ASSERT lines( lt_serv_info ) = 1. + READ TABLE lt_serv_info INDEX 1 INTO ls_serv_info. + ASSERT sy-subrc = 0. + + MOVE-CORRESPONDING ls_serv_info-service TO es_icfservice. + IF iv_clear = abap_true. + CLEAR es_icfservice-icf_cuser. + CLEAR es_icfservice-icf_cdate. + CLEAR es_icfservice-icf_muser. + CLEAR es_icfservice-icf_mdate. + ENDIF. + + CLEAR es_icfdocu-icfparguid. + + APPEND LINES OF ls_serv_info-handlertbl TO et_icfhandler. + LOOP AT et_icfhandler ASSIGNING . + CLEAR -icfparguid. + ENDLOOP. + + ENDMETHOD. "read + + + METHOD read_sicf_url. + + DATA: lv_name TYPE icfname, + lv_url TYPE string, + lv_parguid TYPE icfparguid. + + + lv_name = iv_obj_name. + lv_parguid = iv_obj_name+15. + + cl_icf_tree=>if_icf_tree~get_info_from_serv( + EXPORTING + icf_name = lv_name + icfparguid = lv_parguid + IMPORTING + url = lv_url + EXCEPTIONS + wrong_name = 1 + wrong_parguid = 2 + incorrect_service = 3 + no_authority = 4 + OTHERS = 5 ). + IF sy-subrc = 0. + rv_hash = zcl_abapgit_hash=>sha1_raw( zcl_abapgit_convert=>string_to_xstring_utf8( lv_url ) ). + ENDIF. + + ENDMETHOD. + + + METHOD read_tadir_sicf. + + DATA: lt_tadir TYPE STANDARD TABLE OF tadir WITH DEFAULT KEY, + lv_hash TYPE text25, + lv_obj_name TYPE tadir-obj_name. + + FIELD-SYMBOLS: LIKE LINE OF lt_tadir. + + + lv_hash = iv_obj_name+15. + CONCATENATE iv_obj_name(15) '%' INTO lv_obj_name. + + SELECT * FROM tadir INTO TABLE lt_tadir + WHERE pgmid = iv_pgmid + AND object = 'SICF' + AND obj_name LIKE lv_obj_name + ORDER BY PRIMARY KEY. + + LOOP AT lt_tadir ASSIGNING . + IF read_sicf_url( -obj_name ) = lv_hash. + rs_tadir = . + RETURN. + ENDIF. + ENDLOOP. + + IF lines( lt_tadir ) = 1. + READ TABLE lt_tadir INDEX 1 ASSIGNING . + ASSERT sy-subrc = 0. + rs_tadir = . + ENDIF. + + ENDMETHOD. + + + METHOD to_icfhndlist. + + FIELD-SYMBOLS: LIKE LINE OF it_list. + + +* convert to sorted table + LOOP AT it_list ASSIGNING . + INSERT -icfhandler INTO TABLE rt_list. + ENDLOOP. + + ENDMETHOD. "to_icfhndlist + + + METHOD zif_abapgit_object~changed_by. + + DATA: ls_icfservice TYPE icfservice. + + + read( EXPORTING iv_clear = abap_false + IMPORTING es_icfservice = ls_icfservice ). + + rv_user = ls_icfservice-icf_muser. + + IF rv_user IS INITIAL. + rv_user = c_user_unknown. + ENDIF. + + ENDMETHOD. + + + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. + + METHOD zif_abapgit_object~delete. DATA: ls_icfservice TYPE icfservice. @@ -436,6 +432,76 @@ CLASS lcl_object_sicf IMPLEMENTATION. ENDMETHOD. "delete + + METHOD zif_abapgit_object~deserialize. + + DATA: ls_icfservice TYPE icfservice, + ls_read TYPE icfservice, + ls_icfdocu TYPE icfdocu, + lv_url TYPE string, + lv_exists TYPE abap_bool, + lt_icfhandler TYPE TABLE OF icfhandler. + + + io_xml->read( EXPORTING iv_name = 'URL' + CHANGING cg_data = lv_url ). + io_xml->read( EXPORTING iv_name = 'ICFSERVICE' + CHANGING cg_data = ls_icfservice ). + io_xml->read( EXPORTING iv_name = 'ICFDOCU' + CHANGING cg_data = ls_icfdocu ). + io_xml->read( EXPORTING iv_name = 'ICFHANDLER_TABLE' + CHANGING cg_data = lt_icfhandler ). + + + lv_exists = zif_abapgit_object~exists( ). + IF lv_exists = abap_false. + insert_sicf( is_icfservice = ls_icfservice + is_icfdocu = ls_icfdocu + it_icfhandler = lt_icfhandler + iv_package = iv_package + iv_url = lv_url ). + ELSE. + read( IMPORTING es_icfservice = ls_read ). + change_sicf( is_icfservice = ls_icfservice + is_icfdocu = ls_icfdocu + it_icfhandler = lt_icfhandler + iv_package = iv_package + iv_parent = ls_read-icfparguid ). + ENDIF. + + ENDMETHOD. "deserialize + + + METHOD zif_abapgit_object~exists. + + DATA: ls_tadir TYPE tadir, + ls_key TYPE ty_sicf_key. + + ls_tadir = read_tadir_sicf( ms_item-obj_name ). + + rv_bool = boolc( NOT ls_tadir IS INITIAL ). + + IF rv_bool = abap_true. + ls_key = ls_tadir-obj_name. + SELECT SINGLE icfaltnme FROM icfservice INTO ls_key-icf_name + WHERE icf_name = ls_key-icf_name + AND icfparguid = ls_key-icfparguid. + rv_bool = boolc( sy-subrc = 0 ). + ENDIF. + + ENDMETHOD. "zif_abapgit_object~exists + + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + ENDMETHOD. "zif_abapgit_object~get_metadata + + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "zif_abapgit_object~has_changed_since + + METHOD zif_abapgit_object~jump. DATA: ls_bcdata TYPE bdcdata, @@ -472,8 +538,37 @@ CLASS lcl_object_sicf IMPLEMENTATION. ENDMETHOD. "jump - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. -ENDCLASS. "lcl_object_sicf IMPLEMENTATION + METHOD zif_abapgit_object~serialize. + + DATA: ls_icfservice TYPE icfservice, + ls_icfdocu TYPE icfdocu, + lv_url TYPE string, + lt_icfhandler TYPE TABLE OF icfhandler. + + + read( IMPORTING es_icfservice = ls_icfservice + es_icfdocu = ls_icfdocu + et_icfhandler = lt_icfhandler + ev_url = lv_url ). + IF ls_icfservice IS INITIAL. + RETURN. + ENDIF. + + CLEAR ls_icfservice-icfnodguid. + CLEAR ls_icfservice-icfparguid. + CLEAR ls_icfservice-icf_user. + CLEAR ls_icfservice-icf_cclnt. + CLEAR ls_icfservice-icf_mclnt. + + io_xml->add( iv_name = 'URL' + ig_data = lv_url ). + io_xml->add( iv_name = 'ICFSERVICE' + ig_data = ls_icfservice ). + io_xml->add( iv_name = 'ICFDOCU' + ig_data = ls_icfdocu ). + io_xml->add( iv_name = 'ICFHANDLER_TABLE' + ig_data = lt_icfhandler ). + + ENDMETHOD. "serialize +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_sicf.clas.xml b/src/objects/zcl_abapgit_object_sicf.clas.xml new file mode 100644 index 000000000..b38207956 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sicf.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SICF + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_smim.prog.abap b/src/objects/zcl_abapgit_object_smim.clas.abap similarity index 89% rename from src/zabapgit_object_smim.prog.abap rename to src/objects/zcl_abapgit_object_smim.clas.abap index 8dd5c27fa..6d3f5e870 100644 --- a/src/zabapgit_object_smim.prog.abap +++ b/src/objects/zcl_abapgit_object_smim.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SMIM -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_smim DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_smim DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_smim DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -33,14 +24,9 @@ CLASS lcl_object_smim DEFINITION INHERITING FROM lcl_objects_super FINAL. RAISING zcx_abapgit_not_found zcx_abapgit_exception. -ENDCLASS. "lcl_object_smim DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_smim IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_smim IMPLEMENTATION. +CLASS zcl_abapgit_object_smim IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -341,7 +327,7 @@ CLASS lcl_object_smim IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_smim IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_smim IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_smim.clas.xml b/src/objects/zcl_abapgit_object_smim.clas.xml new file mode 100644 index 000000000..e508940a9 --- /dev/null +++ b/src/objects/zcl_abapgit_object_smim.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SMIM + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_splo.prog.abap b/src/objects/zcl_abapgit_object_splo.clas.abap similarity index 73% rename from src/zabapgit_object_splo.prog.abap rename to src/objects/zcl_abapgit_object_splo.clas.abap index 6e873e12c..3c2838322 100644 --- a/src/zabapgit_object_splo.prog.abap +++ b/src/objects/zcl_abapgit_object_splo.clas.abap @@ -1,30 +1,16 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SPLO -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_splo DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_splo DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_splo DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_splo DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_splo IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_splo IMPLEMENTATION. +CLASS zcl_abapgit_object_splo IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since + ENDMETHOD. METHOD zif_abapgit_object~changed_by. @@ -39,7 +25,7 @@ CLASS lcl_object_splo IMPLEMENTATION. METHOD zif_abapgit_object~get_metadata. rs_metadata = get_metadata( ). rs_metadata-delete_tadir = abap_true. - ENDMETHOD. "zif_abapgit_object~get_metadata + ENDMETHOD. METHOD zif_abapgit_object~serialize. @@ -120,7 +106,7 @@ CLASS lcl_object_splo IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_splo IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_splo IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_splo.clas.xml b/src/objects/zcl_abapgit_object_splo.clas.xml new file mode 100644 index 000000000..a6d3eea84 --- /dev/null +++ b/src/objects/zcl_abapgit_object_splo.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SPLO + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_srfc.prog.abap b/src/objects/zcl_abapgit_object_srfc.clas.abap similarity index 92% rename from src/zabapgit_object_srfc.prog.abap rename to src/objects/zcl_abapgit_object_srfc.clas.abap index 3f5be9c3d..504401774 100644 --- a/src/zabapgit_object_srfc.prog.abap +++ b/src/objects/zcl_abapgit_object_srfc.clas.abap @@ -1,16 +1,11 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_srfc -*&---------------------------------------------------------------------* - - -CLASS lcl_object_srfc DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_srfc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ENDCLASS. -CLASS lcl_object_srfc IMPLEMENTATION. +CLASS zcl_abapgit_object_srfc IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -171,7 +166,7 @@ CLASS lcl_object_srfc IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_srfc.clas.xml b/src/objects/zcl_abapgit_object_srfc.clas.xml new file mode 100644 index 000000000..a70d237ee --- /dev/null +++ b/src/objects/zcl_abapgit_object_srfc.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SRFC + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ssfo.prog.abap b/src/objects/zcl_abapgit_object_ssfo.clas.abap similarity index 89% rename from src/zabapgit_object_ssfo.prog.abap rename to src/objects/zcl_abapgit_object_ssfo.clas.abap index f5ed5b095..7645c09d0 100644 --- a/src/zabapgit_object_ssfo.prog.abap +++ b/src/objects/zcl_abapgit_object_ssfo.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SSFO -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_ssfo DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ssfo DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ssfo DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -16,14 +7,9 @@ CLASS lcl_object_ssfo DEFINITION INHERITING FROM lcl_objects_super FINAL. PRIVATE SECTION. METHODS: fix_ids IMPORTING ii_xml_doc TYPE REF TO if_ixml_document. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_dtel IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ssfo IMPLEMENTATION. +CLASS zcl_abapgit_object_ssfo IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -285,7 +271,7 @@ CLASS lcl_object_ssfo IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_ssfo IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_ssfo IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_ssfo.clas.xml b/src/objects/zcl_abapgit_object_ssfo.clas.xml new file mode 100644 index 000000000..faa855422 --- /dev/null +++ b/src/objects/zcl_abapgit_object_ssfo.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SSFO + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ssst.prog.abap b/src/objects/zcl_abapgit_object_ssst.clas.abap similarity index 87% rename from src/zabapgit_object_ssst.prog.abap rename to src/objects/zcl_abapgit_object_ssst.clas.abap index 856135e8f..db01b196b 100644 --- a/src/zabapgit_object_ssst.prog.abap +++ b/src/objects/zcl_abapgit_object_ssst.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SSST -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_ssst DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ssst DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ssst DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -19,14 +10,9 @@ CLASS lcl_object_ssst DEFINITION INHERITING FROM lcl_objects_super FINAL. IMPORTING iv_tdfamily TYPE tdfamily RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_ssst DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_ssst IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ssst IMPLEMENTATION. +CLASS zcl_abapgit_object_ssst IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -261,7 +247,7 @@ CLASS lcl_object_ssst IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_ssst IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_ssst IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_ssst.clas.xml b/src/objects/zcl_abapgit_object_ssst.clas.xml new file mode 100644 index 000000000..eb0a0fe4e --- /dev/null +++ b/src/objects/zcl_abapgit_object_ssst.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SSST + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_styl.prog.abap b/src/objects/zcl_abapgit_object_styl.clas.abap similarity index 81% rename from src/zabapgit_object_styl.prog.abap rename to src/objects/zcl_abapgit_object_styl.clas.abap index 7f6188d72..3378de8dd 100644 --- a/src/zabapgit_object_styl.prog.abap +++ b/src/objects/zcl_abapgit_object_styl.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_STYL -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_styl DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_styl DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_styl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -21,14 +12,9 @@ CLASS lcl_object_styl DEFINITION INHERITING FROM lcl_objects_super FINAL. tabs TYPE STANDARD TABLE OF itcdq WITH DEFAULT KEY, END OF ty_style. -ENDCLASS. "lcl_object_styl DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_styl IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_styl IMPLEMENTATION. +CLASS zcl_abapgit_object_styl IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -197,7 +183,7 @@ CLASS lcl_object_styl IMPLEMENTATION. ENDMETHOD. "serialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_styl IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_styl IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_styl.clas.xml b/src/objects/zcl_abapgit_object_styl.clas.xml new file mode 100644 index 000000000..5bfdb6177 --- /dev/null +++ b/src/objects/zcl_abapgit_object_styl.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_STYL + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_susc.prog.abap b/src/objects/zcl_abapgit_object_susc.clas.abap similarity index 72% rename from src/zabapgit_object_susc.prog.abap rename to src/objects/zcl_abapgit_object_susc.clas.abap index 128180d04..6c724dbd2 100644 --- a/src/zabapgit_object_susc.prog.abap +++ b/src/objects/zcl_abapgit_object_susc.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SUSC -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_susc DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_susc DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_susc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_susc DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_susc IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_susc IMPLEMENTATION. +CLASS zcl_abapgit_object_susc IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -122,7 +108,7 @@ CLASS lcl_object_susc IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_susc IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_susc IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_susc.clas.xml b/src/objects/zcl_abapgit_object_susc.clas.xml new file mode 100644 index 000000000..88a83c04c --- /dev/null +++ b/src/objects/zcl_abapgit_object_susc.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SUSC + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_suso.prog.abap b/src/objects/zcl_abapgit_object_suso.clas.abap similarity index 83% rename from src/zabapgit_object_suso.prog.abap rename to src/objects/zcl_abapgit_object_suso.clas.abap index 4ac795918..8a822de5a 100644 --- a/src/zabapgit_object_suso.prog.abap +++ b/src/objects/zcl_abapgit_object_suso.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SUSO -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_suso DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_suso DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_suso DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_suso DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_suso IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_suso IMPLEMENTATION. +CLASS zcl_abapgit_object_suso IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -172,7 +158,7 @@ CLASS lcl_object_suso IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_suso IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_suso IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_suso.clas.xml b/src/objects/zcl_abapgit_object_suso.clas.xml new file mode 100644 index 000000000..154eb5b9b --- /dev/null +++ b/src/objects/zcl_abapgit_object_suso.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SUSO + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_sxci.prog.abap b/src/objects/zcl_abapgit_object_sxci.clas.abap similarity index 96% rename from src/zabapgit_object_sxci.prog.abap rename to src/objects/zcl_abapgit_object_sxci.clas.abap index 3ae214075..f6c54b918 100644 --- a/src/zabapgit_object_sxci.prog.abap +++ b/src/objects/zcl_abapgit_object_sxci.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_sxci -*&---------------------------------------------------------------------* - -CLASS lcl_object_sxci DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_sxci DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -27,7 +23,7 @@ CLASS lcl_object_sxci DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_sxci IMPLEMENTATION. +CLASS zcl_abapgit_object_sxci IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -276,7 +272,7 @@ CLASS lcl_object_sxci IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_sxci.clas.xml b/src/objects/zcl_abapgit_object_sxci.clas.xml new file mode 100644 index 000000000..feebdfcb6 --- /dev/null +++ b/src/objects/zcl_abapgit_object_sxci.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_SXCI + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_tabl.prog.abap b/src/objects/zcl_abapgit_object_tabl.clas.abap similarity index 92% rename from src/zabapgit_object_tabl.prog.abap rename to src/objects/zcl_abapgit_object_tabl.clas.abap index 55c8e575f..73ddb3911 100644 --- a/src/zabapgit_object_tabl.prog.abap +++ b/src/objects/zcl_abapgit_object_tabl.clas.abap @@ -1,27 +1,244 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_TABL -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_tabl DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* - -CLASS lcl_object_tabl DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_tabl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION. + + + METHOD zif_abapgit_object~changed_by. + + DATA: lv_as4date TYPE dd02l-as4date, + lv_as4time TYPE dd02l-as4time. + + + SELECT SINGLE as4user as4date as4time + FROM dd02l INTO (rv_user, lv_as4date, lv_as4time) + WHERE tabname = ms_item-obj_name + AND as4local = 'A' + AND as4vers = '0000'. + IF sy-subrc <> 0. + rv_user = c_user_unknown. + RETURN. + ENDIF. + + SELECT SINGLE as4user INTO rv_user + FROM dd09l + WHERE tabname = ms_item-obj_name + AND as4local = 'A' + AND as4vers = '0000' + AND ( as4date > lv_as4date OR ( as4date = lv_as4date AND as4time > lv_as4time ) ). + + ENDMETHOD. + + + METHOD zif_abapgit_object~compare_to_remote_version. + DATA: lo_table_validation TYPE REF TO zcl_abapgit_object_tabl_valid, + lo_local_version_output TYPE REF TO zcl_abapgit_xml_output, + lo_local_version_input TYPE REF TO zcl_abapgit_xml_input, + lv_validation_text TYPE string. + + CREATE OBJECT lo_local_version_output. + me->zif_abapgit_object~serialize( lo_local_version_output ). + + CREATE OBJECT lo_local_version_input + EXPORTING + iv_xml = lo_local_version_output->render( ). + + CREATE OBJECT lo_table_validation. + + lv_validation_text = lo_table_validation->validate( + io_remote_version = io_remote_version_xml + io_local_version = lo_local_version_input ). + IF lv_validation_text IS NOT INITIAL. + lv_validation_text = |Database Table { ms_item-obj_name }: { lv_validation_text }|. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_object_tabl_dialog + EXPORTING + iv_message = lv_validation_text. + ELSE. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDIF. + ENDMETHOD. + + + METHOD zif_abapgit_object~delete. + + DATA: lv_objname TYPE rsedd0-ddobjname, + lv_tabclass TYPE dd02l-tabclass, + lv_no_ask TYPE abap_bool, + lr_data TYPE REF TO data. + + FIELD-SYMBOLS: TYPE any. + + + lv_objname = ms_item-obj_name. + + lv_no_ask = abap_true. + SELECT SINGLE tabclass FROM dd02l INTO lv_tabclass + WHERE tabname = ms_item-obj_name + AND as4local = 'A' + AND as4vers = '0000'. + IF sy-subrc = 0 AND lv_tabclass = 'TRANSP'. +* it cannot delete table with table wihtout asking + CREATE DATA lr_data TYPE (lv_objname). + ASSIGN lr_data->* TO . + SELECT SINGLE * FROM (lv_objname) INTO . + IF sy-subrc = 0. + lv_no_ask = abap_false. + ENDIF. + ENDIF. + + CALL FUNCTION 'RS_DD_DELETE_OBJ' + EXPORTING + no_ask = lv_no_ask + objname = lv_objname + objtype = 'T' + EXCEPTIONS + not_executed = 1 + object_not_found = 2 + object_not_specified = 3 + permission_failure = 4. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from RS_DD_DELETE_OBJ, TABL' ). + ENDIF. + + ENDMETHOD. "delete + + + METHOD zif_abapgit_object~deserialize. + + DATA: lv_name TYPE ddobjname, + lv_tname TYPE trobj_name, + ls_dd02v TYPE dd02v, + ls_dd09l TYPE dd09l, + lt_dd03p TYPE TABLE OF dd03p, + lt_dd05m TYPE TABLE OF dd05m, + lt_dd08v TYPE TABLE OF dd08v, + lt_dd12v TYPE dd12vtab, + lt_dd17v TYPE dd17vtab, + ls_dd17v LIKE LINE OF lt_dd17v, + lt_secondary LIKE lt_dd17v, + lt_dd35v TYPE TABLE OF dd35v, + lt_dd36m TYPE dd36mttyp, + ls_dd12v LIKE LINE OF lt_dd12v. + + + io_xml->read( EXPORTING iv_name = 'DD02V' + CHANGING cg_data = ls_dd02v ). + io_xml->read( EXPORTING iv_name = 'DD09L' + CHANGING cg_data = ls_dd09l ). + io_xml->read( EXPORTING iv_name = 'DD03P_TABLE' + CHANGING cg_data = lt_dd03p ). + io_xml->read( EXPORTING iv_name = 'DD05M_TABLE' + CHANGING cg_data = lt_dd05m ). + io_xml->read( EXPORTING iv_name = 'DD08V_TABLE' + CHANGING cg_data = lt_dd08v ). + io_xml->read( EXPORTING iv_name = 'DD12V' + CHANGING cg_data = lt_dd12v ). + io_xml->read( EXPORTING iv_name = 'DD17V' + CHANGING cg_data = lt_dd17v ). + io_xml->read( EXPORTING iv_name = 'DD35V_TALE' + CHANGING cg_data = lt_dd35v ). + io_xml->read( EXPORTING iv_name = 'DD36M' + CHANGING cg_data = lt_dd36m ). + + corr_insert( iv_package ). + + lv_name = ms_item-obj_name. " type conversion + + CALL FUNCTION 'DDIF_TABL_PUT' + EXPORTING + name = lv_name + dd02v_wa = ls_dd02v + dd09l_wa = ls_dd09l + TABLES + dd03p_tab = lt_dd03p + dd05m_tab = lt_dd05m + dd08v_tab = lt_dd08v + dd35v_tab = lt_dd35v + dd36m_tab = lt_dd36m + EXCEPTIONS + tabl_not_found = 1 + name_inconsistent = 2 + tabl_inconsistent = 3 + put_failure = 4 + put_refused = 5 + OTHERS = 6. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from DDIF_TABL_PUT' ). + ENDIF. + + zcl_abapgit_objects_activation=>add_item( ms_item ). + +* handle indexes + LOOP AT lt_dd12v INTO ls_dd12v. + +* todo, call corr_insert? + + CLEAR lt_secondary. + LOOP AT lt_dd17v INTO ls_dd17v + WHERE sqltab = ls_dd12v-sqltab AND indexname = ls_dd12v-indexname. + APPEND ls_dd17v TO lt_secondary. + ENDLOOP. + + CALL FUNCTION 'DDIF_INDX_PUT' + EXPORTING + name = ls_dd12v-sqltab + id = ls_dd12v-indexname + dd12v_wa = ls_dd12v + TABLES + dd17v_tab = lt_secondary + EXCEPTIONS + indx_not_found = 1 + name_inconsistent = 2 + indx_inconsistent = 3 + put_failure = 4 + put_refused = 5 + OTHERS = 6. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from DDIF_INDX_PUT' ). + ENDIF. + + CALL FUNCTION 'DD_DD_TO_E071' + EXPORTING + type = 'INDX' + name = ls_dd12v-sqltab + id = ls_dd12v-indexname + IMPORTING + obj_name = lv_tname. + + zcl_abapgit_objects_activation=>add( iv_type = 'INDX' + iv_name = lv_tname ). + + ENDLOOP. + + ENDMETHOD. "deserialize + + + METHOD zif_abapgit_object~exists. + + DATA: lv_tabname TYPE dd02l-tabname. + + + SELECT SINGLE tabname FROM dd02l INTO lv_tabname + WHERE tabname = ms_item-obj_name + AND as4local = 'A' + AND as4vers = '0000'. + rv_bool = boolc( sy-subrc = 0 ). + + ENDMETHOD. "zif_abapgit_object~exists + + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + rs_metadata-ddic = abap_true. + ENDMETHOD. "zif_abapgit_object~get_metadata -*----------------------------------------------------------------------* -* CLASS lcl_object_tabl IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_tabl IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -78,48 +295,6 @@ CLASS lcl_object_tabl IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~has_changed_since - METHOD zif_abapgit_object~changed_by. - - DATA: lv_as4date TYPE dd02l-as4date, - lv_as4time TYPE dd02l-as4time. - - - SELECT SINGLE as4user as4date as4time - FROM dd02l INTO (rv_user, lv_as4date, lv_as4time) - WHERE tabname = ms_item-obj_name - AND as4local = 'A' - AND as4vers = '0000'. - IF sy-subrc <> 0. - rv_user = c_user_unknown. - RETURN. - ENDIF. - - SELECT SINGLE as4user INTO rv_user - FROM dd09l - WHERE tabname = ms_item-obj_name - AND as4local = 'A' - AND as4vers = '0000' - AND ( as4date > lv_as4date OR ( as4date = lv_as4date AND as4time > lv_as4time ) ). - - ENDMETHOD. - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - rs_metadata-ddic = abap_true. - ENDMETHOD. "zif_abapgit_object~get_metadata - - METHOD zif_abapgit_object~exists. - - DATA: lv_tabname TYPE dd02l-tabname. - - - SELECT SINGLE tabname FROM dd02l INTO lv_tabname - WHERE tabname = ms_item-obj_name - AND as4local = 'A' - AND as4vers = '0000'. - rv_bool = boolc( sy-subrc = 0 ). - - ENDMETHOD. "zif_abapgit_object~exists METHOD zif_abapgit_object~jump. @@ -128,48 +303,6 @@ CLASS lcl_object_tabl IMPLEMENTATION. ENDMETHOD. "jump - METHOD zif_abapgit_object~delete. - - DATA: lv_objname TYPE rsedd0-ddobjname, - lv_tabclass TYPE dd02l-tabclass, - lv_no_ask TYPE abap_bool, - lr_data TYPE REF TO data. - - FIELD-SYMBOLS: TYPE any. - - - lv_objname = ms_item-obj_name. - - lv_no_ask = abap_true. - SELECT SINGLE tabclass FROM dd02l INTO lv_tabclass - WHERE tabname = ms_item-obj_name - AND as4local = 'A' - AND as4vers = '0000'. - IF sy-subrc = 0 AND lv_tabclass = 'TRANSP'. -* it cannot delete table with table wihtout asking - CREATE DATA lr_data TYPE (lv_objname). - ASSIGN lr_data->* TO . - SELECT SINGLE * FROM (lv_objname) INTO . - IF sy-subrc = 0. - lv_no_ask = abap_false. - ENDIF. - ENDIF. - - CALL FUNCTION 'RS_DD_DELETE_OBJ' - EXPORTING - no_ask = lv_no_ask - objname = lv_objname - objtype = 'T' - EXCEPTIONS - not_executed = 1 - object_not_found = 2 - object_not_specified = 3 - permission_failure = 4. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from RS_DD_DELETE_OBJ, TABL' ). - ENDIF. - - ENDMETHOD. "delete METHOD zif_abapgit_object~serialize. @@ -346,142 +479,4 @@ CLASS lcl_object_tabl IMPLEMENTATION. ig_data = lt_dd36m ). ENDMETHOD. "serialize - - METHOD zif_abapgit_object~deserialize. - - DATA: lv_name TYPE ddobjname, - lv_tname TYPE trobj_name, - ls_dd02v TYPE dd02v, - ls_dd09l TYPE dd09l, - lt_dd03p TYPE TABLE OF dd03p, - lt_dd05m TYPE TABLE OF dd05m, - lt_dd08v TYPE TABLE OF dd08v, - lt_dd12v TYPE dd12vtab, - lt_dd17v TYPE dd17vtab, - ls_dd17v LIKE LINE OF lt_dd17v, - lt_secondary LIKE lt_dd17v, - lt_dd35v TYPE TABLE OF dd35v, - lt_dd36m TYPE dd36mttyp, - ls_dd12v LIKE LINE OF lt_dd12v. - - - io_xml->read( EXPORTING iv_name = 'DD02V' - CHANGING cg_data = ls_dd02v ). - io_xml->read( EXPORTING iv_name = 'DD09L' - CHANGING cg_data = ls_dd09l ). - io_xml->read( EXPORTING iv_name = 'DD03P_TABLE' - CHANGING cg_data = lt_dd03p ). - io_xml->read( EXPORTING iv_name = 'DD05M_TABLE' - CHANGING cg_data = lt_dd05m ). - io_xml->read( EXPORTING iv_name = 'DD08V_TABLE' - CHANGING cg_data = lt_dd08v ). - io_xml->read( EXPORTING iv_name = 'DD12V' - CHANGING cg_data = lt_dd12v ). - io_xml->read( EXPORTING iv_name = 'DD17V' - CHANGING cg_data = lt_dd17v ). - io_xml->read( EXPORTING iv_name = 'DD35V_TALE' - CHANGING cg_data = lt_dd35v ). - io_xml->read( EXPORTING iv_name = 'DD36M' - CHANGING cg_data = lt_dd36m ). - - corr_insert( iv_package ). - - lv_name = ms_item-obj_name. " type conversion - - CALL FUNCTION 'DDIF_TABL_PUT' - EXPORTING - name = lv_name - dd02v_wa = ls_dd02v - dd09l_wa = ls_dd09l - TABLES - dd03p_tab = lt_dd03p - dd05m_tab = lt_dd05m - dd08v_tab = lt_dd08v - dd35v_tab = lt_dd35v - dd36m_tab = lt_dd36m - EXCEPTIONS - tabl_not_found = 1 - name_inconsistent = 2 - tabl_inconsistent = 3 - put_failure = 4 - put_refused = 5 - OTHERS = 6. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from DDIF_TABL_PUT' ). - ENDIF. - - zcl_abapgit_objects_activation=>add_item( ms_item ). - -* handle indexes - LOOP AT lt_dd12v INTO ls_dd12v. - -* todo, call corr_insert? - - CLEAR lt_secondary. - LOOP AT lt_dd17v INTO ls_dd17v - WHERE sqltab = ls_dd12v-sqltab AND indexname = ls_dd12v-indexname. - APPEND ls_dd17v TO lt_secondary. - ENDLOOP. - - CALL FUNCTION 'DDIF_INDX_PUT' - EXPORTING - name = ls_dd12v-sqltab - id = ls_dd12v-indexname - dd12v_wa = ls_dd12v - TABLES - dd17v_tab = lt_secondary - EXCEPTIONS - indx_not_found = 1 - name_inconsistent = 2 - indx_inconsistent = 3 - put_failure = 4 - put_refused = 5 - OTHERS = 6. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from DDIF_INDX_PUT' ). - ENDIF. - - CALL FUNCTION 'DD_DD_TO_E071' - EXPORTING - type = 'INDX' - name = ls_dd12v-sqltab - id = ls_dd12v-indexname - IMPORTING - obj_name = lv_tname. - - zcl_abapgit_objects_activation=>add( iv_type = 'INDX' - iv_name = lv_tname ). - - ENDLOOP. - - ENDMETHOD. "deserialize - - METHOD zif_abapgit_object~compare_to_remote_version. - DATA: lo_table_validation TYPE REF TO lcl_object_tabl_valid, - lo_local_version_output TYPE REF TO zcl_abapgit_xml_output, - lo_local_version_input TYPE REF TO zcl_abapgit_xml_input, - lv_validation_text TYPE string. - - CREATE OBJECT lo_local_version_output. - me->zif_abapgit_object~serialize( lo_local_version_output ). - - CREATE OBJECT lo_local_version_input - EXPORTING - iv_xml = lo_local_version_output->render( ). - - CREATE OBJECT lo_table_validation. - - lv_validation_text = lo_table_validation->validate( - io_remote_version = io_remote_version_xml - io_local_version = lo_local_version_input ). - IF lv_validation_text IS NOT INITIAL. - lv_validation_text = |Database Table { ms_item-obj_name }: { lv_validation_text }|. - CREATE OBJECT ro_comparison_result TYPE lcl_tabl_valid_dialog - EXPORTING - iv_message = lv_validation_text. - ELSE. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDIF. - ENDMETHOD. - -ENDCLASS. "lcl_object_TABL IMPLEMENTATION +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_tabl.clas.xml b/src/objects/zcl_abapgit_object_tabl.clas.xml new file mode 100644 index 000000000..9c5426484 --- /dev/null +++ b/src/objects/zcl_abapgit_object_tabl.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TABL + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_tabl_dialog.clas.abap b/src/objects/zcl_abapgit_object_tabl_dialog.clas.abap new file mode 100644 index 000000000..a9c51823a --- /dev/null +++ b/src/objects/zcl_abapgit_object_tabl_dialog.clas.abap @@ -0,0 +1,58 @@ +CLASS zcl_abapgit_object_tabl_dialog DEFINITION + PUBLIC + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + METHODS: + constructor + IMPORTING + iv_message TYPE string. + INTERFACES: zif_abapgit_comparison_result. + + PRIVATE SECTION. + DATA mv_message TYPE string. + DATA mv_halt TYPE string. + +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_OBJECT_TABL_DIALOG IMPLEMENTATION. + + + METHOD constructor. + mv_message = iv_message. + ENDMETHOD. + + + METHOD zif_abapgit_comparison_result~is_result_complete_halt. + rv_response = mv_halt. + ENDMETHOD. + + + METHOD zif_abapgit_comparison_result~show_confirmation_dialog. + + DATA lv_answer TYPE string. + + CALL FUNCTION 'POPUP_TO_CONFIRM' + EXPORTING + titlebar = 'Warning' + text_question = mv_message + text_button_1 = 'Abort' + icon_button_1 = 'ICON_CANCEL' + text_button_2 = 'Pull anyway' + icon_button_2 = 'ICON_OKAY' + default_button = '2' + display_cancel_button = abap_false + IMPORTING + answer = lv_answer + EXCEPTIONS + text_not_found = 1 + OTHERS = 2. "#EC NOTEXT + IF sy-subrc <> 0 OR lv_answer = 1. + mv_halt = abap_true. + ENDIF. + + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_tabl_dialog.clas.xml b/src/objects/zcl_abapgit_object_tabl_dialog.clas.xml new file mode 100644 index 000000000..e5b0543b5 --- /dev/null +++ b/src/objects/zcl_abapgit_object_tabl_dialog.clas.xml @@ -0,0 +1,19 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TABL_DIALOG + 1 + E + TABL valid dialog + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_tabl_valid.clas.abap b/src/objects/zcl_abapgit_object_tabl_valid.clas.abap new file mode 100644 index 000000000..000b56074 --- /dev/null +++ b/src/objects/zcl_abapgit_object_tabl_valid.clas.abap @@ -0,0 +1,44 @@ +CLASS zcl_abapgit_object_tabl_valid DEFINITION PUBLIC FINAL. + PUBLIC SECTION. + METHODS validate + IMPORTING + io_remote_version TYPE REF TO zcl_abapgit_xml_input + io_local_version TYPE REF TO zcl_abapgit_xml_input + RETURNING + VALUE(rv_message) TYPE string + RAISING + zcx_abapgit_exception. +ENDCLASS. + +CLASS zcl_abapgit_object_tabl_valid IMPLEMENTATION. + + METHOD validate. + DATA: lt_previous_table_fields TYPE TABLE OF dd03p, + ls_previous_table_field LIKE LINE OF lt_previous_table_fields, + lt_current_table_fields TYPE TABLE OF dd03p, + ls_current_table_field LIKE LINE OF lt_current_table_fields. + io_remote_version->read( + EXPORTING + iv_name = 'DD03P_TABLE' + CHANGING + cg_data = lt_previous_table_fields ). + io_local_version->read( + EXPORTING + iv_name = 'DD03P_TABLE' + CHANGING + cg_data = lt_current_table_fields ). + + LOOP AT lt_previous_table_fields INTO ls_previous_table_field. + READ TABLE lt_current_table_fields WITH KEY fieldname = ls_previous_table_field-fieldname + INTO ls_current_table_field. + IF sy-subrc = 0. + IF ls_current_table_field-rollname <> ls_previous_table_field-rollname. + rv_message = 'Fields were changed. This may lead to inconsistencies.'. + ENDIF. + ELSE. + rv_message = 'Fields were changed. This may lead to inconsistencies.'. + ENDIF. + ENDLOOP. + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_tabl_valid.clas.xml b/src/objects/zcl_abapgit_object_tabl_valid.clas.xml new file mode 100644 index 000000000..1410cd5de --- /dev/null +++ b/src/objects/zcl_abapgit_object_tabl_valid.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TABL_VALID + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_tobj.prog.abap b/src/objects/zcl_abapgit_object_tobj.clas.abap similarity index 88% rename from src/zabapgit_object_tobj.prog.abap rename to src/objects/zcl_abapgit_object_tobj.clas.abap index 0925a5016..4326b454b 100644 --- a/src/zabapgit_object_tobj.prog.abap +++ b/src/objects/zcl_abapgit_object_tobj.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_TOBJ -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_tobj DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_tobj DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_tobj DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -26,14 +17,9 @@ CLASS lcl_object_tobj DEFINITION INHERITING FROM lcl_objects_super FINAL. update_extra IMPORTING is_tobj TYPE ty_tobj, delete_extra IMPORTING iv_tabname TYPE vim_name. -ENDCLASS. "lcl_object_tobj DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_tobj IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_tobj IMPLEMENTATION. +CLASS zcl_abapgit_object_tobj IMPLEMENTATION. METHOD read_extra. @@ -286,7 +272,7 @@ CLASS lcl_object_tobj IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_tobj IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_tobj IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_tobj.clas.xml b/src/objects/zcl_abapgit_object_tobj.clas.xml new file mode 100644 index 000000000..e5f25ad2d --- /dev/null +++ b/src/objects/zcl_abapgit_object_tobj.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TOBJ + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_tran.prog.abap b/src/objects/zcl_abapgit_object_tran.clas.abap similarity index 93% rename from src/zabapgit_object_tran.prog.abap rename to src/objects/zcl_abapgit_object_tran.clas.abap index 255638e24..2edc5a054 100644 --- a/src/zabapgit_object_tran.prog.abap +++ b/src/objects/zcl_abapgit_object_tran.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_TRAN -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_tran DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_tran DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_tran DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -47,14 +38,9 @@ CLASS lcl_object_tran DEFINITION INHERITING FROM lcl_objects_super FINAL. IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_TRAN DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_msag IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_tran IMPLEMENTATION. +CLASS zcl_abapgit_object_tran IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -430,7 +416,7 @@ CLASS lcl_object_tran IMPLEMENTATION. ENDMETHOD. "serialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. METHOD serialize_texts. @@ -476,4 +462,4 @@ CLASS lcl_object_tran IMPLEMENTATION. ENDIF. ENDMETHOD. "deserialize_texts -ENDCLASS. "lcl_object_tran IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_tran IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_tran.clas.xml b/src/objects/zcl_abapgit_object_tran.clas.xml new file mode 100644 index 000000000..54aec531a --- /dev/null +++ b/src/objects/zcl_abapgit_object_tran.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TRAN + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ttyp.prog.abap b/src/objects/zcl_abapgit_object_ttyp.clas.abap similarity index 81% rename from src/zabapgit_object_ttyp.prog.abap rename to src/objects/zcl_abapgit_object_ttyp.clas.abap index 1576b3ae7..1d53fd9e7 100644 --- a/src/zabapgit_object_ttyp.prog.abap +++ b/src/objects/zcl_abapgit_object_ttyp.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_TTYP -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_ttyp DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ttyp DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ttyp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_ttyp IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_ttyp IMPLEMENTATION. +CLASS zcl_abapgit_object_ttyp IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -186,7 +172,7 @@ CLASS lcl_object_ttyp IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_ttyp IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_ttyp IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_ttyp.clas.xml b/src/objects/zcl_abapgit_object_ttyp.clas.xml new file mode 100644 index 000000000..042901a1a --- /dev/null +++ b/src/objects/zcl_abapgit_object_ttyp.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TTYP + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_type.prog.abap b/src/objects/zcl_abapgit_object_type.clas.abap similarity index 83% rename from src/zabapgit_object_type.prog.abap rename to src/objects/zcl_abapgit_object_type.clas.abap index 8947e9fa7..fb855e8e0 100644 --- a/src/zabapgit_object_type.prog.abap +++ b/src/objects/zcl_abapgit_object_type.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_TYPE -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_type DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_type DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_type DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -28,14 +19,9 @@ CLASS lcl_object_type DEFINITION INHERITING FROM lcl_objects_super FINAL. iv_devclass TYPE devclass RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_type DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_type IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_type IMPLEMENTATION. +CLASS zcl_abapgit_object_type IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -212,7 +198,7 @@ CLASS lcl_object_type IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_type IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_type IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_type.clas.xml b/src/objects/zcl_abapgit_object_type.clas.xml new file mode 100644 index 000000000..0564a0fb9 --- /dev/null +++ b/src/objects/zcl_abapgit_object_type.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_TYPE + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_ucsa.prog.abap b/src/objects/zcl_abapgit_object_ucsa.clas.abap similarity index 94% rename from src/zabapgit_object_ucsa.prog.abap rename to src/objects/zcl_abapgit_object_ucsa.clas.abap index 853d717ba..a9853b07a 100644 --- a/src/zabapgit_object_ucsa.prog.abap +++ b/src/objects/zcl_abapgit_object_ucsa.clas.abap @@ -1,8 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_ucsa -*&---------------------------------------------------------------------* - -CLASS lcl_object_ucsa DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_ucsa DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -30,7 +26,7 @@ CLASS lcl_object_ucsa DEFINITION INHERITING FROM lcl_objects_super FINAL. ENDCLASS. -CLASS lcl_object_ucsa IMPLEMENTATION. +CLASS zcl_abapgit_object_ucsa IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -203,7 +199,7 @@ CLASS lcl_object_ucsa IMPLEMENTATION. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_ucsa.clas.xml b/src/objects/zcl_abapgit_object_ucsa.clas.xml new file mode 100644 index 000000000..2875a2d64 --- /dev/null +++ b/src/objects/zcl_abapgit_object_ucsa.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_UCSA + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_vcls.prog.abap b/src/objects/zcl_abapgit_object_vcls.clas.abap similarity index 85% rename from src/zabapgit_object_vcls.prog.abap rename to src/objects/zcl_abapgit_object_vcls.clas.abap index 6773d28a7..c8dfd4862 100644 --- a/src/zabapgit_object_vcls.prog.abap +++ b/src/objects/zcl_abapgit_object_vcls.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_VCLS -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_vcls DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_vcls DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_vcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -17,14 +8,9 @@ CLASS lcl_object_vcls DEFINITION INHERITING FROM lcl_objects_super FINAL. CONSTANTS: c_cluster_type TYPE c VALUE 'C'. CONSTANTS: c_mode_insert TYPE obj_para-maint_mode VALUE 'I'. -ENDCLASS. "lcl_object_vcls DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_vcls IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_vcls IMPLEMENTATION. +CLASS zcl_abapgit_object_vcls IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -196,7 +182,7 @@ CLASS lcl_object_vcls IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_vcls IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_vcls IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_vcls.clas.xml b/src/objects/zcl_abapgit_object_vcls.clas.xml new file mode 100644 index 000000000..1770b20ee --- /dev/null +++ b/src/objects/zcl_abapgit_object_vcls.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_VCLS + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_view.prog.abap b/src/objects/zcl_abapgit_object_view.clas.abap similarity index 87% rename from src/zabapgit_object_view.prog.abap rename to src/objects/zcl_abapgit_object_view.clas.abap index 46c960c14..f551b957d 100644 --- a/src/zabapgit_object_view.prog.abap +++ b/src/objects/zcl_abapgit_object_view.clas.abap @@ -1,26 +1,12 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_VIEW -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_view DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_view DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. ALIASES mo_files FOR zif_abapgit_object~mo_files. -ENDCLASS. "lcl_object_dtel DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_view IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_view IMPLEMENTATION. +CLASS zcl_abapgit_object_view IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. @@ -272,7 +258,7 @@ CLASS lcl_object_view IMPLEMENTATION. ENDMETHOD. "deserialize METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. "zif_abapgit_object~compare_to_remote_version -ENDCLASS. "lcl_object_view IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_view IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_view.clas.xml b/src/objects/zcl_abapgit_object_view.clas.xml new file mode 100644 index 000000000..132fd2a27 --- /dev/null +++ b/src/objects/zcl_abapgit_object_view.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_VIEW + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_w3ht.clas.abap b/src/objects/zcl_abapgit_object_w3ht.clas.abap new file mode 100644 index 000000000..08c3a28d1 --- /dev/null +++ b/src/objects/zcl_abapgit_object_w3ht.clas.abap @@ -0,0 +1,24 @@ +CLASS zcl_abapgit_object_w3ht DEFINITION PUBLIC INHERITING FROM zcl_abapgit_object_w3super FINAL. + + PROTECTED SECTION. + METHODS: change_bdc_jump_data REDEFINITION. +ENDCLASS. + +CLASS zcl_abapgit_object_w3ht IMPLEMENTATION. + + METHOD change_bdc_jump_data. + + DATA: ls_bdcdata LIKE LINE OF ct_bdcdata. + + ls_bdcdata-fnam = 'RADIO_HT'. + ls_bdcdata-fval = 'X'. + APPEND ls_bdcdata TO ct_bdcdata. + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'RADIO_MI'. + ls_bdcdata-fval = ' '. + APPEND ls_bdcdata TO ct_bdcdata. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_w3ht.clas.xml b/src/objects/zcl_abapgit_object_w3ht.clas.xml new file mode 100644 index 000000000..b2d6aee63 --- /dev/null +++ b/src/objects/zcl_abapgit_object_w3ht.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_W3HT + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_object_w3mi.clas.abap b/src/objects/zcl_abapgit_object_w3mi.clas.abap new file mode 100644 index 000000000..b62cbe9a7 --- /dev/null +++ b/src/objects/zcl_abapgit_object_w3mi.clas.abap @@ -0,0 +1,24 @@ +CLASS zcl_abapgit_object_w3mi DEFINITION PUBLIC INHERITING FROM zcl_abapgit_object_w3super FINAL. + + PROTECTED SECTION. + METHODS: change_bdc_jump_data REDEFINITION. +ENDCLASS. + +CLASS zcl_abapgit_object_w3mi IMPLEMENTATION. + + METHOD change_bdc_jump_data. + + DATA: ls_bdcdata LIKE LINE OF ct_bdcdata. + + ls_bdcdata-fnam = 'RADIO_HT'. + ls_bdcdata-fval = ' '. + APPEND ls_bdcdata TO ct_bdcdata. + + CLEAR ls_bdcdata. + ls_bdcdata-fnam = 'RADIO_MI'. + ls_bdcdata-fval = 'X'. + APPEND ls_bdcdata TO ct_bdcdata. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_w3mi.clas.xml b/src/objects/zcl_abapgit_object_w3mi.clas.xml new file mode 100644 index 000000000..db981c2b0 --- /dev/null +++ b/src/objects/zcl_abapgit_object_w3mi.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_W3MI + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_w3xx.prog.abap b/src/objects/zcl_abapgit_object_w3super.clas.abap similarity index 82% rename from src/zabapgit_object_w3xx.prog.abap rename to src/objects/zcl_abapgit_object_w3super.clas.abap index 441fb77b5..13389a453 100644 --- a/src/zabapgit_object_w3xx.prog.abap +++ b/src/objects/zcl_abapgit_object_w3super.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_W3XX -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_W3SUPER DEFINITION -*----------------------------------------------------------------------* -* Web Reporting/Internet Transaction Server MIME Types (super class) -*----------------------------------------------------------------------* -CLASS lcl_object_w3super DEFINITION INHERITING FROM lcl_objects_super ABSTRACT. +CLASS zcl_abapgit_object_w3super DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super ABSTRACT. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -61,14 +52,9 @@ CLASS lcl_object_w3super DEFINITION INHERITING FROM lcl_objects_super ABSTRACT. RETURNING VALUE(rv_value) TYPE string RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_W3SUPER DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_W3SUPER IMPLEMENTATION -*----------------------------------------------------------------------* -* Web Reporting/Internet Transaction Server MIME Types (super class) -*----------------------------------------------------------------------* -CLASS lcl_object_w3super IMPLEMENTATION. +CLASS zcl_abapgit_object_w3super IMPLEMENTATION. METHOD constructor. super->constructor( is_item = is_item iv_language = iv_language ). @@ -485,68 +471,7 @@ CLASS lcl_object_w3super IMPLEMENTATION. ENDMETHOD. " find_param. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_W3SUPER IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_W3MI DEFINITION -*----------------------------------------------------------------------* -* Web Reporting/Internet Transaction Server MIME Types (binary data) -*----------------------------------------------------------------------* -CLASS lcl_object_w3mi DEFINITION INHERITING FROM lcl_object_w3super FINAL. - - PROTECTED SECTION. - METHODS: change_bdc_jump_data REDEFINITION. -ENDCLASS. "lcl_object_W3MI DEFINITION - -CLASS lcl_object_w3mi IMPLEMENTATION. - - METHOD change_bdc_jump_data. - - DATA: ls_bdcdata LIKE LINE OF ct_bdcdata. - - ls_bdcdata-fnam = 'RADIO_HT'. - ls_bdcdata-fval = ' '. - APPEND ls_bdcdata TO ct_bdcdata. - - CLEAR ls_bdcdata. - ls_bdcdata-fnam = 'RADIO_MI'. - ls_bdcdata-fval = 'X'. - APPEND ls_bdcdata TO ct_bdcdata. - - ENDMETHOD. - -ENDCLASS. - - -*----------------------------------------------------------------------* -* CLASS lcl_object_W3HT DEFINITION -*----------------------------------------------------------------------* -* Web Reporting/Internet Transaction Server MIME Types (html data) -*----------------------------------------------------------------------* -CLASS lcl_object_w3ht DEFINITION INHERITING FROM lcl_object_w3super FINAL. - - PROTECTED SECTION. - METHODS: change_bdc_jump_data REDEFINITION. -ENDCLASS. "lcl_object_W3HT DEFINITION - -CLASS lcl_object_w3ht IMPLEMENTATION. - - METHOD change_bdc_jump_data. - - DATA: ls_bdcdata LIKE LINE OF ct_bdcdata. - - ls_bdcdata-fnam = 'RADIO_HT'. - ls_bdcdata-fval = 'X'. - APPEND ls_bdcdata TO ct_bdcdata. - - CLEAR ls_bdcdata. - ls_bdcdata-fnam = 'RADIO_MI'. - ls_bdcdata-fval = ' '. - APPEND ls_bdcdata TO ct_bdcdata. - - ENDMETHOD. - -ENDCLASS. +ENDCLASS. "zcl_abapgit_object_W3SUPER IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_w3super.clas.xml b/src/objects/zcl_abapgit_object_w3super.clas.xml new file mode 100644 index 000000000..b411a3db1 --- /dev/null +++ b/src/objects/zcl_abapgit_object_w3super.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_W3SUPER + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_wapa.prog.abap b/src/objects/zcl_abapgit_object_wapa.clas.abap similarity index 92% rename from src/zabapgit_object_wapa.prog.abap rename to src/objects/zcl_abapgit_object_wapa.clas.abap index b0778fcf0..7523fe8ee 100644 --- a/src/zabapgit_object_wapa.prog.abap +++ b/src/objects/zcl_abapgit_object_wapa.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_WAPA -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_wapa DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_wapa DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_wapa DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -38,14 +29,9 @@ CLASS lcl_object_wapa DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(rs_page) TYPE ty_page RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_TRAN DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_wapa IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_wapa IMPLEMENTATION. +CLASS zcl_abapgit_object_wapa IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -484,7 +470,7 @@ CLASS lcl_object_wapa IMPLEMENTATION. ENDMETHOD. METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_tran IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_tran IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_wapa.clas.xml b/src/objects/zcl_abapgit_object_wapa.clas.xml new file mode 100644 index 000000000..9bbe138fa --- /dev/null +++ b/src/objects/zcl_abapgit_object_wapa.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_WAPA + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_wdya.prog.abap b/src/objects/zcl_abapgit_object_wdya.clas.abap similarity index 86% rename from src/zabapgit_object_wdya.prog.abap rename to src/objects/zcl_abapgit_object_wdya.clas.abap index 98bda9cd7..1a98fbfa8 100644 --- a/src/zabapgit_object_wdya.prog.abap +++ b/src/objects/zcl_abapgit_object_wdya.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_WDYA -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_wdya DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_wdya DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_wdya DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -25,14 +16,9 @@ CLASS lcl_object_wdya DEFINITION INHERITING FROM lcl_objects_super FINAL. iv_package TYPE devclass RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_wdya DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_wdya IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_wdya IMPLEMENTATION. +CLASS zcl_abapgit_object_wdya IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -236,7 +222,7 @@ CLASS lcl_object_wdya IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_wdya IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_wdya IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_wdya.clas.xml b/src/objects/zcl_abapgit_object_wdya.clas.xml new file mode 100644 index 000000000..8bd6ec67c --- /dev/null +++ b/src/objects/zcl_abapgit_object_wdya.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_WDYA + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_wdyn.prog.abap b/src/objects/zcl_abapgit_object_wdyn.clas.abap similarity index 96% rename from src/zabapgit_object_wdyn.prog.abap rename to src/objects/zcl_abapgit_object_wdyn.clas.abap index dbcf9aee5..6a1b2aeb2 100644 --- a/src/zabapgit_object_wdyn.prog.abap +++ b/src/objects/zcl_abapgit_object_wdyn.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_WDYN -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_wdyn DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_wdyn DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_wdyn DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -73,14 +64,9 @@ CLASS lcl_object_wdyn DEFINITION INHERITING FROM lcl_objects_super FINAL. i_value TYPE i CHANGING ct_exception TYPE abap_func_excpbind_tab. -ENDCLASS. "lcl_object_wdyn DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_wdyn IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_wdyn IMPLEMENTATION. +CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -809,7 +795,7 @@ CLASS lcl_object_wdyn IMPLEMENTATION. ENDMETHOD. "jump METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_wdyn IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_wdyn IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_wdyn.clas.xml b/src/objects/zcl_abapgit_object_wdyn.clas.xml new file mode 100644 index 000000000..de14e5145 --- /dev/null +++ b/src/objects/zcl_abapgit_object_wdyn.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_WDYN + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_webi.prog.abap b/src/objects/zcl_abapgit_object_webi.clas.abap similarity index 93% rename from src/zabapgit_object_webi.prog.abap rename to src/objects/zcl_abapgit_object_webi.clas.abap index feba0ddca..6976175d5 100644 --- a/src/zabapgit_object_webi.prog.abap +++ b/src/objects/zcl_abapgit_object_webi.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_WEBI -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_webi DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_webi DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_webi DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -53,14 +44,9 @@ CLASS lcl_object_webi DEFINITION INHERITING FROM lcl_objects_super FINAL. RAISING zcx_abapgit_exception cx_ws_md_exception. -ENDCLASS. "lcl_object_SFBS DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_webi IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_webi IMPLEMENTATION. +CLASS zcl_abapgit_object_webi IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -459,7 +445,7 @@ CLASS lcl_object_webi IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~get_metadata METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_webi IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_webi IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_webi.clas.xml b/src/objects/zcl_abapgit_object_webi.clas.xml new file mode 100644 index 000000000..159af3b4c --- /dev/null +++ b/src/objects/zcl_abapgit_object_webi.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_WEBI + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/zabapgit_object_xslt.prog.abap b/src/objects/zcl_abapgit_object_xslt.clas.abap similarity index 82% rename from src/zabapgit_object_xslt.prog.abap rename to src/objects/zcl_abapgit_object_xslt.clas.abap index b921cc1e6..c5ebc6af8 100644 --- a/src/zabapgit_object_xslt.prog.abap +++ b/src/objects/zcl_abapgit_object_xslt.clas.abap @@ -1,13 +1,4 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_XSLT -*&---------------------------------------------------------------------* - -*----------------------------------------------------------------------* -* CLASS lcl_object_xslt DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_xslt DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS zcl_abapgit_object_xslt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. @@ -19,14 +10,9 @@ CLASS lcl_object_xslt DEFINITION INHERITING FROM lcl_objects_super FINAL. RETURNING VALUE(ro_xslt) TYPE REF TO cl_o2_api_xsltdesc RAISING zcx_abapgit_exception. -ENDCLASS. "lcl_object_xslt DEFINITION +ENDCLASS. -*----------------------------------------------------------------------* -* CLASS lcl_object_xslt IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_xslt IMPLEMENTATION. +CLASS zcl_abapgit_object_xslt IMPLEMENTATION. METHOD zif_abapgit_object~has_changed_since. rv_changed = abap_true. @@ -199,7 +185,7 @@ CLASS lcl_object_xslt IMPLEMENTATION. ENDMETHOD. "zif_abapgit_object~get_metadata METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. -ENDCLASS. "lcl_object_xslt IMPLEMENTATION +ENDCLASS. "zcl_abapgit_object_xslt IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_object_xslt.clas.xml b/src/objects/zcl_abapgit_object_xslt.clas.xml new file mode 100644 index 000000000..27793a554 --- /dev/null +++ b/src/objects/zcl_abapgit_object_xslt.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECT_XSLT + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_objects_program.clas.abap b/src/objects/zcl_abapgit_objects_program.clas.abap new file mode 100644 index 000000000..e1a08849a --- /dev/null +++ b/src/objects/zcl_abapgit_objects_program.clas.abap @@ -0,0 +1,846 @@ +CLASS zcl_abapgit_objects_program DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super. + + PUBLIC SECTION. + TYPES: BEGIN OF ty_progdir, + name TYPE progdir-name, + state TYPE progdir-state, + sqlx TYPE progdir-sqlx, + edtx TYPE progdir-edtx, + varcl TYPE progdir-varcl, + dbapl TYPE progdir-dbapl, + dbna TYPE progdir-dbna, + clas TYPE progdir-clas, + type TYPE progdir-type, + occurs TYPE progdir-occurs, + subc TYPE progdir-subc, + appl TYPE progdir-appl, + secu TYPE progdir-secu, + cnam TYPE progdir-cnam, + cdat TYPE progdir-cdat, + unam TYPE progdir-unam, + udat TYPE progdir-udat, + vern TYPE progdir-vern, + levl TYPE progdir-levl, + rstat TYPE progdir-rstat, + rmand TYPE progdir-rmand, + rload TYPE progdir-rload, + fixpt TYPE progdir-fixpt, + sset TYPE progdir-sset, + sdate TYPE progdir-sdate, + stime TYPE progdir-stime, + idate TYPE progdir-idate, + itime TYPE progdir-itime, + ldbname TYPE progdir-ldbname, + uccheck TYPE progdir-uccheck, + END OF ty_progdir. + + METHODS serialize_program + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output OPTIONAL + is_item TYPE zif_abapgit_definitions=>ty_item + io_files TYPE REF TO zcl_abapgit_objects_files + iv_program TYPE programm OPTIONAL + iv_extra TYPE clike OPTIONAL + RAISING zcx_abapgit_exception. + + METHODS read_progdir + IMPORTING iv_program TYPE programm + RETURNING VALUE(rs_progdir) TYPE ty_progdir. + + METHODS deserialize_program + IMPORTING is_progdir TYPE ty_progdir + it_source TYPE abaptxt255_tab + it_tpool TYPE textpool_table + iv_package TYPE devclass + RAISING zcx_abapgit_exception. + + PROTECTED SECTION. + + TYPES: ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY. + + TYPES: BEGIN OF ty_dynpro, + header TYPE rpy_dyhead, + containers TYPE dycatt_tab, + fields TYPE dyfatc_tab, + flow_logic TYPE swydyflow, + spaces TYPE ty_spaces_tt, + END OF ty_dynpro. + + TYPES: ty_dynpro_tt TYPE STANDARD TABLE OF ty_dynpro WITH DEFAULT KEY. + + TYPES: BEGIN OF ty_cua, + adm TYPE rsmpe_adm, + sta TYPE STANDARD TABLE OF rsmpe_stat WITH DEFAULT KEY, + fun TYPE STANDARD TABLE OF rsmpe_funt WITH DEFAULT KEY, + men TYPE STANDARD TABLE OF rsmpe_men WITH DEFAULT KEY, + mtx TYPE STANDARD TABLE OF rsmpe_mnlt WITH DEFAULT KEY, + act TYPE STANDARD TABLE OF rsmpe_act WITH DEFAULT KEY, + but TYPE STANDARD TABLE OF rsmpe_but WITH DEFAULT KEY, + pfk TYPE STANDARD TABLE OF rsmpe_pfk WITH DEFAULT KEY, + set TYPE STANDARD TABLE OF rsmpe_staf WITH DEFAULT KEY, + doc TYPE STANDARD TABLE OF rsmpe_atrt WITH DEFAULT KEY, + tit TYPE STANDARD TABLE OF rsmpe_titt WITH DEFAULT KEY, + biv TYPE STANDARD TABLE OF rsmpe_buts WITH DEFAULT KEY, + END OF ty_cua. + + METHODS serialize_dynpros + IMPORTING iv_program_name TYPE programm + RETURNING VALUE(rt_dynpro) TYPE ty_dynpro_tt + RAISING zcx_abapgit_exception. + + METHODS serialize_cua + IMPORTING iv_program_name TYPE programm + RETURNING VALUE(rs_cua) TYPE ty_cua + RAISING zcx_abapgit_exception. + + METHODS deserialize_dynpros + IMPORTING it_dynpros TYPE ty_dynpro_tt + RAISING zcx_abapgit_exception. + + METHODS deserialize_textpool + IMPORTING iv_program TYPE programm + it_tpool TYPE textpool_table + iv_language TYPE langu OPTIONAL + iv_is_include TYPE abap_bool DEFAULT abap_false + RAISING zcx_abapgit_exception. + + METHODS deserialize_cua + IMPORTING iv_program_name TYPE programm + is_cua TYPE ty_cua + RAISING zcx_abapgit_exception. + + METHODS check_prog_changed_since + IMPORTING iv_program TYPE programm + iv_timestamp TYPE timestamp + iv_skip_gui TYPE abap_bool DEFAULT abap_false + RETURNING VALUE(rv_changed) TYPE abap_bool. + + CLASS-METHODS: + add_tpool + IMPORTING it_tpool TYPE textpool_table + RETURNING VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt, + read_tpool + IMPORTING it_tpool TYPE zif_abapgit_definitions=>ty_tpool_tt + RETURNING VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt. + + PRIVATE SECTION. + METHODS: + condense_flow + EXPORTING et_spaces TYPE ty_spaces_tt + CHANGING ct_flow TYPE swydyflow, + uncondense_flow + IMPORTING it_flow TYPE swydyflow + it_spaces TYPE ty_spaces_tt + RETURNING VALUE(rt_flow) TYPE swydyflow. + + +ENDCLASS. + +CLASS zcl_abapgit_objects_program IMPLEMENTATION. + + METHOD condense_flow. + + DATA: lv_spaces LIKE LINE OF et_spaces. + + FIELD-SYMBOLS: LIKE LINE OF ct_flow. + + + CLEAR et_spaces. + + LOOP AT ct_flow ASSIGNING . + lv_spaces = 0. + + WHILE NOT -line IS INITIAL AND -line(1) = space. + lv_spaces = lv_spaces + 1. + -line = -line+1. + ENDWHILE. + + APPEND lv_spaces TO et_spaces. + ENDLOOP. + + ENDMETHOD. + + METHOD uncondense_flow. + + DATA: lv_spaces LIKE LINE OF it_spaces. + + FIELD-SYMBOLS: LIKE LINE OF it_flow, + LIKE LINE OF rt_flow. + + + LOOP AT it_flow ASSIGNING . + APPEND INITIAL LINE TO rt_flow ASSIGNING . + -line = -line. + + READ TABLE it_spaces INDEX sy-tabix INTO lv_spaces. + IF sy-subrc = 0. + SHIFT -line RIGHT BY lv_spaces PLACES IN CHARACTER MODE. + ENDIF. + ENDLOOP. + + ENDMETHOD. + + METHOD serialize_program. + + DATA: ls_progdir TYPE ty_progdir, + lv_program_name TYPE programm, + lt_dynpros TYPE ty_dynpro_tt, + ls_cua TYPE ty_cua, + lt_source TYPE TABLE OF abaptxt255, + lt_tpool TYPE textpool_table, + ls_tpool LIKE LINE OF lt_tpool, + lo_xml TYPE REF TO zcl_abapgit_xml_output. + + IF iv_program IS INITIAL. + lv_program_name = is_item-obj_name. + ELSE. + lv_program_name = iv_program. + ENDIF. + + zcl_abapgit_language=>set_current_language( mv_language ). + + CALL FUNCTION 'RPY_PROGRAM_READ' + EXPORTING + program_name = lv_program_name + with_lowercase = abap_true + TABLES + source_extended = lt_source + textelements = lt_tpool + EXCEPTIONS + cancelled = 1 + not_found = 2 + permission_error = 3 + OTHERS = 4. + + IF sy-subrc = 2. + zcl_abapgit_language=>restore_login_language( ). + RETURN. + ELSEIF sy-subrc <> 0. + zcl_abapgit_language=>restore_login_language( ). + zcx_abapgit_exception=>raise( 'Error reading program' ). + ENDIF. + + zcl_abapgit_language=>restore_login_language( ). + + ls_progdir = read_progdir( lv_program_name ). + + IF io_xml IS BOUND. + lo_xml = io_xml. + ELSE. + CREATE OBJECT lo_xml. + ENDIF. + + lo_xml->add( iv_name = 'PROGDIR' + ig_data = ls_progdir ). + IF ls_progdir-subc = '1' OR ls_progdir-subc = 'M'. + lt_dynpros = serialize_dynpros( lv_program_name ). + lo_xml->add( iv_name = 'DYNPROS' + ig_data = lt_dynpros ). + + ls_cua = serialize_cua( lv_program_name ). + IF NOT ls_cua IS INITIAL. + lo_xml->add( iv_name = 'CUA' + ig_data = ls_cua ). + ENDIF. + ENDIF. + + READ TABLE lt_tpool WITH KEY id = 'R' INTO ls_tpool. + IF sy-subrc = 0 AND ls_tpool-key = '' AND ls_tpool-length = 0. + DELETE lt_tpool INDEX sy-tabix. + ENDIF. + + lo_xml->add( iv_name = 'TPOOL' + ig_data = add_tpool( lt_tpool ) ). + + IF NOT io_xml IS BOUND. + io_files->add_xml( iv_extra = iv_extra + io_xml = lo_xml ). + ENDIF. + + io_files->add_abap( iv_extra = iv_extra + it_abap = lt_source ). + + ENDMETHOD. "serialize_program + + METHOD deserialize_program. + + DATA: lv_exists TYPE sap_bool, + lv_progname TYPE reposrc-progname, + ls_tpool LIKE LINE OF it_tpool, + lv_title TYPE rglif-title, + ls_progdir_new TYPE progdir. + + FIELD-SYMBOLS: TYPE any. + + + CALL FUNCTION 'RS_CORR_INSERT' + EXPORTING + object = is_progdir-name + object_class = 'ABAP' + devclass = iv_package + master_language = mv_language + mode = 'INSERT' + EXCEPTIONS + cancelled = 1 + permission_failure = 2 + unknown_objectclass = 3 + OTHERS = 4. + IF sy-subrc = 1. + zcx_abapgit_exception=>raise( 'Cancelled' ). + ELSEIF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from RS_CORR_INSERT' ). + ENDIF. + + READ TABLE it_tpool INTO ls_tpool WITH KEY id = 'R'. "#EC CI_SUBRC + IF sy-subrc = 0. +* there is a bug in RPY_PROGRAM_UPDATE, the header line of TTAB is not +* cleared, so the title length might be inherited from a different program. + ASSIGN ('(SAPLSIFP)TTAB') TO . + IF sy-subrc = 0. + CLEAR . + ENDIF. + + lv_title = ls_tpool-entry. + ENDIF. + + SELECT SINGLE progname FROM reposrc INTO lv_progname + WHERE progname = is_progdir-name + AND r3state = 'A'. + IF sy-subrc = 0. + lv_exists = abap_true. + ELSE. + lv_exists = abap_false. + ENDIF. + + IF lv_exists = abap_true. + zcl_abapgit_language=>set_current_language( mv_language ). + + CALL FUNCTION 'RPY_PROGRAM_UPDATE' + EXPORTING + program_name = is_progdir-name + title_string = lv_title + save_inactive = 'I' + TABLES + source_extended = it_source + EXCEPTIONS + cancelled = 1 + permission_error = 2 + not_found = 3 + OTHERS = 4. + + IF sy-subrc <> 0. + zcl_abapgit_language=>restore_login_language( ). + + IF sy-msgid = 'EU' AND sy-msgno = '510'. + zcx_abapgit_exception=>raise( 'User is currently editing program' ). + ELSE. + zcx_abapgit_exception=>raise( 'PROG, error updating' ). + ENDIF. + ENDIF. + + zcl_abapgit_language=>restore_login_language( ). + ELSE. +* function module RPY_PROGRAM_INSERT cannot handle function group includes + + IF strlen( is_progdir-name ) > 30. + " special treatment for extensions + " if the program name exceeds 30 characters it is not a usual + " ABAP program but might be some extension, which requires the internal + " addition EXTENSION TYPE, see + " http://help.sap.com/abapdocu_751/en/abapinsert_report_internal.htm#!ABAP_ADDITION_1@1@ + " This e.g. occurs in case of transportable Code Inspector variants (ending with ===VC) + INSERT REPORT is_progdir-name + FROM it_source + STATE 'I' + EXTENSION TYPE is_progdir-name+30. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from INSERT REPORT .. EXTENSION TYPE' ). + ENDIF. + ELSE. + INSERT REPORT is_progdir-name + FROM it_source + STATE 'I' + PROGRAM TYPE is_progdir-subc. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from INSERT REPORT' ). + ENDIF. + ENDIF. + ENDIF. + + IF NOT it_tpool[] IS INITIAL. + INSERT TEXTPOOL is_progdir-name + FROM it_tpool + LANGUAGE mv_language + STATE 'I'. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). + ENDIF. + ENDIF. + + CALL FUNCTION 'READ_PROGDIR' + EXPORTING + i_progname = is_progdir-name + i_state = 'I' + IMPORTING + e_progdir = ls_progdir_new + EXCEPTIONS + not_exists = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'not found in PROGDIR' ). + ENDIF. + +* todo, package? + + ls_progdir_new-ldbname = is_progdir-ldbname. + ls_progdir_new-dbna = is_progdir-dbna. + ls_progdir_new-dbapl = is_progdir-dbapl. + ls_progdir_new-rload = is_progdir-rload. + ls_progdir_new-fixpt = is_progdir-fixpt. + ls_progdir_new-varcl = is_progdir-varcl. + ls_progdir_new-appl = is_progdir-appl. + ls_progdir_new-rstat = is_progdir-rstat. + + CALL FUNCTION 'UPDATE_PROGDIR' + EXPORTING + i_progdir = ls_progdir_new + i_progname = ls_progdir_new-name + i_state = ls_progdir_new-state + EXCEPTIONS + not_executed = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'PROG, error inserting' ). + ENDIF. + + SELECT SINGLE * FROM progdir INTO ls_progdir_new + WHERE name = ls_progdir_new-name + AND state = ls_progdir_new-state. + IF sy-subrc = 0 AND is_progdir-varcl = space AND ls_progdir_new-varcl = abap_true. +* function module UPDATE_PROGDIR does not update VARCL + UPDATE progdir SET varcl = is_progdir-varcl + WHERE name = ls_progdir_new-name + AND state = ls_progdir_new-state. "#EC CI_SUBRC + ENDIF. + + zcl_abapgit_objects_activation=>add( + iv_type = 'REPS' + iv_name = is_progdir-name ). + + ENDMETHOD. "deserialize_program + + METHOD read_progdir. + + DATA: ls_sapdir TYPE progdir. + + + CALL FUNCTION 'READ_PROGDIR' + EXPORTING + i_progname = iv_program + i_state = 'A' + IMPORTING + e_progdir = ls_sapdir. + MOVE-CORRESPONDING ls_sapdir TO rs_progdir. + + CLEAR: rs_progdir-edtx, + rs_progdir-cnam, + rs_progdir-cdat, + rs_progdir-unam, + rs_progdir-udat, + rs_progdir-levl, + rs_progdir-vern, + rs_progdir-rmand, + rs_progdir-sdate, + rs_progdir-stime, + rs_progdir-idate, + rs_progdir-itime. + + ENDMETHOD. "read_progdir + + METHOD serialize_cua. + + CALL FUNCTION 'RS_CUA_INTERNAL_FETCH' + EXPORTING + program = iv_program_name + language = mv_language + state = 'A' + IMPORTING + adm = rs_cua-adm + TABLES + sta = rs_cua-sta + fun = rs_cua-fun + men = rs_cua-men + mtx = rs_cua-mtx + act = rs_cua-act + but = rs_cua-but + pfk = rs_cua-pfk + set = rs_cua-set + doc = rs_cua-doc + tit = rs_cua-tit + biv = rs_cua-biv + EXCEPTIONS + not_found = 1 + unknown_version = 2 + OTHERS = 3. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from RS_CUA_INTERNAL_FETCH' ). + ENDIF. + + ENDMETHOD. "serialize_cua + + METHOD serialize_dynpros. + + DATA: ls_header TYPE rpy_dyhead, + lt_containers TYPE dycatt_tab, + lt_fields_to_containers TYPE dyfatc_tab, + lt_flow_logic TYPE swydyflow, + lt_d020s TYPE TABLE OF d020s. + + FIELD-SYMBOLS: LIKE LINE OF lt_d020s, + TYPE scrpostyle, + LIKE LINE OF lt_fields_to_containers, + LIKE LINE OF rt_dynpro. + + + CALL FUNCTION 'RS_SCREEN_LIST' + EXPORTING + dynnr = '' + progname = iv_program_name + TABLES + dynpros = lt_d020s + EXCEPTIONS + not_found = 1 + OTHERS = 2. + IF sy-subrc = 2. + zcx_abapgit_exception=>raise( 'error from screen_list' ). + ENDIF. + +* loop dynpros and skip generated selection screens + LOOP AT lt_d020s ASSIGNING WHERE type <> 'S'. + + CALL FUNCTION 'RPY_DYNPRO_READ' + EXPORTING + progname = iv_program_name + dynnr = -dnum + IMPORTING + header = ls_header + TABLES + containers = lt_containers + fields_to_containers = lt_fields_to_containers + flow_logic = lt_flow_logic + EXCEPTIONS + cancelled = 1 + not_found = 2 + permission_error = 3 + OTHERS = 4. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Error while reading dynpro' ). + ENDIF. + + LOOP AT lt_fields_to_containers ASSIGNING . +* output style is a NUMC field, the XML conversion will fail if it contains invalid value +* field does not exist in all versions + ASSIGN COMPONENT 'OUTPUTSTYLE' OF STRUCTURE TO . + IF sy-subrc = 0 AND = ' '. + CLEAR . + ENDIF. + ENDLOOP. + + APPEND INITIAL LINE TO rt_dynpro ASSIGNING . + -header = ls_header. + -containers = lt_containers. + -fields = lt_fields_to_containers. + + condense_flow( IMPORTING et_spaces = -spaces + CHANGING ct_flow = lt_flow_logic ). + -flow_logic = lt_flow_logic. + + ENDLOOP. + + ENDMETHOD. "serialize_dynpros + + + METHOD deserialize_dynpros. + + DATA: lv_name TYPE dwinactiv-obj_name, + ls_dynpro LIKE LINE OF it_dynpros. + + +* ls_dynpro is changed by the function module, a field-symbol will cause +* the program to dump since it_dynpros cannot be changed + LOOP AT it_dynpros INTO ls_dynpro. + + ls_dynpro-flow_logic = uncondense_flow( + it_flow = ls_dynpro-flow_logic + it_spaces = ls_dynpro-spaces ). + + CALL FUNCTION 'RPY_DYNPRO_INSERT' + EXPORTING + header = ls_dynpro-header + suppress_exist_checks = abap_true + TABLES + containers = ls_dynpro-containers + fields_to_containers = ls_dynpro-fields + flow_logic = ls_dynpro-flow_logic + EXCEPTIONS + cancelled = 1 + already_exists = 2 + program_not_exists = 3 + not_executed = 4 + missing_required_field = 5 + illegal_field_value = 6 + field_not_allowed = 7 + not_generated = 8 + illegal_field_position = 9 + OTHERS = 10. + IF sy-subrc <> 2 AND sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from RPY_DYNPRO_INSERT' ). + ENDIF. +* todo, RPY_DYNPRO_UPDATE? + + CONCATENATE ls_dynpro-header-program ls_dynpro-header-screen + INTO lv_name RESPECTING BLANKS. + ASSERT NOT lv_name IS INITIAL. + + zcl_abapgit_objects_activation=>add( + iv_type = 'DYNP' + iv_name = lv_name ). + + ENDLOOP. + + ENDMETHOD. "deserialize_dynpros + + METHOD add_tpool. + + FIELD-SYMBOLS: LIKE LINE OF it_tpool, + LIKE LINE OF rt_tpool. + + + LOOP AT it_tpool ASSIGNING . + APPEND INITIAL LINE TO rt_tpool ASSIGNING . + MOVE-CORRESPONDING TO . + IF -id = 'S'. + -split = -entry. + -entry = -entry+8. + ENDIF. + ENDLOOP. + + ENDMETHOD. "add_tpool + + METHOD read_tpool. + + FIELD-SYMBOLS: LIKE LINE OF it_tpool, + LIKE LINE OF rt_tpool. + + + LOOP AT it_tpool ASSIGNING . + APPEND INITIAL LINE TO rt_tpool ASSIGNING . + MOVE-CORRESPONDING TO . + IF -id = 'S'. + CONCATENATE -split -entry + INTO -entry + RESPECTING BLANKS. + ENDIF. + ENDLOOP. + + ENDMETHOD. "read_tpool + + METHOD deserialize_textpool. + + DATA lv_language TYPE langu. + DATA lv_state TYPE c. + DATA lv_delete TYPE abap_bool. + + IF iv_language IS INITIAL. + lv_language = mv_language. + ELSE. + lv_language = iv_language. + ENDIF. + + IF lv_language = mv_language. + lv_state = 'I'. "Textpool in master language needs to be activated + ELSE. + lv_state = 'A'. "Translations are always active + ENDIF. + + IF it_tpool IS INITIAL. + IF iv_is_include = abap_false OR lv_state = 'A'. + DELETE TEXTPOOL iv_program "Remove initial description from textpool if + LANGUAGE iv_program "original program does not have a textpool + STATE lv_state. + + lv_delete = abap_true. + ELSE. + INSERT TEXTPOOL iv_program "In case of includes: Deletion of textpool in + FROM it_tpool "master language cannot be activated because + LANGUAGE lv_language "this woul activate the deletion of the textpool + STATE lv_state. "of the mail program -> insert empty textpool + ENDIF. + ELSE. + IF lines( it_tpool ) = 1 AND lv_language = mv_language. + READ TABLE it_tpool WITH KEY id = 'R' TRANSPORTING NO FIELDS. + IF sy-subrc = 0. + RETURN. "No action because description in master language is already there + ENDIF. + ENDIF. + + INSERT TEXTPOOL iv_program + FROM it_tpool + LANGUAGE lv_language + STATE lv_state. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). + ENDIF. + ENDIF. + + IF lv_state = 'I'. "Textpool in master language needs to be activated + zcl_abapgit_objects_activation=>add( + iv_type = 'REPT' + iv_name = iv_program + iv_delete = lv_delete ). + ENDIF. + ENDMETHOD. "deserialize_textpool + + METHOD deserialize_cua. + + DATA: ls_tr_key TYPE trkey. + + + IF lines( is_cua-sta ) = 0 + AND lines( is_cua-fun ) = 0 + AND lines( is_cua-men ) = 0 + AND lines( is_cua-mtx ) = 0 + AND lines( is_cua-act ) = 0 + AND lines( is_cua-but ) = 0 + AND lines( is_cua-pfk ) = 0 + AND lines( is_cua-set ) = 0 + AND lines( is_cua-doc ) = 0 + AND lines( is_cua-tit ) = 0 + AND lines( is_cua-biv ) = 0. + RETURN. + ENDIF. + + SELECT SINGLE devclass INTO ls_tr_key-devclass + FROM tadir + WHERE pgmid = 'R3TR' + AND object = ms_item-obj_type + AND obj_name = ms_item-obj_name. "#EC CI_GENBUFF + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'not found in tadir' ). + ENDIF. + + ls_tr_key-obj_type = ms_item-obj_type. + ls_tr_key-obj_name = ms_item-obj_name. + ls_tr_key-sub_type = 'CUAD'. + ls_tr_key-sub_name = iv_program_name. + + sy-tcode = 'SE41' ##write_ok. " evil hack, workaround to handle fixes in note 2159455 + CALL FUNCTION 'RS_CUA_INTERNAL_WRITE' + EXPORTING + program = iv_program_name + language = mv_language + tr_key = ls_tr_key + adm = is_cua-adm + state = 'I' + TABLES + sta = is_cua-sta + fun = is_cua-fun + men = is_cua-men + mtx = is_cua-mtx + act = is_cua-act + but = is_cua-but + pfk = is_cua-pfk + set = is_cua-set + doc = is_cua-doc + tit = is_cua-tit + biv = is_cua-biv + EXCEPTIONS + not_found = 1 + OTHERS = 2. + IF sy-subrc <> 0. +* if moving code from SAPlink, see https://github.com/larshp/abapGit/issues/562 + zcx_abapgit_exception=>raise( 'error from RS_CUA_INTERNAL_WRITE' ). + ENDIF. + + zcl_abapgit_objects_activation=>add( + iv_type = 'CUAD' + iv_name = iv_program_name ). + + ENDMETHOD. "deserialize_cua + + METHOD check_prog_changed_since. + + DATA: lv_date TYPE dats, + lv_time TYPE tims, + lt_screens TYPE STANDARD TABLE OF d020s, + lt_eudb TYPE STANDARD TABLE OF eudb. + + FIELD-SYMBOLS: LIKE LINE OF lt_screens, + LIKE LINE OF lt_eudb. + + SELECT SINGLE udat utime FROM reposrc " Program + INTO (lv_date, lv_time) + WHERE progname = iv_program + AND r3state = 'A'. + + rv_changed = check_timestamp( + iv_timestamp = iv_timestamp + iv_date = lv_date + iv_time = lv_time ). + IF rv_changed = abap_true. + RETURN. + ENDIF. + + SELECT SINGLE udat utime FROM repotext " Program text pool + INTO (lv_date, lv_time) + WHERE progname = iv_program + AND r3state = 'A'. + + IF sy-subrc = 0. " Text not found ? Assuming no changes, see #404 + rv_changed = check_timestamp( + iv_timestamp = iv_timestamp + iv_date = lv_date + iv_time = lv_time ). + IF rv_changed = abap_true. + RETURN. + ENDIF. + ENDIF. + + IF iv_skip_gui = abap_true. + RETURN. + ENDIF. + + SELECT dgen tgen FROM d020s " Screens + INTO CORRESPONDING FIELDS OF TABLE lt_screens + WHERE prog = iv_program + ORDER BY PRIMARY KEY ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC + + LOOP AT lt_screens ASSIGNING . + rv_changed = check_timestamp( + iv_timestamp = iv_timestamp + iv_date = -dgen + iv_time = -tgen ). + IF rv_changed = abap_true. + RETURN. + ENDIF. + ENDLOOP. + + SELECT vdatum vzeit FROM eudb " GUI + INTO CORRESPONDING FIELDS OF TABLE lt_eudb + WHERE relid = 'CU' + AND name = iv_program + AND srtf2 = 0 + ORDER BY PRIMARY KEY ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC + + LOOP AT lt_eudb ASSIGNING . + rv_changed = check_timestamp( + iv_timestamp = iv_timestamp + iv_date = -vdatum + iv_time = -vzeit ). + IF rv_changed = abap_true. + RETURN. + ENDIF. + ENDLOOP. + + ENDMETHOD. "check_prog_changed_since + +ENDCLASS. "zcl_abapgit_objects_program IMPLEMENTATION diff --git a/src/objects/zcl_abapgit_objects_program.clas.xml b/src/objects/zcl_abapgit_objects_program.clas.xml new file mode 100644 index 000000000..c763aae0a --- /dev/null +++ b/src/objects/zcl_abapgit_objects_program.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECTS_PROGRAM + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_objects_saxx_super.clas.abap b/src/objects/zcl_abapgit_objects_saxx_super.clas.abap new file mode 100644 index 000000000..6b4525b3d --- /dev/null +++ b/src/objects/zcl_abapgit_objects_saxx_super.clas.abap @@ -0,0 +1,378 @@ +CLASS zcl_abapgit_objects_saxx_super DEFINITION PUBLIC ABSTRACT + INHERITING FROM zcl_abapgit_objects_super. +* common class for SAPC and SAMC objects + + PUBLIC SECTION. + INTERFACES: + zif_abapgit_object. + + PROTECTED SECTION. + METHODS: + get_persistence_class_name ABSTRACT + RETURNING + VALUE(r_persistence_class_name) TYPE seoclsname, + + get_data_class_name ABSTRACT + RETURNING + VALUE(r_data_class_name) TYPE seoclsname, + + get_data_structure_name ABSTRACT + RETURNING + VALUE(r_data_structure_name) TYPE string. + + PRIVATE SECTION. + DATA: mo_persistence TYPE REF TO if_wb_object_persist, + mo_appl_obj_data TYPE REF TO if_wb_object_data_model, + mv_data_structure_name TYPE string, + mv_appl_obj_cls_name TYPE seoclsname, + mv_persistence_cls_name TYPE seoclsname. + + METHODS: + create_channel_objects + RAISING + zcx_abapgit_exception, + + get_data + EXPORTING + p_data TYPE any + RAISING + zcx_abapgit_exception, + + lock + RAISING + zcx_abapgit_exception, + + unlock + RAISING + zcx_abapgit_exception, + + get_names. + +ENDCLASS. + +CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION. + + METHOD zif_abapgit_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. + + METHOD zif_abapgit_object~changed_by. + + DATA: lr_data TYPE REF TO data. + + FIELD-SYMBOLS: TYPE any, + TYPE any, + TYPE any. + + create_channel_objects( ). + + TRY. + CREATE DATA lr_data TYPE (mv_data_structure_name). + ASSIGN lr_data->* TO . + + CATCH cx_root. + zcx_abapgit_exception=>raise( |{ ms_item-obj_name } not supported| ). + ENDTRY. + + get_data( + IMPORTING + p_data = ). + + ASSIGN COMPONENT 'HEADER' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + + IF IS NOT INITIAL. + rv_user = . + ELSE. + rv_user = c_user_unknown. + ENDIF. + + ENDMETHOD. + + METHOD zif_abapgit_object~get_metadata. + rs_metadata = get_metadata( ). + rs_metadata-delete_tadir = abap_true. + ENDMETHOD. + + METHOD zif_abapgit_object~exists. + + DATA: object_key TYPE seu_objkey. + + create_channel_objects( ). + + object_key = ms_item-obj_name. + + TRY. + mo_persistence->get( p_object_key = object_key + p_version = 'A' + p_existence_check_only = abap_true ). + + CATCH cx_swb_object_does_not_exist cx_swb_exception. + rv_bool = abap_false. + RETURN. + ENDTRY. + + rv_bool = abap_true. + + ENDMETHOD. + + METHOD zif_abapgit_object~serialize. + + DATA: lr_data TYPE REF TO data. + + FIELD-SYMBOLS: TYPE any, + TYPE any, + TYPE any. + + create_channel_objects( ). + + TRY. + CREATE DATA lr_data TYPE (mv_data_structure_name). + ASSIGN lr_data->* TO . + + CATCH cx_root. + zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). + ENDTRY. + + get_data( + IMPORTING + p_data = ). + + ASSIGN COMPONENT 'HEADER' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + + ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + CLEAR . + + io_xml->add( iv_name = ms_item-obj_type + ig_data = ). + + ENDMETHOD. + + METHOD zif_abapgit_object~deserialize. + + DATA: lr_data TYPE REF TO data. + + FIELD-SYMBOLS: TYPE any. + + create_channel_objects( ). + + TRY. + CREATE DATA lr_data TYPE (mv_data_structure_name). + ASSIGN lr_data->* TO . + + CATCH cx_root. + zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). + ENDTRY. + + io_xml->read( + EXPORTING + iv_name = ms_item-obj_type + CHANGING + cg_data = ). + + IF zif_abapgit_object~exists( ) = abap_true. + zif_abapgit_object~delete( ). + ENDIF. + + TRY. + lock( ). + + CALL FUNCTION 'RS_CORR_INSERT' + EXPORTING + object = ms_item-obj_name + object_class = ms_item-obj_type + mode = 'I' + global_lock = abap_true + devclass = iv_package + master_language = mv_language + EXCEPTIONS + cancelled = 1 + permission_failure = 2 + unknown_objectclass = 3 + OTHERS = 4. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ). + ENDIF. + + mo_appl_obj_data->set_data( ). + + mo_persistence->save( mo_appl_obj_data ). + + unlock( ). + + CATCH cx_swb_exception. + zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ). + ENDTRY. + + ENDMETHOD. + + METHOD zif_abapgit_object~delete. + + DATA: object_key TYPE seu_objkey. + + create_channel_objects( ). + + object_key = ms_item-obj_name. + + TRY. + lock( ). + + mo_persistence->delete( object_key ). + + unlock( ). + + CATCH cx_swb_exception. + zcx_abapgit_exception=>raise( |Error occured while deleting { ms_item-obj_type }| ). + ENDTRY. + + ENDMETHOD. + + METHOD zif_abapgit_object~jump. + + CALL FUNCTION 'RS_TOOL_ACCESS' + EXPORTING + operation = 'SHOW' + object_name = ms_item-obj_name + object_type = ms_item-obj_type. + + ENDMETHOD. + + METHOD zif_abapgit_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. + ENDMETHOD. + + METHOD create_channel_objects. + + get_names( ). + + TRY. + IF mo_appl_obj_data IS NOT BOUND. + CREATE OBJECT mo_appl_obj_data TYPE (mv_appl_obj_cls_name). + ENDIF. + + IF mo_persistence IS NOT BOUND. + CREATE OBJECT mo_persistence TYPE (mv_persistence_cls_name). + ENDIF. + + CATCH cx_root. + zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). + ENDTRY. + + ENDMETHOD. + + METHOD get_data. + + DATA: object_key TYPE seu_objkey. + + object_key = ms_item-obj_name. + + TRY. + mo_persistence->get( + EXPORTING + p_object_key = object_key + p_version = 'A' + CHANGING + p_object_data = mo_appl_obj_data ). + + CATCH cx_root. + zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). + ENDTRY. + + mo_appl_obj_data->get_data( + IMPORTING + p_data = p_data ). + + ENDMETHOD. + + METHOD lock. + + DATA: objname TYPE trobj_name, + object_key TYPE seu_objkey, + objtype TYPE trobjtype. + + objname = ms_item-obj_name. + object_key = ms_item-obj_name. + objtype = ms_item-obj_type. + + mo_persistence->lock( + EXPORTING + p_objname_tr = objname + p_object_key = object_key + p_objtype_tr = objtype + EXCEPTIONS + foreign_lock = 1 + error_occurred = 2 + OTHERS = 3 ). + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |Error occured while locking { ms_item-obj_type } | && objname ). + ENDIF. + + ENDMETHOD. "lock + + METHOD unlock. + + DATA: objname TYPE trobj_name, + object_key TYPE seu_objkey, + objtype TYPE trobjtype. + + objname = ms_item-obj_name. + object_key = ms_item-obj_name. + objtype = ms_item-obj_type. + + mo_persistence->unlock( p_objname_tr = objname + p_object_key = object_key + p_objtype_tr = objtype ). + + ENDMETHOD. "unlock + + METHOD get_names. + + IF mv_data_structure_name IS INITIAL. + mv_data_structure_name = get_data_structure_name( ). + ENDIF. + + IF mv_appl_obj_cls_name IS INITIAL. + mv_appl_obj_cls_name = get_data_class_name( ). + ENDIF. + + IF mv_persistence_cls_name IS INITIAL. + mv_persistence_cls_name = get_persistence_class_name( ). + ENDIF. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_objects_saxx_super.clas.xml b/src/objects/zcl_abapgit_objects_saxx_super.clas.xml new file mode 100644 index 000000000..3c74a365c --- /dev/null +++ b/src/objects/zcl_abapgit_objects_saxx_super.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECTS_SAXX_SUPER + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_objects_super.clas.abap b/src/objects/zcl_abapgit_objects_super.clas.abap new file mode 100644 index 000000000..05ea7df1b --- /dev/null +++ b/src/objects/zcl_abapgit_objects_super.clas.abap @@ -0,0 +1,298 @@ +CLASS zcl_abapgit_objects_super DEFINITION PUBLIC ABSTRACT. + + PUBLIC SECTION. + + METHODS: + constructor + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + iv_language TYPE spras. + + CLASS-METHODS: + jump_adt + IMPORTING i_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name + i_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type + RAISING zcx_abapgit_exception. + + CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'. + + PROTECTED SECTION. + + DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, + mv_language TYPE spras. + + METHODS: + check_timestamp + IMPORTING + iv_timestamp TYPE timestamp + iv_date TYPE datum + iv_time TYPE uzeit + RETURNING + VALUE(rv_changed) TYPE abap_bool, + get_metadata + RETURNING VALUE(rs_metadata) TYPE zif_abapgit_definitions=>ty_metadata, + corr_insert + IMPORTING iv_package TYPE devclass + RAISING zcx_abapgit_exception, + tadir_insert + IMPORTING iv_package TYPE devclass + RAISING zcx_abapgit_exception, + jump_se11 + IMPORTING iv_radio TYPE string + iv_field TYPE string + RAISING zcx_abapgit_exception. + + PRIVATE SECTION. + + CLASS-METHODS: + is_adt_jump_possible + IMPORTING io_object TYPE REF TO cl_wb_object + io_adt TYPE REF TO object + RETURNING VALUE(r_is_adt_jump_possible) TYPE abap_bool + RAISING zcx_abapgit_exception. + +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION. + + + METHOD check_timestamp. + + DATA: lv_ts TYPE timestamp. + + IF sy-subrc = 0 AND iv_date IS NOT INITIAL AND iv_time IS NOT INITIAL. + cl_abap_tstmp=>systemtstmp_syst2utc( + EXPORTING syst_date = iv_date + syst_time = iv_time + IMPORTING utc_tstmp = lv_ts ). + IF lv_ts < iv_timestamp. + rv_changed = abap_false. " Unchanged + ELSE. + rv_changed = abap_true. + ENDIF. + ELSE. " Not found? => changed + rv_changed = abap_true. + ENDIF. + + ENDMETHOD. + + + METHOD constructor. + ms_item = is_item. + ASSERT NOT ms_item IS INITIAL. + mv_language = iv_language. + ASSERT NOT mv_language IS INITIAL. + ENDMETHOD. "constructor + + + METHOD corr_insert. + + DATA: ls_object TYPE ddenqs. + + + ls_object-objtype = ms_item-obj_type. + ls_object-objname = ms_item-obj_name. + + CALL FUNCTION 'RS_CORR_INSERT' + EXPORTING + object = ls_object + object_class = 'DICT' + devclass = iv_package + master_language = mv_language + mode = 'INSERT' + EXCEPTIONS + cancelled = 1 + permission_failure = 2 + unknown_objectclass = 3 + OTHERS = 4. + IF sy-subrc = 1. + zcx_abapgit_exception=>raise( 'Cancelled' ). + ELSEIF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from RS_CORR_INSERT' ). + ENDIF. + + ENDMETHOD. "corr_insert + + + METHOD get_metadata. + + DATA: lv_class TYPE string. + + lv_class = cl_abap_classdescr=>describe_by_object_ref( me )->get_relative_name( ). + + REPLACE FIRST OCCURRENCE OF 'ZCL_ABAPGIT' IN lv_class WITH 'LCL'. + + rs_metadata-class = lv_class. + rs_metadata-version = 'v1.0.0' ##no_text. + + ENDMETHOD. "get_metadata + + + METHOD is_adt_jump_possible. + + DATA: li_wb_request TYPE REF TO cl_wb_request, + li_adt_uri_mapper_vit TYPE REF TO object, + is_vit_wb_request TYPE abap_bool. + + cl_wb_request=>create_from_object_ref( + EXPORTING + p_wb_object = io_object + RECEIVING + p_wb_request = li_wb_request + EXCEPTIONS + illegal_operation = 1 + cancelled = 2 + OTHERS = 3 ). + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'ADT Jump Error' ). + ENDIF. + + TRY. + CALL METHOD io_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER_VIT') + RECEIVING + result = li_adt_uri_mapper_vit. + + CALL METHOD li_adt_uri_mapper_vit->('IF_ADT_URI_MAPPER_VIT~IS_VIT_WB_REQUEST') + EXPORTING + wb_request = li_wb_request + RECEIVING + result = is_vit_wb_request. + + IF is_vit_wb_request = abap_true. + r_is_adt_jump_possible = abap_false. + ELSE. + r_is_adt_jump_possible = abap_true. + ENDIF. + + CATCH cx_root. + zcx_abapgit_exception=>raise( 'ADT Jump Error' ). + ENDTRY. + + ENDMETHOD. + + + METHOD jump_adt. + + DATA: adt_link TYPE string, + obj_type TYPE trobjtype, + obj_name TYPE trobj_name, + li_object TYPE REF TO cl_wb_object, + li_adt TYPE REF TO object, + li_adt_uri_mapper TYPE REF TO object, + li_adt_objref TYPE REF TO object ##needed. + + FIELD-SYMBOLS: TYPE string. + + obj_name = i_obj_name. + obj_type = i_obj_type. + + TRY. + cl_wb_object=>create_from_transport_key( EXPORTING p_object = obj_type p_obj_name = obj_name + RECEIVING p_wb_object = li_object + EXCEPTIONS OTHERS = 1 ). + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'ADT Jump Error' ). + ENDIF. + + CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') + RECEIVING + result = li_adt. + + IF is_adt_jump_possible( io_object = li_object + io_adt = li_adt ) = abap_false. + zcx_abapgit_exception=>raise( 'ADT Jump Error' ). + ENDIF. + + CALL METHOD li_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER') + RECEIVING + result = li_adt_uri_mapper. + + CALL METHOD li_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF') + EXPORTING + wb_object = li_object + RECEIVING + result = li_adt_objref. + + ASSIGN ('li_adt_objref->ref_data-uri') TO . + ASSERT sy-subrc = 0. + + CONCATENATE 'adt://' sy-sysid INTO adt_link. + + cl_gui_frontend_services=>execute( EXPORTING document = adt_link + EXCEPTIONS OTHERS = 1 ). + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'ADT Jump Error' ). + ENDIF. + + CATCH cx_root. + zcx_abapgit_exception=>raise( 'ADT Jump Error' ). + ENDTRY. + + ENDMETHOD. + + + METHOD jump_se11. + + DATA: lt_bdcdata TYPE TABLE OF bdcdata. + + FIELD-SYMBOLS: LIKE LINE OF lt_bdcdata. + + + APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . + -program = 'SAPLSD_ENTRY'. + -dynpro = '1000'. + -dynbegin = abap_true. + + APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . + -fnam = 'BDC_OKCODE'. + -fval = '=WB_DISPLAY'. + + APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . + -fnam = iv_radio. + -fval = abap_true. + + APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . + -fnam = iv_field. + -fval = ms_item-obj_name. + + CALL FUNCTION 'ABAP4_CALL_TRANSACTION' + STARTING NEW TASK 'GIT' + EXPORTING + tcode = 'SE11' + mode_val = 'E' + TABLES + using_tab = lt_bdcdata + EXCEPTIONS + system_failure = 1 + communication_failure = 2 + resource_failure = 3 + OTHERS = 4 + ##fm_subrc_ok. "#EC CI_SUBRC + + ENDMETHOD. "jump_se11 + + + METHOD tadir_insert. + + CALL FUNCTION 'TR_TADIR_INTERFACE' + EXPORTING + wi_test_modus = abap_false + wi_tadir_pgmid = 'R3TR' + wi_tadir_object = ms_item-obj_type + wi_tadir_obj_name = ms_item-obj_name + wi_tadir_author = sy-uname + wi_tadir_devclass = iv_package + wi_tadir_masterlang = mv_language + iv_delflag = abap_false + EXCEPTIONS + OTHERS = 1. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from TR_TADIR_INTERFACE' ). + ENDIF. + + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/zcl_abapgit_objects_super.clas.xml b/src/objects/zcl_abapgit_objects_super.clas.xml new file mode 100644 index 000000000..782604327 --- /dev/null +++ b/src/objects/zcl_abapgit_objects_super.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OBJECTS_SUPER + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_oo_base.clas.abap b/src/objects/zcl_abapgit_oo_base.clas.abap new file mode 100644 index 000000000..3cae26397 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_base.clas.abap @@ -0,0 +1,260 @@ +CLASS zcl_abapgit_oo_base DEFINITION PUBLIC ABSTRACT. + PUBLIC SECTION. + INTERFACES: zif_abapgit_oo_object_fnc. + + PRIVATE SECTION. + DATA mv_skip_test_classes TYPE abap_bool. + + METHODS deserialize_abap_source_old + IMPORTING is_clskey TYPE seoclskey + it_source TYPE zif_abapgit_definitions=>ty_string_tt + RAISING zcx_abapgit_exception. + + METHODS deserialize_abap_source_new + IMPORTING is_clskey TYPE seoclskey + it_source TYPE zif_abapgit_definitions=>ty_string_tt + RAISING zcx_abapgit_exception + cx_sy_dyn_call_error. +ENDCLASS. + +CLASS zcl_abapgit_oo_base IMPLEMENTATION. + + METHOD zif_abapgit_oo_object_fnc~create. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~deserialize_source. + TRY. + deserialize_abap_source_new( + is_clskey = is_key + it_source = it_source ). + CATCH cx_sy_dyn_call_error. + deserialize_abap_source_old( + is_clskey = is_key + it_source = it_source ). + ENDTRY. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~generate_locals. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD deserialize_abap_source_old. + "for backwards compatability down to 702 + + DATA: lo_source TYPE REF TO cl_oo_source. + + CREATE OBJECT lo_source + EXPORTING + clskey = is_clskey + EXCEPTIONS + class_not_existing = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from CL_OO_SOURCE' ). + ENDIF. + + TRY. + lo_source->access_permission( seok_access_modify ). + lo_source->set_source( it_source ). + lo_source->save( ). + lo_source->access_permission( seok_access_free ). + CATCH cx_oo_access_permission. + zcx_abapgit_exception=>raise( 'permission error' ). + CATCH cx_oo_source_save_failure. + zcx_abapgit_exception=>raise( 'save failure' ). + ENDTRY. + + ENDMETHOD. + + METHOD deserialize_abap_source_new. + DATA: lo_factory TYPE REF TO object, + lo_source TYPE REF TO object, + lo_settings TYPE REF TO object, + lr_settings TYPE REF TO data. + + FIELD-SYMBOLS TYPE any. + + "Buffer needs to be refreshed, + "otherwise standard SAP CLIF_SOURCE reorder methods alphabetically + CALL FUNCTION 'SEO_BUFFER_INIT'. + CALL FUNCTION 'SEO_BUFFER_REFRESH' + EXPORTING + cifkey = is_clskey + version = seoc_version_inactive. + + CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE') + RECEIVING + result = lo_factory. + + "Enable modification mode to avoid exception CX_OO_ACCESS_PERMISSON when + "dealing with objects in foreign namespaces (namespace role = C) + CALL METHOD lo_factory->('CREATE_SETTINGS') + EXPORTING + modification_mode_enabled = abap_true + RECEIVING + result = lo_settings. + + CREATE DATA lr_settings TYPE REF TO ('IF_OO_CLIF_SOURCE_SETTINGS'). + ASSIGN lr_settings->* TO . + + ?= lo_settings. + + CALL METHOD lo_factory->('CREATE_CLIF_SOURCE') + EXPORTING + clif_name = is_clskey-clsname + settings = + RECEIVING + result = lo_source. + + TRY. + CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~LOCK'). + CATCH cx_oo_access_permission. + zcx_abapgit_exception=>raise( 'source_new, access permission exception' ). + ENDTRY. + + CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~SET_SOURCE') + EXPORTING + source = it_source. + + CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~SAVE'). + + CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~UNLOCK'). + + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~add_to_activation_list. + zcl_abapgit_objects_activation=>add_item( is_item ). + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~update_descriptions. + DELETE FROM seocompotx WHERE clsname = is_key-clsname. "#EC CI_SUBRC + INSERT seocompotx FROM TABLE it_descriptions. "#EC CI_SUBRC + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~insert_text_pool. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~create_sotr. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~create_documentation. + CALL FUNCTION 'DOCU_UPD' + EXPORTING + id = 'CL' + langu = iv_language + object = iv_object_name + TABLES + line = it_lines + EXCEPTIONS + ret_code = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from DOCU_UPD' ). + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_includes. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~exists. + CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK' + EXPORTING + clskey = iv_object_name + EXCEPTIONS + not_specified = 1 + not_existing = 2 + is_interface = 3 + no_text = 4 + inconsistent = 5 + OTHERS = 6. + rv_exists = boolc( sy-subrc <> 2 ). + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~serialize_abap. + DATA lo_oo_serializer TYPE REF TO zcl_abapgit_oo_serializer. + CREATE OBJECT lo_oo_serializer. + CASE iv_type. + WHEN seop_ext_class_locals_def. + rt_source = lo_oo_serializer->serialize_locals_def( is_class_key ). + WHEN seop_ext_class_locals_imp. + rt_source = lo_oo_serializer->serialize_locals_imp( is_class_key ). + WHEN seop_ext_class_macros. + rt_source = lo_oo_serializer->serialize_macros( is_class_key ). + WHEN seop_ext_class_testclasses. + rt_source = lo_oo_serializer->serialize_testclasses( is_class_key ). + mv_skip_test_classes = lo_oo_serializer->are_test_classes_skipped( ). + WHEN OTHERS. + rt_source = lo_oo_serializer->serialize_abap_clif_source( is_class_key ). + ENDCASE. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_skip_test_classes. + rv_skip = mv_skip_test_classes. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_class_properties. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_interface_properties. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_text_pool. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_sotr. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_documentation. + DATA: lv_state TYPE dokstate, + lv_object TYPE dokhl-object, + lt_lines TYPE tlinetab. + + lv_object = iv_class_name. + + CALL FUNCTION 'DOCU_GET' + EXPORTING + id = 'CL' + langu = iv_language + object = lv_object + IMPORTING + dokstate = lv_state + TABLES + line = lt_lines + EXCEPTIONS + no_docu_on_screen = 1 + no_docu_self_def = 2 + no_docu_temp = 3 + ret_code = 4 + OTHERS = 5. + IF sy-subrc = 0 AND lv_state = 'R'. + rt_lines = lt_lines. + ELSE. + CLEAR rt_lines. + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_descriptions. + SELECT * FROM seocompotx INTO TABLE rt_descriptions + WHERE clsname = iv_obejct_name + AND descript <> '' + ORDER BY PRIMARY KEY. "#EC CI_SUBRC + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~delete. + ASSERT 0 = 1. "Subclass responsibility + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_superclass. + SELECT SINGLE refclsname FROM vseoextend INTO rv_superclass + WHERE clsname = iv_classname. + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_base.clas.xml b/src/objects/zcl_abapgit_oo_base.clas.xml new file mode 100644 index 000000000..f14c15137 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_base.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OO_BASE + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_oo_class.clas.abap b/src/objects/zcl_abapgit_oo_class.clas.abap new file mode 100644 index 000000000..bd5f58350 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_class.clas.abap @@ -0,0 +1,281 @@ +CLASS zcl_abapgit_oo_class DEFINITION PUBLIC INHERITING FROM zcl_abapgit_oo_base. + + PUBLIC SECTION. + METHODS: + zif_abapgit_oo_object_fnc~create REDEFINITION, + zif_abapgit_oo_object_fnc~generate_locals REDEFINITION, + zif_abapgit_oo_object_fnc~insert_text_pool REDEFINITION, + zif_abapgit_oo_object_fnc~create_sotr REDEFINITION, + zif_abapgit_oo_object_fnc~get_includes REDEFINITION, + zif_abapgit_oo_object_fnc~get_class_properties REDEFINITION, + zif_abapgit_oo_object_fnc~read_text_pool REDEFINITION, + zif_abapgit_oo_object_fnc~read_sotr REDEFINITION, + zif_abapgit_oo_object_fnc~delete REDEFINITION. + +ENDCLASS. + +CLASS zcl_abapgit_oo_class IMPLEMENTATION. + METHOD zif_abapgit_oo_object_fnc~create. + CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE' + EXPORTING + devclass = iv_package + overwrite = iv_overwrite + CHANGING + class = is_properties + EXCEPTIONS + existing = 1 + is_interface = 2 + db_error = 3 + component_error = 4 + no_access = 5 + other = 6 + OTHERS = 7. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ). + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~generate_locals. + CALL FUNCTION 'SEO_CLASS_GENERATE_LOCALS' + EXPORTING + clskey = is_key + force = iv_force + locals_def = it_local_definitions + locals_imp = it_local_implementations + locals_mac = it_local_macros + locals_testclasses = it_local_test_classes + EXCEPTIONS + not_existing = 1 + model_only = 2 + locals_not_generated = 3 + locals_not_initialised = 4 + OTHERS = 5. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from generate_locals' ). + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~insert_text_pool. + DATA: lv_cp TYPE program. + + lv_cp = cl_oo_classname_service=>get_classpool_name( iv_class_name ). + + INSERT TEXTPOOL lv_cp + FROM it_text_pool + LANGUAGE iv_language + STATE 'I'. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). + ENDIF. + + zcl_abapgit_objects_activation=>add( iv_type = 'REPT' + iv_name = lv_cp ). + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~create_sotr. + DATA: lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, + lt_objects TYPE sotr_objects, + ls_paket TYPE sotr_pack, + lv_object LIKE LINE OF lt_objects. + + FIELD-SYMBOLS: LIKE LINE OF lt_sotr. + + LOOP AT it_sotr ASSIGNING . + CALL FUNCTION 'SOTR_OBJECT_GET_OBJECTS' + EXPORTING + object_vector = -header-objid_vec + IMPORTING + objects = lt_objects + EXCEPTIONS + object_not_found = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from SOTR_OBJECT_GET_OBJECTS' ). + ENDIF. + + READ TABLE lt_objects INDEX 1 INTO lv_object. + ASSERT sy-subrc = 0. + + ls_paket-paket = iv_package. + + CALL FUNCTION 'SOTR_CREATE_CONCEPT' + EXPORTING + paket = ls_paket + crea_lan = -header-crea_lan + alias_name = -header-alias_name + object = lv_object + entries = -entries + concept_default = -header-concept + EXCEPTIONS + package_missing = 1 + crea_lan_missing = 2 + object_missing = 3 + paket_does_not_exist = 4 + alias_already_exist = 5 + object_type_not_found = 6 + langu_missing = 7 + identical_context_not_allowed = 8 + text_too_long = 9 + error_in_update = 10 + no_master_langu = 11 + error_in_concept_id = 12 + alias_not_allowed = 13 + tadir_entry_creation_failed = 14 + internal_error = 15 + error_in_correction = 16 + user_cancelled = 17 + no_entry_found = 18 + OTHERS = 19. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from SOTR_CREATE_CONCEPT' ). + ENDIF. + ENDLOOP. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_includes. +* note: includes returned might not exist +* method cl_oo_classname_service=>GET_ALL_CLASS_INCLUDES does not exist in 702 + + DATA: lv_class_name TYPE seoclsname, + lt_methods TYPE seop_methods_w_include. + + FIELD-SYMBOLS: LIKE LINE OF lt_methods. + + lv_class_name = iv_object_name. + + APPEND cl_oo_classname_service=>get_ccdef_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_ccmac_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_ccimp_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_cl_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_ccau_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_pubsec_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_prosec_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_prisec_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_classpool_name( lv_class_name ) TO rt_includes. + APPEND cl_oo_classname_service=>get_ct_name( lv_class_name ) TO rt_includes. + +* skip the CS include, as it is sometimes generated on the fly instead of +* when the methods are changed +* APPEND cl_oo_classname_service=>get_cs_name( lv_class_name ) TO rt_includes. + + cl_oo_classname_service=>get_all_method_includes( + EXPORTING + clsname = lv_class_name + RECEIVING + result = lt_methods + EXCEPTIONS + class_not_existing = 1 ). + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |Class { lv_class_name } not existing| ). + ENDIF. + + LOOP AT lt_methods ASSIGNING . + APPEND -incname TO rt_includes. + ENDLOOP. + + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_class_properties. + CALL FUNCTION 'SEO_CLIF_GET' + EXPORTING + cifkey = is_class_key + version = seoc_version_active + IMPORTING + class = rs_class_properties + EXCEPTIONS + not_existing = 1 + deleted = 2 + model_only = 3 + OTHERS = 4. + IF sy-subrc = 1. + RETURN. " in case only inactive version exists + ELSEIF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from seo_clif_get' ). + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_text_pool. + DATA: + lv_cp TYPE program. + + lv_cp = cl_oo_classname_service=>get_classpool_name( iv_class_name ). + READ TEXTPOOL lv_cp INTO rt_text_pool LANGUAGE iv_language. "#EC CI_READ_REP + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_sotr. + DATA: lv_concept TYPE sotr_head-concept, + lt_seocompodf TYPE STANDARD TABLE OF seocompodf WITH DEFAULT KEY, + ls_header TYPE sotr_head, + lt_entries TYPE sotr_text_tt. + + FIELD-SYMBOLS: LIKE LINE OF rt_sotr, + LIKE LINE OF lt_seocompodf, + LIKE LINE OF lt_entries. + + + SELECT * FROM seocompodf + INTO TABLE lt_seocompodf + WHERE clsname = iv_object_name + AND version = '1' + AND exposure = '2' + AND attdecltyp = '2' + AND type = 'SOTR_CONC' + ORDER BY PRIMARY KEY. "#EC CI_SUBRC + + LOOP AT lt_seocompodf ASSIGNING . + + lv_concept = translate( val = -attvalue from = '''' to = '' ). + + CALL FUNCTION 'SOTR_GET_CONCEPT' + EXPORTING + concept = lv_concept + IMPORTING + header = ls_header + TABLES + entries = lt_entries + EXCEPTIONS + no_entry_found = 1 + OTHERS = 2. + IF sy-subrc <> 0. + CONTINUE. + ENDIF. + + CLEAR: ls_header-paket, + ls_header-crea_name, + ls_header-crea_tstut, + ls_header-chan_name, + ls_header-chan_tstut. + + LOOP AT lt_entries ASSIGNING . + CLEAR: -version, + -crea_name, + -crea_tstut, + -chan_name, + -chan_tstut. + ENDLOOP. + + APPEND INITIAL LINE TO rt_sotr ASSIGNING . + -header = ls_header. + -entries = lt_entries. + + ENDLOOP. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~delete. + CALL FUNCTION 'SEO_CLASS_DELETE_COMPLETE' + EXPORTING + clskey = is_deletion_key + EXCEPTIONS + not_existing = 1 + is_interface = 2 + db_error = 3 + no_access = 4 + other = 5 + OTHERS = 6. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Error from SEO_CLASS_DELETE_COMPLETE' ). + ENDIF. + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_class.clas.xml b/src/objects/zcl_abapgit_oo_class.clas.xml new file mode 100644 index 000000000..2045ca4d2 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_class.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OO_CLASS + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/zabapgit_object_clas_new.prog.abap b/src/objects/zcl_abapgit_oo_class_new.clas.abap similarity index 78% rename from src/zabapgit_object_clas_new.prog.abap rename to src/objects/zcl_abapgit_oo_class_new.clas.abap index 97ff9b171..a24f0bc64 100644 --- a/src/zabapgit_object_clas_new.prog.abap +++ b/src/objects/zcl_abapgit_oo_class_new.clas.abap @@ -1,17 +1,10 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_CLAS_NEW -*&---------------------------------------------------------------------* - -* todo: refactoring -* todo: testing, possible from master branch via experimental switch - -CLASS lcl_oo_class_new DEFINITION INHERITING FROM lcl_oo_class. +CLASS zcl_abapgit_oo_class_new DEFINITION PUBLIC INHERITING FROM zcl_abapgit_oo_class. PUBLIC SECTION. METHODS: - lif_oo_object_fnc~create REDEFINITION, - lif_oo_object_fnc~generate_locals REDEFINITION, - lif_oo_object_fnc~deserialize_source REDEFINITION. + zif_abapgit_oo_object_fnc~create REDEFINITION, + zif_abapgit_oo_object_fnc~generate_locals REDEFINITION, + zif_abapgit_oo_object_fnc~deserialize_source REDEFINITION. PRIVATE SECTION. CLASS-METHODS: @@ -70,7 +63,7 @@ CLASS lcl_oo_class_new DEFINITION INHERITING FROM lcl_oo_class. ENDCLASS. -CLASS lcl_oo_class_new IMPLEMENTATION. +CLASS zcl_abapgit_oo_class_new IMPLEMENTATION. METHOD determine_method_include. @@ -116,7 +109,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. ENDMETHOD. - METHOD lif_oo_object_fnc~create. + METHOD zif_abapgit_oo_object_fnc~create. * same as in super class, but with "version = seoc_version_active" CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE' @@ -172,7 +165,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. ENDMETHOD. - METHOD lif_oo_object_fnc~generate_locals. + METHOD zif_abapgit_oo_object_fnc~generate_locals. DATA: lv_program TYPE programm. @@ -286,7 +279,7 @@ CLASS lcl_oo_class_new IMPLEMENTATION. ENDMETHOD. - METHOD lif_oo_object_fnc~deserialize_source. + METHOD zif_abapgit_oo_object_fnc~deserialize_source. DATA: lv_updated TYPE abap_bool, lv_program TYPE program, @@ -411,87 +404,3 @@ CLASS lcl_oo_class_new IMPLEMENTATION. ENDMETHOD. ENDCLASS. - -CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_object_clas_old. - - PUBLIC SECTION. - METHODS: constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - iv_language TYPE spras. - - PROTECTED SECTION. - METHODS: - deserialize_abap REDEFINITION. - -ENDCLASS. - -CLASS lcl_object_clas IMPLEMENTATION. - - METHOD constructor. - super->constructor( is_item = is_item - iv_language = iv_language ). - - CREATE OBJECT mo_object_oriented_object_fct TYPE lcl_oo_class_new. - ENDMETHOD. - - METHOD deserialize_abap. -* same as in lcl_object_clas, but without "mo_object_oriented_object_fct->add_to_activation_list" - - DATA: ls_vseoclass TYPE vseoclass, - lt_source TYPE seop_source_string, - lt_local_definitions TYPE seop_source_string, - lt_local_implementations TYPE seop_source_string, - lt_local_macros TYPE seop_source_string, - lt_test_classes TYPE seop_source_string, - lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - ls_class_key TYPE seoclskey. - - - lt_source = mo_files->read_abap( ). - - lt_local_definitions = mo_files->read_abap( iv_extra = 'locals_def' - iv_error = abap_false ). "#EC NOTEXT - - lt_local_implementations = mo_files->read_abap( iv_extra = 'locals_imp' - iv_error = abap_false ). "#EC NOTEXT - - lt_local_macros = mo_files->read_abap( iv_extra = 'macros' - iv_error = abap_false ). "#EC NOTEXT - - lt_test_classes = mo_files->read_abap( iv_extra = 'testclasses' - iv_error = abap_false ). "#EC NOTEXT - - ls_class_key-clsname = ms_item-obj_name. - - io_xml->read( EXPORTING iv_name = 'VSEOCLASS' - CHANGING cg_data = ls_vseoclass ). - - mo_object_oriented_object_fct->create( - EXPORTING - iv_package = iv_package - CHANGING - is_properties = ls_vseoclass ). - - mo_object_oriented_object_fct->generate_locals( - is_key = ls_class_key - iv_force = seox_true - it_local_definitions = lt_local_definitions - it_local_implementations = lt_local_implementations - it_local_macros = lt_local_macros - it_local_test_classes = lt_test_classes ). - - mo_object_oriented_object_fct->deserialize_source( - is_key = ls_class_key - it_source = lt_source ). - - io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS' - CHANGING cg_data = lt_descriptions ). - - mo_object_oriented_object_fct->update_descriptions( - is_key = ls_class_key - it_descriptions = lt_descriptions ). - - ENDMETHOD. - -ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_class_new.clas.xml b/src/objects/zcl_abapgit_oo_class_new.clas.xml new file mode 100644 index 000000000..de931c047 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_class_new.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OO_CLASS_NEW + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_oo_factory.clas.abap b/src/objects/zcl_abapgit_oo_factory.clas.abap new file mode 100644 index 000000000..cca87de3a --- /dev/null +++ b/src/objects/zcl_abapgit_oo_factory.clas.abap @@ -0,0 +1,27 @@ +CLASS zcl_abapgit_oo_factory DEFINITION PUBLIC. + + PUBLIC SECTION. + CLASS-METHODS: + make + IMPORTING + iv_object_type TYPE tadir-object + RETURNING + VALUE(ro_object_oriented_object) TYPE REF TO zif_abapgit_oo_object_fnc. + PRIVATE SECTION. + CLASS-DATA: + go_object_oriented_object TYPE REF TO zif_abapgit_oo_object_fnc. +ENDCLASS. + +CLASS zcl_abapgit_oo_factory IMPLEMENTATION. + METHOD make. + IF go_object_oriented_object IS BOUND. + ro_object_oriented_object = go_object_oriented_object. + RETURN. + ENDIF. + IF iv_object_type = 'CLAS'. + CREATE OBJECT ro_object_oriented_object TYPE zcl_abapgit_oo_class. + ELSEIF iv_object_type = 'INTF'. + CREATE OBJECT ro_object_oriented_object TYPE zcl_abapgit_oo_interface. + ENDIF. + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_factory.clas.xml b/src/objects/zcl_abapgit_oo_factory.clas.xml new file mode 100644 index 000000000..4141d546f --- /dev/null +++ b/src/objects/zcl_abapgit_oo_factory.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OO_FACTORY + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_oo_interface.clas.abap b/src/objects/zcl_abapgit_oo_interface.clas.abap new file mode 100644 index 000000000..231e031f4 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_interface.clas.abap @@ -0,0 +1,72 @@ +CLASS zcl_abapgit_oo_interface DEFINITION PUBLIC + INHERITING FROM zcl_abapgit_oo_base. + PUBLIC SECTION. + METHODS: + zif_abapgit_oo_object_fnc~create REDEFINITION, + zif_abapgit_oo_object_fnc~get_includes REDEFINITION, + zif_abapgit_oo_object_fnc~get_interface_properties REDEFINITION, + zif_abapgit_oo_object_fnc~delete REDEFINITION. +ENDCLASS. + +CLASS zcl_abapgit_oo_interface IMPLEMENTATION. + METHOD zif_abapgit_oo_object_fnc~create. + CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE' + EXPORTING + devclass = iv_package + overwrite = iv_overwrite + CHANGING + interface = is_properties + EXCEPTIONS + existing = 1 + is_class = 2 + db_error = 3 + component_error = 4 + no_access = 5 + other = 6 + OTHERS = 7. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Error from SEO_INTERFACE_CREATE_COMPLETE' ). + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_includes. + DATA lv_interface_name TYPE seoclsname. + lv_interface_name = iv_object_name. + APPEND cl_oo_classname_service=>get_interfacepool_name( lv_interface_name ) TO rt_includes. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_interface_properties. + CALL FUNCTION 'SEO_CLIF_GET' + EXPORTING + cifkey = is_interface_key + version = seoc_version_active + IMPORTING + interface = rs_interface_properties + EXCEPTIONS + not_existing = 1 + deleted = 2 + model_only = 3 + OTHERS = 4. + IF sy-subrc = 1. + RETURN. " in case only inactive version exists + ELSEIF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from seo_clif_get' ). + ENDIF. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~delete. + CALL FUNCTION 'SEO_INTERFACE_DELETE_COMPLETE' + EXPORTING + intkey = is_deletion_key + EXCEPTIONS + not_existing = 1 + is_class = 2 + db_error = 3 + no_access = 4 + other = 5 + OTHERS = 6. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'Error from SEO_INTERFACE_DELETE_COMPLETE' ). + ENDIF. + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_interface.clas.xml b/src/objects/zcl_abapgit_oo_interface.clas.xml new file mode 100644 index 000000000..453a815ed --- /dev/null +++ b/src/objects/zcl_abapgit_oo_interface.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OO_INTERFACE + 1 + E + 2 + 1 + X + X + X + + + + diff --git a/src/objects/zcl_abapgit_oo_serializer.clas.abap b/src/objects/zcl_abapgit_oo_serializer.clas.abap new file mode 100644 index 000000000..c275b200a --- /dev/null +++ b/src/objects/zcl_abapgit_oo_serializer.clas.abap @@ -0,0 +1,290 @@ +CLASS zcl_abapgit_oo_serializer DEFINITION PUBLIC CREATE PUBLIC. + + PUBLIC SECTION. + + METHODS serialize_abap_clif_source + IMPORTING + !is_class_key TYPE seoclskey + RETURNING + VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception + cx_sy_dyn_call_error . + METHODS are_test_classes_skipped + RETURNING + VALUE(rv_return) TYPE abap_bool . + METHODS serialize_locals_imp + IMPORTING + !is_clskey TYPE seoclskey + RETURNING + VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception . + METHODS serialize_locals_def + IMPORTING + !is_clskey TYPE seoclskey + RETURNING + VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception . + METHODS serialize_testclasses + IMPORTING + !is_clskey TYPE seoclskey + RETURNING + VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception . + METHODS serialize_macros + IMPORTING + !is_clskey TYPE seoclskey + RETURNING + VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception . + METHODS calculate_skip_testclass + IMPORTING + !it_source TYPE zif_abapgit_definitions=>ty_string_tt + RETURNING + VALUE(rv_skip_testclass) TYPE abap_bool . + PRIVATE SECTION. + DATA mv_skip_testclass TYPE abap_bool. + METHODS serialize_abap_old + IMPORTING is_clskey TYPE seoclskey + RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING zcx_abapgit_exception. + + METHODS serialize_abap_new + IMPORTING is_clskey TYPE seoclskey + RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING zcx_abapgit_exception + cx_sy_dyn_call_error. + METHODS remove_signatures + CHANGING ct_source TYPE zif_abapgit_definitions=>ty_string_tt. + + METHODS read_include + IMPORTING is_clskey TYPE seoclskey + iv_type TYPE seop_include_ext_app + RETURNING VALUE(rt_source) TYPE seop_source_string. + + + METHODS reduce + CHANGING ct_source TYPE zif_abapgit_definitions=>ty_string_tt. +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_OO_SERIALIZER IMPLEMENTATION. + + + METHOD are_test_classes_skipped. + rv_return = mv_skip_testclass. + ENDMETHOD. + + + METHOD calculate_skip_testclass. + + DATA: lv_line1 LIKE LINE OF it_source, + lv_line2 LIKE LINE OF it_source. + +* when creating classes in Eclipse it automatically generates the +* testclass include, but it is not needed, so skip to avoid +* creating an extra file in the repository. +* Also remove it if the content is manually removed, but +* the class still thinks it contains tests + + rv_skip_testclass = abap_false. + IF lines( it_source ) = 2. + READ TABLE it_source INDEX 1 INTO lv_line1. + ASSERT sy-subrc = 0. + READ TABLE it_source INDEX 2 INTO lv_line2. + ASSERT sy-subrc = 0. + IF strlen( lv_line1 ) >= 3 AND lv_line1(3) = '*"*' AND lv_line2 IS INITIAL. + rv_skip_testclass = abap_true. + ENDIF. + ELSEIF lines( it_source ) = 1. + READ TABLE it_source INDEX 1 INTO lv_line1. + ASSERT sy-subrc = 0. + IF lv_line1 IS INITIAL + OR ( strlen( lv_line1 ) >= 3 AND lv_line1(3) = '*"*' ) + OR ( strlen( lv_line1 ) = 1 AND lv_line1(1) = '*' ). + rv_skip_testclass = abap_true. + ENDIF. + ELSEIF lines( it_source ) = 0. + rv_skip_testclass = abap_true. + ENDIF. + + ENDMETHOD. + + + METHOD read_include. + + DATA: ls_include TYPE progstruc. + + + ASSERT iv_type = seop_ext_class_locals_def + OR iv_type = seop_ext_class_locals_imp + OR iv_type = seop_ext_class_macros + OR iv_type = seop_ext_class_testclasses. + + ls_include-rootname = is_clskey-clsname. + TRANSLATE ls_include-rootname USING ' ='. + ls_include-categorya = iv_type(1). + ls_include-codea = iv_type+1(4). + +* it looks like there is an issue in function module SEO_CLASS_GET_INCLUDE_SOURCE +* on 750 kernels, where the READ REPORT without STATE addition does not +* return the active version, this method is a workaround for this issue + READ REPORT ls_include INTO rt_source STATE 'A'. + + ENDMETHOD. + + + METHOD reduce. + + DATA: lv_source LIKE LINE OF ct_source, + lv_found TYPE sap_bool. + + +* skip files that only contain the standard comments + lv_found = abap_false. + LOOP AT ct_source INTO lv_source. + IF strlen( lv_source ) >= 3 AND lv_source(3) <> '*"*'. + lv_found = abap_true. + ENDIF. + ENDLOOP. + IF lv_found = abap_false. + CLEAR ct_source[]. + ENDIF. + + ENDMETHOD. "reduce + + + METHOD remove_signatures. + +* signatures messes up in CL_OO_SOURCE when deserializing and serializing +* within same session + + DATA: lv_begin TYPE string, + lv_end TYPE string, + lv_remove TYPE sap_bool, + lv_source LIKE LINE OF ct_source. + + "@TODO: Put under test + CONCATENATE '* ------------------------------------' + '---------------------------------------------------+' + INTO lv_begin. + + CONCATENATE '* +------------------------------------------------' + '--------------------------------------' + INTO lv_end. + + lv_remove = abap_false. + LOOP AT ct_source INTO lv_source. + IF lv_source = lv_begin. + lv_remove = abap_true. + ENDIF. + IF lv_remove = abap_true. + DELETE ct_source INDEX sy-tabix. + ENDIF. + IF lv_source = lv_end. + lv_remove = abap_false. + ENDIF. + ENDLOOP. + + ENDMETHOD. "remove_signatures + + + METHOD serialize_abap_clif_source. + TRY. + rt_source = serialize_abap_new( is_class_key ). + CATCH cx_sy_dyn_call_error. + rt_source = serialize_abap_old( is_class_key ). + ENDTRY. + ENDMETHOD. + + + METHOD serialize_abap_new. + + DATA: lo_source TYPE REF TO object, + lo_instance TYPE REF TO object. + +* do not call the class/methods statically, as it will +* give syntax errors on old versions + CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE') + RECEIVING + result = lo_instance. + + CALL METHOD lo_instance->('CREATE_CLIF_SOURCE') + EXPORTING + clif_name = is_clskey-clsname + version = 'A' + RECEIVING + result = lo_source. + + CALL METHOD lo_source->('GET_SOURCE') + IMPORTING + source = rt_source. + + ENDMETHOD. + + + METHOD serialize_abap_old. +* for old ABAP AS versions + DATA: lo_source TYPE REF TO cl_oo_source. + + CREATE OBJECT lo_source + EXPORTING + clskey = is_clskey + EXCEPTIONS + class_not_existing = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( 'error from CL_OO_SOURCE' ). + ENDIF. + + lo_source->read( 'A' ). + rt_source = lo_source->get_old_source( ). + remove_signatures( CHANGING ct_source = rt_source ). + + ENDMETHOD. "serialize_abap + + + METHOD serialize_locals_def. + + rt_source = read_include( is_clskey = is_clskey + iv_type = seop_ext_class_locals_def ). + + reduce( CHANGING ct_source = rt_source ). + + ENDMETHOD. "serialize_locals_def + + + METHOD serialize_locals_imp. + + rt_source = read_include( is_clskey = is_clskey + iv_type = seop_ext_class_locals_imp ). + + reduce( CHANGING ct_source = rt_source ). + + ENDMETHOD. "serialize_local + + + METHOD serialize_macros. + + rt_source = read_include( is_clskey = is_clskey + iv_type = seop_ext_class_macros ). + + reduce( CHANGING ct_source = rt_source ). + + ENDMETHOD. "serialize_macro + + + METHOD serialize_testclasses. + + rt_source = read_include( is_clskey = is_clskey + iv_type = seop_ext_class_testclasses ). + + mv_skip_testclass = calculate_skip_testclass( rt_source ). + + ENDMETHOD. "serialize_test +ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_serializer.clas.testclasses.abap b/src/objects/zcl_abapgit_oo_serializer.clas.testclasses.abap new file mode 100644 index 000000000..5220cf775 --- /dev/null +++ b/src/objects/zcl_abapgit_oo_serializer.clas.testclasses.abap @@ -0,0 +1,174 @@ +CLASS ltcl_oo_serialize DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. + + PRIVATE SECTION. + METHODS: + setup, + empty_include FOR TESTING RAISING cx_static_check, + one_line_include FOR TESTING RAISING cx_static_check, + one_line_include_2 FOR TESTING RAISING cx_static_check, + one_line_include_3 FOR TESTING RAISING cx_static_check, + two_line_include FOR TESTING RAISING cx_static_check, + two_line_include_2 FOR TESTING RAISING cx_static_check, + two_line_include_3 FOR TESTING RAISING cx_static_check, + more_than_two_lines FOR TESTING RAISING cx_static_check, + + _given_source_is + IMPORTING + i_source TYPE LINE OF zif_abapgit_definitions=>ty_string_tt, + _given_empty_test_include, + _when_skip_is_calculated, + _then_should_be_skipped, + _then_should_not_be_skipped. + + DATA: mo_oo_serializer TYPE REF TO zcl_abapgit_oo_serializer, + mt_source TYPE zif_abapgit_definitions=>ty_string_tt, + mv_skip_testclass TYPE abap_bool. + +ENDCLASS. + + +CLASS ltcl_oo_serialize IMPLEMENTATION. + + METHOD setup. + + CREATE OBJECT mo_oo_serializer. + + ENDMETHOD. + + METHOD empty_include. + + _given_empty_test_include( ). + + _when_skip_is_calculated( ). + + _then_should_be_skipped( ). + + ENDMETHOD. + + METHOD one_line_include. + + _given_source_is( `*"* use this source file for your ABAP unit test classes` ). + + _when_skip_is_calculated( ). + + _then_should_be_skipped( ). + + ENDMETHOD. + + METHOD one_line_include_2. + + _given_source_is( `*` ). + + _when_skip_is_calculated( ). + + _then_should_be_skipped( ). + + ENDMETHOD. + + METHOD one_line_include_3. + + _given_source_is( `write: 'This is ABAP'.` ). + + _when_skip_is_calculated( ). + + _then_should_not_be_skipped( ). + + ENDMETHOD. + + METHOD two_line_include. + + _given_source_is( `*"* use this source file for your ABAP unit test classes` ). + _given_source_is( `` ). + + _when_skip_is_calculated( ). + + _then_should_be_skipped( ). + + ENDMETHOD. + + METHOD two_line_include_2. + + _given_source_is( `*"* use this source file for your ABAP unit test classes` ). + _given_source_is( `write: 'This is ABAP'.` ). + + _when_skip_is_calculated( ). + + _then_should_not_be_skipped( ). + + ENDMETHOD. + + METHOD two_line_include_3. + + _given_source_is( ` ` ). + _given_source_is( `*"* use this source file for your ABAP unit test classes` ). + + _when_skip_is_calculated( ). + + _then_should_not_be_skipped( ). + + ENDMETHOD. + + METHOD more_than_two_lines. + + _given_source_is( `*"* use this source file for your ABAP unit test classes` ). + _given_source_is( `CLASS ltcl_test DEFINITION FINAL FOR TESTING` ). + _given_source_is( ` DURATION SHORT` ). + _given_source_is( ` RISK LEVEL HARMLESS.` ). + _given_source_is( ` ` ). + _given_source_is( ` PRIVATE SECTION.` ). + _given_source_is( ` METHODS:` ). + _given_source_is( ` first_test FOR TESTING RAISING cx_static_check.` ). + _given_source_is( `ENDCLASS.` ). + _given_source_is( ` ` ). + _given_source_is( `CLASS ltcl_test IMPLEMENTATION.` ). + _given_source_is( ` ` ). + _given_source_is( ` METHOD first_test.` ). + _given_source_is( ` cl_abap_unit_assert=>fail( 'This is a real test' ).` ). + _given_source_is( ` ENDMETHOD.` ). + _given_source_is( ` ` ). + _given_source_is( `ENDCLASS.` ). + + _when_skip_is_calculated( ). + + _then_should_not_be_skipped( ). + + ENDMETHOD. + + METHOD _given_source_is. + + INSERT i_source INTO TABLE mt_source. + + ENDMETHOD. + + METHOD _given_empty_test_include. + + ENDMETHOD. + + METHOD _when_skip_is_calculated. + + mv_skip_testclass = mo_oo_serializer->calculate_skip_testclass( mt_source ). + + ENDMETHOD. + + METHOD _then_should_be_skipped. + + cl_abap_unit_assert=>assert_equals( + act = mv_skip_testclass + exp = abap_true + msg = |Testclass should be skipped| ). + + ENDMETHOD. + + + METHOD _then_should_not_be_skipped. + + cl_abap_unit_assert=>assert_equals( + act = mv_skip_testclass + exp = abap_false + msg = |Testclass should not be skipped| ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/objects/zcl_abapgit_oo_serializer.clas.xml b/src/objects/zcl_abapgit_oo_serializer.clas.xml new file mode 100644 index 000000000..b1f81abcc --- /dev/null +++ b/src/objects/zcl_abapgit_oo_serializer.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_OO_SERIALIZER + 1 + E + 2 + 1 + X + X + X + X + + + + diff --git a/src/objects/zif_abapgit_object_enho.intf.abap b/src/objects/zif_abapgit_object_enho.intf.abap new file mode 100644 index 000000000..c43adb6b4 --- /dev/null +++ b/src/objects/zif_abapgit_object_enho.intf.abap @@ -0,0 +1,13 @@ +INTERFACE zif_abapgit_object_enho PUBLIC. + + METHODS: + deserialize + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input + iv_package TYPE devclass + RAISING zcx_abapgit_exception, + serialize + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output + ii_enh_tool TYPE REF TO if_enh_tool + RAISING zcx_abapgit_exception. + +ENDINTERFACE. diff --git a/src/objects/zif_abapgit_object_enho.intf.xml b/src/objects/zif_abapgit_object_enho.intf.xml new file mode 100644 index 000000000..197879a76 --- /dev/null +++ b/src/objects/zif_abapgit_object_enho.intf.xml @@ -0,0 +1,16 @@ + + + + + + ZIF_ABAPGIT_OBJECT_ENHO + 1 + E + ENHO + 2 + 1 + X + + + + diff --git a/src/objects/zif_abapgit_object_enhs.intf.abap b/src/objects/zif_abapgit_object_enhs.intf.abap new file mode 100644 index 000000000..8b22db069 --- /dev/null +++ b/src/objects/zif_abapgit_object_enhs.intf.abap @@ -0,0 +1,15 @@ +INTERFACE zif_abapgit_object_enhs PUBLIC. + + METHODS: + deserialize + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input + iv_package TYPE devclass + ii_enh_spot_tool TYPE REF TO if_enh_spot_tool + RAISING zcx_abapgit_exception, + + serialize + IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output + ii_enh_spot_tool TYPE REF TO if_enh_spot_tool + RAISING zcx_abapgit_exception. + +ENDINTERFACE. diff --git a/src/objects/zif_abapgit_object_enhs.intf.xml b/src/objects/zif_abapgit_object_enhs.intf.xml new file mode 100644 index 000000000..9ca0c0a0b --- /dev/null +++ b/src/objects/zif_abapgit_object_enhs.intf.xml @@ -0,0 +1,16 @@ + + + + + + ZIF_ABAPGIT_OBJECT_ENHS + 1 + E + ENHS + 2 + 1 + X + + + + diff --git a/src/objects/zif_abapgit_oo_object_fnc.intf.abap b/src/objects/zif_abapgit_oo_object_fnc.intf.abap new file mode 100644 index 000000000..14e639222 --- /dev/null +++ b/src/objects/zif_abapgit_oo_object_fnc.intf.abap @@ -0,0 +1,136 @@ +INTERFACE zif_abapgit_oo_object_fnc PUBLIC. + + TYPES: BEGIN OF ty_includes, + programm TYPE programm, + END OF ty_includes, + ty_includes_tt TYPE STANDARD TABLE OF ty_includes WITH DEFAULT KEY. + + METHODS: + create + IMPORTING + iv_package TYPE devclass + iv_overwrite TYPE seox_boolean DEFAULT seox_true + CHANGING + is_properties TYPE any + RAISING + zcx_abapgit_exception, + generate_locals + IMPORTING + is_key TYPE seoclskey + iv_force TYPE seox_boolean DEFAULT seox_true + it_local_definitions TYPE seop_source_string OPTIONAL + it_local_implementations TYPE seop_source_string OPTIONAL + it_local_macros TYPE seop_source_string OPTIONAL + it_local_test_classes TYPE seop_source_string OPTIONAL + RAISING + zcx_abapgit_exception, + deserialize_source + IMPORTING + is_key TYPE seoclskey + it_source TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception + cx_sy_dyn_call_error, + insert_text_pool + IMPORTING + iv_class_name TYPE seoclsname + it_text_pool TYPE textpool_table + iv_language TYPE spras + RAISING + zcx_abapgit_exception, + update_descriptions + IMPORTING + is_key TYPE seoclskey + it_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, + add_to_activation_list + IMPORTING + is_item TYPE zif_abapgit_definitions=>ty_item + RAISING + zcx_abapgit_exception, + create_sotr + IMPORTING + iv_package TYPE devclass + it_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt + RAISING + zcx_abapgit_exception, + create_documentation + IMPORTING + it_lines TYPE tlinetab + iv_object_name TYPE dokhl-object + iv_language TYPE spras + RAISING + zcx_abapgit_exception, + get_includes + IMPORTING + iv_object_name TYPE sobj_name + RETURNING + VALUE(rt_includes) TYPE ty_includes_tt + RAISING + zcx_abapgit_exception, + exists + IMPORTING + iv_object_name TYPE seoclskey + RETURNING + VALUE(rv_exists) TYPE abap_bool, + serialize_abap + IMPORTING + is_class_key TYPE seoclskey + iv_type TYPE seop_include_ext_app OPTIONAL + RETURNING + VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt + RAISING + zcx_abapgit_exception + cx_sy_dyn_call_error, + get_skip_test_classes + RETURNING + VALUE(rv_skip) TYPE abap_bool, + get_class_properties + IMPORTING + is_class_key TYPE seoclskey + RETURNING + VALUE(rs_class_properties) TYPE vseoclass + RAISING + zcx_abapgit_exception, + get_interface_properties + IMPORTING + is_interface_key TYPE seoclskey + RETURNING + VALUE(rs_interface_properties) TYPE vseointerf + RAISING + zcx_abapgit_exception, + read_text_pool + IMPORTING + iv_class_name TYPE seoclsname + iv_language TYPE spras + RETURNING + VALUE(rt_text_pool) TYPE textpool_table, + read_documentation + IMPORTING + iv_class_name TYPE seoclsname + iv_language TYPE spras + RETURNING + VALUE(rt_lines) TYPE tlinetab, + read_sotr + IMPORTING + iv_object_name TYPE sobj_name + RETURNING + VALUE(rt_sotr) TYPE zif_abapgit_definitions=>ty_sotr_tt + RAISING + zcx_abapgit_exception, + read_descriptions + IMPORTING + iv_obejct_name TYPE seoclsname + RETURNING + VALUE(rt_descriptions) TYPE zif_abapgit_definitions=>ty_seocompotx_tt, + delete + IMPORTING + is_deletion_key TYPE seoclskey + RAISING + zcx_abapgit_exception, + read_superclass + IMPORTING + iv_classname TYPE seoclsname + RETURNING + VALUE(rv_superclass) TYPE seoclsname. + +ENDINTERFACE. diff --git a/src/objects/zif_abapgit_oo_object_fnc.intf.xml b/src/objects/zif_abapgit_oo_object_fnc.intf.xml new file mode 100644 index 000000000..190689514 --- /dev/null +++ b/src/objects/zif_abapgit_oo_object_fnc.intf.xml @@ -0,0 +1,16 @@ + + + + + + ZIF_ABAPGIT_OO_OBJECT_FNC + 1 + E + OO object + 2 + 1 + X + + + + diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 492b3f044..ae7d57c08 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -50,8 +50,6 @@ INCLUDE zabapgit_popups. INCLUDE zabapgit_zip. INCLUDE zabapgit_objects_impl. -INCLUDE zabapgit_object_serializing. " All serializing classes here - INCLUDE zabapgit_skip_objects. INCLUDE zabapgit_repo_impl. diff --git a/src/zabapgit_object_acid.prog.xml b/src/zabapgit_object_acid.prog.xml deleted file mode 100644 index 5d51af2d2..000000000 --- a/src/zabapgit_object_acid.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_ACID - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_ACID - 28 - - - - - diff --git a/src/zabapgit_object_auth.prog.xml b/src/zabapgit_object_auth.prog.xml deleted file mode 100644 index e25a487be..000000000 --- a/src/zabapgit_object_auth.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_AUTH - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_AUTH - 28 - - - - - diff --git a/src/zabapgit_object_clas.prog.xml b/src/zabapgit_object_clas.prog.xml deleted file mode 100644 index 7299c946b..000000000 --- a/src/zabapgit_object_clas.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_CLAS - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_CLAS - 28 - - - - - diff --git a/src/zabapgit_object_clas_new.prog.xml b/src/zabapgit_object_clas_new.prog.xml deleted file mode 100644 index 7216bb678..000000000 --- a/src/zabapgit_object_clas_new.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_CLAS_NEW - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_CLAS_NEW - 32 - - - - - diff --git a/src/zabapgit_object_cmpt.prog.xml b/src/zabapgit_object_cmpt.prog.xml deleted file mode 100644 index fc9840ac2..000000000 --- a/src/zabapgit_object_cmpt.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_CMPT - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_CMPT - 28 - - - - - diff --git a/src/zabapgit_object_cus0.prog.xml b/src/zabapgit_object_cus0.prog.xml deleted file mode 100644 index 04b552487..000000000 --- a/src/zabapgit_object_cus0.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_CUS0 - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_CUS0 - 20 - - - - - diff --git a/src/zabapgit_object_cus1.prog.xml b/src/zabapgit_object_cus1.prog.xml deleted file mode 100644 index 98c9d25ae..000000000 --- a/src/zabapgit_object_cus1.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_CUS1 - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_CUS1 - 20 - - - - - diff --git a/src/zabapgit_object_cus2.prog.xml b/src/zabapgit_object_cus2.prog.xml deleted file mode 100644 index 271e69250..000000000 --- a/src/zabapgit_object_cus2.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_CUS2 - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_CUS2 - 20 - - - - - diff --git a/src/zabapgit_object_dcls.prog.xml b/src/zabapgit_object_dcls.prog.xml deleted file mode 100644 index b362e25f5..000000000 --- a/src/zabapgit_object_dcls.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DCLS - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DCLS - 28 - - - - - diff --git a/src/zabapgit_object_ddls.prog.xml b/src/zabapgit_object_ddls.prog.xml deleted file mode 100644 index b9c4d376d..000000000 --- a/src/zabapgit_object_ddls.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DDLS - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_VIEW - 28 - - - - - diff --git a/src/zabapgit_object_ddlx.prog.xml b/src/zabapgit_object_ddlx.prog.xml deleted file mode 100644 index dda4bcec0..000000000 --- a/src/zabapgit_object_ddlx.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DDLX - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_DDLX - 20 - - - - - diff --git a/src/zabapgit_object_devc.prog.xml b/src/zabapgit_object_devc.prog.xml deleted file mode 100644 index 50dfee34a..000000000 --- a/src/zabapgit_object_devc.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DEVC - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_DEVC - 20 - - - - - diff --git a/src/zabapgit_object_dial.prog.xml b/src/zabapgit_object_dial.prog.xml deleted file mode 100644 index eb942b95c..000000000 --- a/src/zabapgit_object_dial.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DIAL - A - X - S - D$ - I - X - D$S - X - - - - R - zabapgit_object_dial - 20 - - - - - diff --git a/src/zabapgit_object_doct.prog.xml b/src/zabapgit_object_doct.prog.xml deleted file mode 100644 index 1a330c342..000000000 --- a/src/zabapgit_object_doct.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DOCT - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DOCT - 28 - - - - - diff --git a/src/zabapgit_object_docv.prog.xml b/src/zabapgit_object_docv.prog.xml deleted file mode 100644 index f35b5a0a3..000000000 --- a/src/zabapgit_object_docv.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DOCV - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DOCT - 28 - - - - - diff --git a/src/zabapgit_object_doma.prog.xml b/src/zabapgit_object_doma.prog.xml deleted file mode 100644 index c9433ef8d..000000000 --- a/src/zabapgit_object_doma.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DOMA - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DOMA - 28 - - - - - diff --git a/src/zabapgit_object_dsys.prog.xml b/src/zabapgit_object_dsys.prog.xml deleted file mode 100644 index a1deb6922..000000000 --- a/src/zabapgit_object_dsys.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DSYS - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_DSYS - 20 - - - - - diff --git a/src/zabapgit_object_dtel.prog.xml b/src/zabapgit_object_dtel.prog.xml deleted file mode 100644 index 7993eff31..000000000 --- a/src/zabapgit_object_dtel.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_DTEL - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DTEL - 28 - - - - - diff --git a/src/zabapgit_object_enho.prog.abap b/src/zabapgit_object_enho.prog.abap deleted file mode 100644 index 73ca066e6..000000000 --- a/src/zabapgit_object_enho.prog.abap +++ /dev/null @@ -1,1314 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_ENHO -*&---------------------------------------------------------------------* - -* For complete list of tool_type - see ENHTOOLS table - -INTERFACE lif_object_enho. - - METHODS: - deserialize - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input - iv_package TYPE devclass - RAISING zcx_abapgit_exception, - serialize - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output - ii_enh_tool TYPE REF TO if_enh_tool - RAISING zcx_abapgit_exception. - -ENDINTERFACE. "lif_object_enho - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_wdyconf DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_wdyc DEFINITION. - - PUBLIC SECTION. - METHODS: constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. - -ENDCLASS. "lcl_object_enho_wdyconf DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_wdyconf IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_wdyc IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - ENDMETHOD. "constructor - - METHOD lif_object_enho~deserialize. - - DATA: lv_enhname TYPE enhname, - lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, - li_tool TYPE REF TO if_enh_tool, - ls_obj TYPE wdy_config_key, - lv_package TYPE devclass. - - - io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' - CHANGING cg_data = ls_obj ). - - lv_enhname = ms_item-obj_name. - lv_package = iv_package. - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = lv_enhname - enhtype = '' - enhtooltype = cl_wdr_cfg_enhancement=>tooltype - IMPORTING - enhancement = li_tool - CHANGING - devclass = lv_package ). - lo_wdyconf ?= li_tool. - -* todo -* io_xml->read_xml() -* CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( ) -* lo_wdyconf->set_enhancement_data( ) - ASSERT 0 = 1. - - lo_wdyconf->if_enh_object~save( ). - lo_wdyconf->if_enh_object~unlock( ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'error deserializing ENHO wdyconf' ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - - METHOD lif_object_enho~serialize. - - DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, - lt_data TYPE wdy_cfg_expl_data_tab, - ls_outline TYPE wdy_cfg_outline_data, - ls_obj TYPE wdy_config_key, - li_document TYPE REF TO if_ixml_document, - li_element TYPE REF TO if_ixml_element. - - - lo_wdyconf ?= ii_enh_tool. - - ls_obj = lo_wdyconf->get_original_object( ). - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). - io_xml->add( iv_name = 'ORIGINAL_OBJECT' - ig_data = ls_obj ). - -* only works on new ABAP versions, parameters differ between versions - CALL METHOD lo_wdyconf->('GET_ENHANCEMENT_DATA') - EXPORTING - p_scope = 1 - IMPORTING - p_enh_data = lt_data. - - CALL METHOD cl_wdr_cfg_persistence_utils=>('COMP_TABLES_TO_XML') - EXPORTING - outline_data = ls_outline - expl_data_tab = lt_data - IMPORTING - element = li_element - CHANGING - document = li_document. - - io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA' - ii_xml = li_element ). - - ENDMETHOD. "lif_object_enho~serialize - -ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_wdyconf DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_wdyn DEFINITION. - - PUBLIC SECTION. - METHODS: constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. - -ENDCLASS. "lcl_object_enho_wdyconf DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_wdyconf IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_wdyn IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - ENDMETHOD. "constructor - - METHOD lif_object_enho~deserialize. - - DATA: ls_enh_data TYPE enhwdyn, - li_tool TYPE REF TO if_enh_tool, - lo_wdyn TYPE REF TO cl_enh_tool_wdy, - tool_type TYPE enhtooltype, - package TYPE devclass. - - FIELD-SYMBOLS: TYPE enhwdyc, - TYPE enhwdyv. - - io_xml->read( - EXPORTING - iv_name = 'TOOL' - CHANGING - cg_data = tool_type ). - - io_xml->read( - EXPORTING - iv_name = 'COMPONENT_DATA' - CHANGING - cg_data = ls_enh_data ). - - package = iv_package. - - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = |{ ms_item-obj_name }| - enhtype = '' - enhtooltype = tool_type - IMPORTING - enhancement = li_tool - CHANGING - devclass = package ). - - lo_wdyn ?= li_tool. - - lo_wdyn->initialize( ls_enh_data-component_name ). - - lo_wdyn->set_component_data( ls_enh_data-component_data ). - - LOOP AT ls_enh_data-controller_data ASSIGNING . - - lo_wdyn->set_controller_data( p_controller_name = -controller_name - p_enh_data = ). - - ENDLOOP. - - LOOP AT ls_enh_data-view_data ASSIGNING . - - lo_wdyn->set_view_data( p_view_name = -view_name - p_enh_data = ). - - ENDLOOP. - - lo_wdyn->if_enh_object~save( ). - lo_wdyn->if_enh_object~unlock( ). - - CATCH cx_root. - zcx_abapgit_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - - METHOD lif_object_enho~serialize. - - DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy, - component_name TYPE wdy_component_name, - ls_enh_data TYPE enhwdyn. - - lo_wdyn ?= ii_enh_tool. - - component_name = lo_wdyn->get_component_name( ). - - TRY. - lo_wdyn->get_all_data_for_comp( - EXPORTING - p_component_name = component_name - IMPORTING - p_enh_data = ls_enh_data ). - - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). - - io_xml->add( iv_name = 'COMPONENT_DATA' - ig_data = ls_enh_data ). - - CATCH cx_enh_not_found. - zcx_abapgit_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~serialize - -ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_clif DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_clif DEFINITION. - - PUBLIC SECTION. - CLASS-METHODS: - deserialize - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input - io_clif TYPE REF TO cl_enh_tool_clif - RAISING zcx_abapgit_exception - cx_enh_root, - serialize - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output - io_files TYPE REF TO zcl_abapgit_objects_files - io_clif TYPE REF TO cl_enh_tool_clif - RAISING zcx_abapgit_exception. - - PRIVATE SECTION. - CLASS-METHODS: serialize_includes - IMPORTING io_files TYPE REF TO zcl_abapgit_objects_files - io_clif TYPE REF TO cl_enh_tool_clif - RAISING zcx_abapgit_exception. - -ENDCLASS. "lcl_object_enho_clif DEFINITION -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_clif IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_clif IMPLEMENTATION. - - METHOD serialize_includes. - - DATA: lt_includes TYPE enhnewmeth_tabincl_plus_enha, - lt_source TYPE TABLE OF abaptxt255, - lv_include TYPE programm. - - FIELD-SYMBOLS: LIKE LINE OF lt_includes. - - - lt_includes = io_clif->get_enh_method_includes( ). - LOOP AT lt_includes ASSIGNING . - lv_include = io_clif->if_enh_tool~get_name( ). - TRANSLATE lv_include USING ' ='. - lv_include+30 = 'EM'. - lv_include+32(8) = -includenr. - - CALL FUNCTION 'RPY_PROGRAM_READ' - EXPORTING - program_name = lv_include - with_lowercase = abap_true - TABLES - source_extended = lt_source - EXCEPTIONS - cancelled = 1 - not_found = 2 - permission_error = 3 - OTHERS = 4. - IF sy-subrc = 0. - io_files->add_abap( iv_extra = |EM{ -includenr }| - it_abap = lt_source ). - ENDIF. - ENDLOOP. - - ENDMETHOD. "serialize_includes - - METHOD serialize. - - DATA: lt_tab_attributes TYPE enhclasstabattrib, - lt_tab_methods TYPE enhnewmeth_tab. - - FIELD-SYMBOLS: LIKE LINE OF lt_tab_attributes, - LIKE LINE OF lt_tab_methods. - - - io_clif->get_enhattributes( - IMPORTING - tab_attributes = lt_tab_attributes ). - - io_clif->get_enh_new_methodes( - IMPORTING - tab_methodes = lt_tab_methods ). - - serialize_includes( io_clif = io_clif - io_files = io_files ). - - LOOP AT lt_tab_attributes ASSIGNING . - CLEAR: -author, - -createdon, - -changedby, - -changedon. - ENDLOOP. - - LOOP AT lt_tab_methods ASSIGNING . - CLEAR: -meth_header-author, - -meth_header-createdon, - -meth_header-changedby, - -meth_header-changedon, - -meth_header-descript_id. - ENDLOOP. - - io_xml->add( iv_name = 'TAB_ATTRIBUTES' - ig_data = lt_tab_attributes ). - io_xml->add( iv_name = 'TAB_METHODS' - ig_data = lt_tab_methods ). - - ENDMETHOD. "serialize - - METHOD deserialize. - - DATA: lt_tab_attributes TYPE enhclasstabattrib, - lt_tab_methods TYPE enhnewmeth_tab, - ls_header TYPE vseomethod, - ls_param TYPE vseomepara, - ls_exc TYPE vseoexcep. - - FIELD-SYMBOLS: LIKE LINE OF lt_tab_methods, - LIKE LINE OF -meth_param, - LIKE LINE OF -meth_exc. - - - io_xml->read( EXPORTING iv_name = 'TAB_ATTRIBUTES' - CHANGING cg_data = lt_tab_attributes ). - io_xml->read( EXPORTING iv_name = 'TAB_METHODS' - CHANGING cg_data = lt_tab_methods ). - - io_clif->set_enhattributes( lt_tab_attributes ). - -* todo: deserialize includes - -* SAP standard SET_ENH_NEW_METHOS does not work - - LOOP AT lt_tab_methods ASSIGNING . - - MOVE-CORRESPONDING -meth_header TO ls_header. - - io_clif->add_change_new_enh_method( - methkey = -methkey - method_header = ls_header ). - -* parameters - LOOP AT -meth_param ASSIGNING . - MOVE-CORRESPONDING TO ls_param. - io_clif->add_change_enh_methparam( - methname = -methkey-cmpname - param_line = ls_param ). - ENDLOOP. - -* exceptions - LOOP AT -meth_exc ASSIGNING . - MOVE-CORRESPONDING TO ls_exc. - io_clif->add_change_enh_methexc( - methname = -methkey-cmpname - except_line = ls_exc ). - ENDLOOP. - - ENDLOOP. - - ENDMETHOD. "deserialize - -ENDCLASS. "lcl_object_enho_clif IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_badi DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_badi DEFINITION. - - PUBLIC SECTION. - METHODS: constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. - -ENDCLASS. "lcl_object_enho_badi DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_badi IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_badi IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - ENDMETHOD. "constructor - - METHOD lif_object_enho~serialize. - - DATA: lo_badi_impl TYPE REF TO cl_enh_tool_badi_impl, - lv_spot_name TYPE enhspotname, - lv_shorttext TYPE string, - lt_impl TYPE enh_badi_impl_data_it. - - FIELD-SYMBOLS: LIKE LINE OF lt_impl, - LIKE LINE OF -filter_values, - LIKE LINE OF -filters. - - - lo_badi_impl ?= ii_enh_tool. - - lv_shorttext = lo_badi_impl->if_enh_object_docu~get_shorttext( ). - lv_spot_name = lo_badi_impl->get_spot_name( ). - lt_impl = lo_badi_impl->get_implementations( ). - - LOOP AT lt_impl ASSIGNING . -* make sure the XML serialization does not dump, field type = N - LOOP AT -filter_values ASSIGNING . - IF -filter_numeric_value1 CA space. - CLEAR -filter_numeric_value1. - ENDIF. - ENDLOOP. - LOOP AT -filters ASSIGNING . - IF -filter_numeric_value1 CA space. - CLEAR -filter_numeric_value1. - ENDIF. - ENDLOOP. - ENDLOOP. - - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). - io_xml->add( ig_data = lv_shorttext - iv_name = 'SHORTTEXT' ). - io_xml->add( iv_name = 'SPOT_NAME' - ig_data = lv_spot_name ). - io_xml->add( iv_name = 'IMPL' - ig_data = lt_impl ). - - ENDMETHOD. "lif_object_enho~serialize - - METHOD lif_object_enho~deserialize. - - DATA: lv_spot_name TYPE enhspotname, - lv_shorttext TYPE string, - lv_enhname TYPE enhname, - lo_badi TYPE REF TO cl_enh_tool_badi_impl, - li_tool TYPE REF TO if_enh_tool, - lv_package TYPE devclass, - lt_impl TYPE enh_badi_impl_data_it. - - FIELD-SYMBOLS: LIKE LINE OF lt_impl. - - - io_xml->read( EXPORTING iv_name = 'SHORTTEXT' - CHANGING cg_data = lv_shorttext ). - io_xml->read( EXPORTING iv_name = 'SPOT_NAME' - CHANGING cg_data = lv_spot_name ). - io_xml->read( EXPORTING iv_name = 'IMPL' - CHANGING cg_data = lt_impl ). - - lv_enhname = ms_item-obj_name. - lv_package = iv_package. - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = lv_enhname - enhtype = cl_abstract_enh_tool_redef=>credefinition - enhtooltype = cl_enh_tool_badi_impl=>tooltype - IMPORTING - enhancement = li_tool - CHANGING - devclass = lv_package ). - lo_badi ?= li_tool. - - lo_badi->set_spot_name( lv_spot_name ). - lo_badi->if_enh_object_docu~set_shorttext( lv_shorttext ). - LOOP AT lt_impl ASSIGNING . - lo_badi->add_implementation( ). - ENDLOOP. - lo_badi->if_enh_object~save( ). - lo_badi->if_enh_object~unlock( ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'error deserializing ENHO badi' ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - -ENDCLASS. "lcl_object_enho_badi IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_hook DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_hook DEFINITION. - PUBLIC SECTION. - METHODS: constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - TYPES: BEGIN OF ty_spaces, - full_name TYPE string. - TYPES: spaces TYPE STANDARD TABLE OF i WITH DEFAULT KEY, - END OF ty_spaces. - - TYPES: ty_spaces_tt TYPE STANDARD TABLE OF ty_spaces WITH DEFAULT KEY. - - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. - DATA: mo_files TYPE REF TO zcl_abapgit_objects_files. - - METHODS hook_impl_deserialize - IMPORTING it_spaces TYPE ty_spaces_tt - CHANGING ct_impl TYPE enh_hook_impl_it - RAISING zcx_abapgit_exception. - - METHODS hook_impl_serialize - EXPORTING et_spaces TYPE ty_spaces_tt - CHANGING ct_impl TYPE enh_hook_impl_it - RAISING zcx_abapgit_exception. - -ENDCLASS. "lcl_object_enho_hook DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_hook IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_hook IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - mo_files = io_files. - ENDMETHOD. "constructor - - METHOD lif_object_enho~serialize. - - DATA: lv_shorttext TYPE string, - lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl, - ls_original_object TYPE enh_hook_admin, - lt_spaces TYPE ty_spaces_tt, - lt_enhancements TYPE enh_hook_impl_it. - - - lo_hook_impl ?= ii_enh_tool. - - lv_shorttext = lo_hook_impl->if_enh_object_docu~get_shorttext( ). - lo_hook_impl->get_original_object( - IMPORTING - pgmid = ls_original_object-pgmid - obj_name = ls_original_object-org_obj_name - obj_type = ls_original_object-org_obj_type - main_type = ls_original_object-org_main_type - main_name = ls_original_object-org_main_name - program = ls_original_object-programname ). - ls_original_object-include_bound = lo_hook_impl->get_include_bound( ). - lt_enhancements = lo_hook_impl->get_hook_impls( ). - - hook_impl_serialize( - IMPORTING et_spaces = lt_spaces - CHANGING ct_impl = lt_enhancements ). - - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). - io_xml->add( ig_data = lv_shorttext - iv_name = 'SHORTTEXT' ). - io_xml->add( ig_data = ls_original_object - iv_name = 'ORIGINAL_OBJECT' ). - io_xml->add( iv_name = 'ENHANCEMENTS' - ig_data = lt_enhancements ). - io_xml->add( iv_name = 'SPACES' - ig_data = lt_spaces ). - - ENDMETHOD. "lif_object_enho~serialize - - METHOD hook_impl_serialize. -* handle normalization of XML values -* i.e. remove leading spaces - - FIELD-SYMBOLS: LIKE LINE OF ct_impl, - LIKE LINE OF et_spaces, - TYPE i, - TYPE string. - - - LOOP AT ct_impl ASSIGNING . - APPEND INITIAL LINE TO et_spaces ASSIGNING . - -full_name = -full_name. - LOOP AT -source ASSIGNING . - APPEND INITIAL LINE TO -spaces ASSIGNING . - WHILE strlen( ) >= 1 AND (1) = ` `. - = +1. - = + 1. - ENDWHILE. - ENDLOOP. - ENDLOOP. - ENDMETHOD. "hook_impl_serialize - - METHOD hook_impl_deserialize. - - FIELD-SYMBOLS: LIKE LINE OF ct_impl, - TYPE string, - TYPE i, - LIKE LINE OF it_spaces. - - - LOOP AT ct_impl ASSIGNING . - READ TABLE it_spaces ASSIGNING WITH KEY full_name = -full_name. - IF sy-subrc = 0. - LOOP AT -source ASSIGNING . - READ TABLE -spaces ASSIGNING INDEX sy-tabix. - IF sy-subrc = 0 AND > 0. - DO TIMES. - CONCATENATE space INTO RESPECTING BLANKS. - ENDDO. - ENDIF. - ENDLOOP. - ENDIF. - ENDLOOP. - - ENDMETHOD. "hook_impl_deserialize - - METHOD lif_object_enho~deserialize. - - DATA: lv_shorttext TYPE string, - lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl, - li_tool TYPE REF TO if_enh_tool, - lv_enhname TYPE enhname, - lv_package TYPE devclass, - ls_original_object TYPE enh_hook_admin, - lt_spaces TYPE ty_spaces_tt, - lt_enhancements TYPE enh_hook_impl_it. - - FIELD-SYMBOLS: LIKE LINE OF lt_enhancements. - - - io_xml->read( EXPORTING iv_name = 'SHORTTEXT' - CHANGING cg_data = lv_shorttext ). - io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' - CHANGING cg_data = ls_original_object ). - io_xml->read( EXPORTING iv_name = 'ENHANCEMENTS' - CHANGING cg_data = lt_enhancements ). - io_xml->read( EXPORTING iv_name = 'SPACES' - CHANGING cg_data = lt_spaces ). - - hook_impl_deserialize( EXPORTING it_spaces = lt_spaces - CHANGING ct_impl = lt_enhancements ). - - lv_enhname = ms_item-obj_name. - lv_package = iv_package. - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = lv_enhname - enhtype = cl_abstract_enh_tool_redef=>credefinition - enhtooltype = cl_enh_tool_hook_impl=>tooltype - IMPORTING - enhancement = li_tool - CHANGING - devclass = lv_package ). - lo_hook_impl ?= li_tool. - - lo_hook_impl->if_enh_object_docu~set_shorttext( lv_shorttext ). - lo_hook_impl->set_original_object( - pgmid = ls_original_object-pgmid - obj_name = ls_original_object-org_obj_name - obj_type = ls_original_object-org_obj_type - program = ls_original_object-programname - main_type = ls_original_object-org_main_type - main_name = ls_original_object-org_main_name ). - lo_hook_impl->set_include_bound( ls_original_object-include_bound ). - - LOOP AT lt_enhancements ASSIGNING . - lo_hook_impl->add_hook_impl( - overwrite = -overwrite - method = -method - enhmode = -enhmode - full_name = -full_name - source = -source - spot = -spotname - parent_full_name = -parent_full_name ). - ENDLOOP. - lo_hook_impl->if_enh_object~save( ). - lo_hook_impl->if_enh_object~unlock( ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'error deserializing ENHO hook' ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - -ENDCLASS. "lcl_object_enho_hook IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_interface DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_intf DEFINITION. - - PUBLIC SECTION. - METHODS: - constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, - mo_files TYPE REF TO zcl_abapgit_objects_files. - -ENDCLASS. "lcl_object_enho_interface DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_interface IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_intf IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - mo_files = io_files. - ENDMETHOD. "constructor - - METHOD lif_object_enho~serialize. - - DATA: lo_enh_intf TYPE REF TO cl_enh_tool_intf, - lv_class TYPE seoclsname, - lv_shorttext TYPE string. - - - lo_enh_intf ?= ii_enh_tool. - - lv_shorttext = lo_enh_intf->if_enh_object_docu~get_shorttext( ). - lo_enh_intf->get_class( IMPORTING class_name = lv_class ). - - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). - io_xml->add( ig_data = lv_shorttext - iv_name = 'SHORTTEXT' ). - io_xml->add( iv_name = 'CLASS' - ig_data = lv_class ). - - lcl_object_enho_clif=>serialize( - io_xml = io_xml - io_files = mo_files - io_clif = lo_enh_intf ). - - ENDMETHOD. "lif_object_enho~serialize - - METHOD lif_object_enho~deserialize. - - DATA: lo_enh_intf TYPE REF TO cl_enh_tool_intf, - li_tool TYPE REF TO if_enh_tool, - lv_shorttext TYPE string, - lv_class TYPE seoclsname, - lv_enhname TYPE enhname, - lv_package TYPE devclass. - - - io_xml->read( EXPORTING iv_name = 'SHORTTEXT' - CHANGING cg_data = lv_shorttext ). - io_xml->read( EXPORTING iv_name = 'CLASS' - CHANGING cg_data = lv_class ). - - lv_enhname = ms_item-obj_name. - lv_package = iv_package. - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = lv_enhname - enhtype = '' - enhtooltype = cl_enh_tool_intf=>tooltype - IMPORTING - enhancement = li_tool - CHANGING - devclass = lv_package ). - lo_enh_intf ?= li_tool. - - lo_enh_intf->if_enh_object_docu~set_shorttext( lv_shorttext ). - lo_enh_intf->set_class( lv_class ). - - lcl_object_enho_clif=>deserialize( - io_xml = io_xml - io_clif = lo_enh_intf ). - - lo_enh_intf->if_enh_object~save( ). - lo_enh_intf->if_enh_object~unlock( ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'error deserializing ENHO interface' ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - -ENDCLASS. "lcl_object_enho_interface IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_class DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_class DEFINITION. - - PUBLIC SECTION. - METHODS: - constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. - DATA: mo_files TYPE REF TO zcl_abapgit_objects_files. - -ENDCLASS. "lcl_object_enho_class DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_class IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_class IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - mo_files = io_files. - ENDMETHOD. "constructor - - METHOD lif_object_enho~serialize. - - DATA: lo_enh_class TYPE REF TO cl_enh_tool_class, - lt_owr TYPE enhmeth_tabkeys, - lt_pre TYPE enhmeth_tabkeys, - lt_post TYPE enhmeth_tabkeys, - lt_source TYPE rswsourcet, - lv_class TYPE seoclsname, - lv_shorttext TYPE string. - - - lo_enh_class ?= ii_enh_tool. - - lv_shorttext = lo_enh_class->if_enh_object_docu~get_shorttext( ). - lt_owr = lo_enh_class->get_owr_methods( ). - lt_pre = lo_enh_class->get_pre_methods( ). - lt_post = lo_enh_class->get_post_methods( ). - lt_source = lo_enh_class->get_eimp_include( ). - lo_enh_class->get_class( IMPORTING class_name = lv_class ). - - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). - io_xml->add( ig_data = lv_shorttext - iv_name = 'SHORTTEXT' ). - io_xml->add( iv_name = 'CLASS' - ig_data = lv_class ). - io_xml->add( iv_name = 'OWR_METHODS' - ig_data = lt_owr ). - io_xml->add( iv_name = 'PRE_METHODS' - ig_data = lt_pre ). - io_xml->add( iv_name = 'POST_METHODS' - ig_data = lt_post ). - - mo_files->add_abap( lt_source ). - - lcl_object_enho_clif=>serialize( - io_xml = io_xml - io_files = mo_files - io_clif = lo_enh_class ). - - ENDMETHOD. "lif_object_enho~serialize - - METHOD lif_object_enho~deserialize. - - DATA: lo_enh_class TYPE REF TO cl_enh_tool_class, - lt_owr TYPE enhmeth_tabkeys, - lt_pre TYPE enhmeth_tabkeys, - lt_post TYPE enhmeth_tabkeys, - lt_source TYPE rswsourcet, - li_tool TYPE REF TO if_enh_tool, - lv_shorttext TYPE string, - lv_class TYPE seoclsname, - lv_enhname TYPE enhname, - lv_package TYPE devclass. - - - io_xml->read( EXPORTING iv_name = 'SHORTTEXT' - CHANGING cg_data = lv_shorttext ). - io_xml->read( EXPORTING iv_name = 'OWR_METHODS' - CHANGING cg_data = lt_owr ). - io_xml->read( EXPORTING iv_name = 'PRE_METHODS' - CHANGING cg_data = lt_pre ). - io_xml->read( EXPORTING iv_name = 'POST_METHODS' - CHANGING cg_data = lt_post ). - io_xml->read( EXPORTING iv_name = 'CLASS' - CHANGING cg_data = lv_class ). - lt_source = mo_files->read_abap( ). - - lv_enhname = ms_item-obj_name. - lv_package = iv_package. - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = lv_enhname - enhtype = '' - enhtooltype = cl_enh_tool_class=>tooltype - IMPORTING - enhancement = li_tool - CHANGING - devclass = lv_package ). - lo_enh_class ?= li_tool. - - lo_enh_class->if_enh_object_docu~set_shorttext( lv_shorttext ). - lo_enh_class->set_class( lv_class ). - lo_enh_class->set_owr_methods( version = 'I' - owr_methods = lt_owr ). - lo_enh_class->set_pre_methods( version = 'I' - pre_methods = lt_pre ). - lo_enh_class->set_post_methods( version = 'I' - post_methods = lt_post ). - lo_enh_class->set_eimp_include( version = 'I' - eimp_source = lt_source ). - - lcl_object_enho_clif=>deserialize( - io_xml = io_xml - io_clif = lo_enh_class ). - - lo_enh_class->if_enh_object~save( ). - lo_enh_class->if_enh_object~unlock( ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'error deserializing ENHO class' ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - -ENDCLASS. "lcl_object_enho_class IMPLEMENTATION - - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_wdyconf DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_fugr DEFINITION. - - PUBLIC SECTION. - METHODS: constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files. - INTERFACES: lif_object_enho. - - PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, - mo_files TYPE REF TO zcl_abapgit_objects_files. - -ENDCLASS. "lcl_object_enho_wdyconf DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho_wdyconf IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho_fugr IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - mo_files = io_files. - ENDMETHOD. "constructor - - METHOD lif_object_enho~deserialize. - - DATA: lo_fugrdata TYPE REF TO cl_enh_tool_fugr, - ls_enha_data TYPE enhfugrdata, - li_tool TYPE REF TO if_enh_tool, - tool TYPE enhtooltype, - lv_package TYPE devclass. - - FIELD-SYMBOLS: TYPE enhfugrfuncdata. - - io_xml->read( - EXPORTING - iv_name = 'TOOL' - CHANGING - cg_data = tool ). - - io_xml->read( - EXPORTING - iv_name = 'FUGRDATA' - CHANGING - cg_data = ls_enha_data ). - - lv_package = iv_package. - - TRY. - cl_enh_factory=>create_enhancement( - EXPORTING - enhname = |{ ms_item-obj_name }| - enhtype = '' - enhtooltype = tool - IMPORTING - enhancement = li_tool - CHANGING - devclass = lv_package ). - - lo_fugrdata ?= li_tool. - - lo_fugrdata->set_fugr( ls_enha_data-fugr ). - - LOOP AT ls_enha_data-enh_fubas ASSIGNING . - - lo_fugrdata->set_func_data( func_name = -fuba - func_enhadata = ). - - ENDLOOP. - - lo_fugrdata->if_enh_object~save( ). - lo_fugrdata->if_enh_object~unlock( ). - - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( |error deserializing ENHO fugrdata { ms_item-obj_name }| ). - ENDTRY. - - ENDMETHOD. "lif_object_enho~deserialize - - METHOD lif_object_enho~serialize. - - DATA: lo_fugrdata TYPE REF TO cl_enh_tool_fugr, - fugr_name TYPE rs38l-area, - ls_enha_data TYPE enhfugrdata. - - FIELD-SYMBOLS: TYPE enhfugrparamdocu. - - lo_fugrdata ?= ii_enh_tool. - - lo_fugrdata->get_fugr( - IMPORTING - fugr_name = fugr_name ). - - TRY. - lo_fugrdata->get_all_data_for_fugr( - EXPORTING - fugr_name = fugr_name - IMPORTING - enha_data = ls_enha_data ). - - LOOP AT ls_enha_data-docuobjs ASSIGNING . - - CLEAR: -shorttext, - -longtext. - - ENDLOOP. - - CATCH cx_enh_not_found. - zcx_abapgit_exception=>raise( |error deserializing ENHO fugrdata { ms_item-obj_name }| ). - ENDTRY. - - io_xml->add( iv_name = 'TOOL' - ig_data = lo_fugrdata->if_enh_tool~get_tool( ) ). - - io_xml->add( iv_name = 'FUGRDATA' - ig_data = ls_enha_data ). - - ENDMETHOD. "lif_object_enho~serialize - -ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho DEFINITION INHERITING FROM lcl_objects_super FINAL. - - PUBLIC SECTION. - INTERFACES zif_abapgit_object. - ALIASES mo_files FOR zif_abapgit_object~mo_files. - - PRIVATE SECTION. - - METHODS: - factory - IMPORTING - iv_tool TYPE enhtooltype - RETURNING - VALUE(ri_enho) TYPE REF TO lif_object_enho - RAISING - zcx_abapgit_exception. - -ENDCLASS. "lcl_object_enho DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_enho IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_enho IMPLEMENTATION. - - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - ENDMETHOD. "zif_abapgit_object~get_metadata - - METHOD zif_abapgit_object~changed_by. - rv_user = c_user_unknown. " todo - ENDMETHOD. "zif_abapgit_object~changed_by - - METHOD zif_abapgit_object~exists. - - DATA: lv_enh_id TYPE enhname. - - - lv_enh_id = ms_item-obj_name. - TRY. - cl_enh_factory=>get_enhancement( - enhancement_id = lv_enh_id - bypassing_buffer = abap_true ). - rv_bool = abap_true. - CATCH cx_enh_root. - rv_bool = abap_false. - ENDTRY. - - ENDMETHOD. "zif_abapgit_object~exists - - METHOD zif_abapgit_object~serialize. - - DATA: lv_enh_id TYPE enhname, - li_enho TYPE REF TO lif_object_enho, - li_enh_tool TYPE REF TO if_enh_tool. - - - IF zif_abapgit_object~exists( ) = abap_false. - RETURN. - ENDIF. - - lv_enh_id = ms_item-obj_name. - TRY. - li_enh_tool = cl_enh_factory=>get_enhancement( - enhancement_id = lv_enh_id - bypassing_buffer = abap_true ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). - ENDTRY. - - li_enho = factory( li_enh_tool->get_tool( ) ). - - li_enho->serialize( io_xml = io_xml - ii_enh_tool = li_enh_tool ). - - ENDMETHOD. "serialize - - METHOD factory. - - CASE iv_tool. - WHEN cl_enh_tool_badi_impl=>tooltype. - CREATE OBJECT ri_enho TYPE lcl_object_enho_badi - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN cl_enh_tool_hook_impl=>tooltype. - CREATE OBJECT ri_enho TYPE lcl_object_enho_hook - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN cl_enh_tool_class=>tooltype. - CREATE OBJECT ri_enho TYPE lcl_object_enho_class - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN cl_enh_tool_intf=>tooltype. - CREATE OBJECT ri_enho TYPE lcl_object_enho_intf - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN cl_wdr_cfg_enhancement=>tooltype. - CREATE OBJECT ri_enho TYPE lcl_object_enho_wdyc - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN 'FUGRENH'. - CREATE OBJECT ri_enho TYPE lcl_object_enho_fugr - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN 'WDYENH'. - CREATE OBJECT ri_enho TYPE lcl_object_enho_wdyn - EXPORTING - is_item = ms_item - io_files = mo_files. - WHEN OTHERS. - zcx_abapgit_exception=>raise( |Unsupported ENHO type { iv_tool }| ). - ENDCASE. - - ENDMETHOD. "factory - - METHOD zif_abapgit_object~deserialize. - - DATA: lv_tool TYPE enhtooltype, - li_enho TYPE REF TO lif_object_enho. - - - IF zif_abapgit_object~exists( ) = abap_true. - zif_abapgit_object~delete( ). - ENDIF. - - io_xml->read( EXPORTING iv_name = 'TOOL' - CHANGING cg_data = lv_tool ). - - li_enho = factory( lv_tool ). - - li_enho->deserialize( io_xml = io_xml - iv_package = iv_package ). - - zcl_abapgit_objects_activation=>add_item( ms_item ). - - ENDMETHOD. "deserialize - - METHOD zif_abapgit_object~delete. - - DATA: lv_enh_id TYPE enhname, - li_enh_object TYPE REF TO if_enh_object. - - - lv_enh_id = ms_item-obj_name. - TRY. - li_enh_object = cl_enh_factory=>get_enhancement( - enhancement_id = lv_enh_id - lock = abap_true ). - li_enh_object->delete( ). - li_enh_object->save( ). - li_enh_object->unlock( ). - CATCH cx_enh_root. - zcx_abapgit_exception=>raise( 'Error deleting ENHO' ). - ENDTRY. - - ENDMETHOD. "delete - - METHOD zif_abapgit_object~jump. - - CALL FUNCTION 'RS_TOOL_ACCESS' - EXPORTING - operation = 'SHOW' - object_name = ms_item-obj_name - object_type = 'ENHO' - in_new_window = abap_true. - - ENDMETHOD. "jump - - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. "zif_abapgit_object~compare_to_remote_version - -ENDCLASS. "lcl_object_enho IMPLEMENTATION diff --git a/src/zabapgit_object_enho.prog.xml b/src/zabapgit_object_enho.prog.xml deleted file mode 100644 index 506c910ff..000000000 --- a/src/zabapgit_object_enho.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_ENHO - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_ENHO - 28 - - - - - diff --git a/src/zabapgit_object_enhs.prog.abap b/src/zabapgit_object_enhs.prog.abap deleted file mode 100644 index 0ccdaa730..000000000 --- a/src/zabapgit_object_enhs.prog.abap +++ /dev/null @@ -1,421 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_ENHS -*&---------------------------------------------------------------------* - -* For complete list of tool_type - see ENHSPOTTOOLS table - -INTERFACE lif_object_enhs. - - METHODS: - deserialize - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input - iv_package TYPE devclass - ii_enh_spot_tool TYPE REF TO if_enh_spot_tool - RAISING zcx_abapgit_exception, - - serialize - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output - ii_enh_spot_tool TYPE REF TO if_enh_spot_tool - RAISING zcx_abapgit_exception. - -ENDINTERFACE. "lif_object_enho - -*----------------------------------------------------------------------* -* CLASS lcl_object_enhs DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_enhs DEFINITION INHERITING FROM lcl_objects_super FINAL. - - PUBLIC SECTION. - INTERFACES zif_abapgit_object. - ALIASES mo_files FOR zif_abapgit_object~mo_files. - - PRIVATE SECTION. - METHODS: - factory - IMPORTING - iv_tool TYPE enhtooltype - RETURNING - VALUE(ri_enho) TYPE REF TO lif_object_enhs - RAISING - zcx_abapgit_exception. - -ENDCLASS. "lcl_object_enhs - -*----------------------------------------------------------------------* -* CLASS lcl_object_enhs_badi_def DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_enhs_badi_d DEFINITION. - - PUBLIC SECTION. - INTERFACES: lif_object_enhs. - -ENDCLASS. - -*----------------------------------------------------------------------* -* CLASS lcl_object_enhs_hook_def DEFINITION -*----------------------------------------------------------------------* -CLASS lcl_object_enhs_hook_d DEFINITION. - - PUBLIC SECTION. - INTERFACES: lif_object_enhs. - - PRIVATE SECTION. - TYPES: BEGIN OF ty_hook_defifnition, - pgmid TYPE pgmid, - obj_name TYPE trobj_name, - obj_type TYPE trobjtype, - main_type TYPE trobjtype, - main_name TYPE eu_aname, - program TYPE progname, - def_hooks TYPE enh_hook_def_ext_it, - END OF ty_hook_defifnition. - -ENDCLASS. - - -*----------------------------------------------------------------------* -* CLASS lcl_object_enhs IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_enhs IMPLEMENTATION. - - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. "zif_abapgit_object~has_changed_since - - METHOD zif_abapgit_object~changed_by. - - DATA: lv_spot_name TYPE enhspotname, - li_spot_ref TYPE REF TO if_enh_spot_tool. - - lv_spot_name = ms_item-obj_name. - - TRY. - li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ). - li_spot_ref->get_attributes( IMPORTING changedby = rv_user ). - - CATCH cx_enh_root. - rv_user = c_user_unknown. - ENDTRY. - - ENDMETHOD. - - METHOD zif_abapgit_object~deserialize. - - DATA: lv_parent TYPE enhspotcompositename, - lv_spot_name TYPE enhspotname, - lv_tool TYPE enhspottooltype, - lv_package LIKE iv_package, - li_spot_ref TYPE REF TO if_enh_spot_tool, - li_enhs TYPE REF TO lif_object_enhs, - lx_root TYPE REF TO cx_root. - - IF zif_abapgit_object~exists( ) = abap_true. - zif_abapgit_object~delete( ). - ENDIF. - - io_xml->read( EXPORTING iv_name = 'TOOL' - CHANGING cg_data = lv_tool ). - - lv_spot_name = ms_item-obj_name. - lv_package = iv_package. - - TRY. - cl_enh_factory=>create_enhancement_spot( - EXPORTING - spot_name = lv_spot_name - tooltype = lv_tool - dark = abap_false - compositename = lv_parent - IMPORTING - spot = li_spot_ref - CHANGING - devclass = lv_package ). - - CATCH cx_enh_root INTO lx_root. - zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). - ENDTRY. - - li_enhs = factory( lv_tool ). - - li_enhs->deserialize( io_xml = io_xml - iv_package = iv_package - ii_enh_spot_tool = li_spot_ref ). - - ENDMETHOD. "deserialize - - METHOD zif_abapgit_object~serialize. - - DATA: lv_spot_name TYPE enhspotname, - li_spot_ref TYPE REF TO if_enh_spot_tool, - li_enhs TYPE REF TO lif_object_enhs, - lx_root TYPE REF TO cx_root. - - lv_spot_name = ms_item-obj_name. - - TRY. - li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ). - - CATCH cx_enh_root INTO lx_root. - zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). - ENDTRY. - - li_enhs = factory( li_spot_ref->get_tool( ) ). - - li_enhs->serialize( io_xml = io_xml - ii_enh_spot_tool = li_spot_ref ). - - ENDMETHOD. "serialize - - METHOD zif_abapgit_object~exists. - - DATA: lv_spot_name TYPE enhspotname, - li_spot_ref TYPE REF TO if_enh_spot_tool. - - lv_spot_name = ms_item-obj_name. - - TRY. - li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ). - - rv_bool = abap_true. - - CATCH cx_enh_root. - rv_bool = abap_false. - ENDTRY. - - ENDMETHOD. "exists - - METHOD zif_abapgit_object~delete. - - DATA: lv_spot_name TYPE enhspotname, - li_enh_object TYPE REF TO if_enh_object, - lx_root TYPE REF TO cx_root. - - lv_spot_name = ms_item-obj_name. - - TRY. - li_enh_object ?= cl_enh_factory=>get_enhancement_spot( spot_name = lv_spot_name - lock = abap_true ). - - li_enh_object->delete( nevertheless_delete = abap_true - run_dark = abap_true ). - - li_enh_object->unlock( ). - - CATCH cx_enh_root INTO lx_root. - zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ). - ENDTRY. - - ENDMETHOD. "delete - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - ENDMETHOD. "get_metadata - - METHOD zif_abapgit_object~jump. - - CALL FUNCTION 'RS_TOOL_ACCESS' - EXPORTING - operation = 'SHOW' - object_name = ms_item-obj_name - object_type = 'ENHS' - in_new_window = abap_true. - - ENDMETHOD. "jump - - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. - - METHOD factory. - - CASE iv_tool. - WHEN cl_enh_tool_badi_def=>tooltype. - CREATE OBJECT ri_enho TYPE lcl_object_enhs_badi_d. - WHEN cl_enh_tool_hook_def=>tool_type. - CREATE OBJECT ri_enho TYPE lcl_object_enhs_hook_d. - WHEN OTHERS. - zcx_abapgit_exception=>raise( |ENHS: Unsupported tool { iv_tool }| ). - ENDCASE. - - ENDMETHOD. - -ENDCLASS. "lcl_object_enhs - -*----------------------------------------------------------------------* -* CLASS lcl_object_enhs_badi_def IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_enhs_badi_d IMPLEMENTATION. - - METHOD lif_object_enhs~deserialize. - - DATA: lv_parent TYPE enhspotcompositename, - lt_enh_badi TYPE enh_badi_data_it, - lo_badidef_tool TYPE REF TO cl_enh_tool_badi_def, - lv_enh_shorttext TYPE string, -* lv_package LIKE iv_package, - li_enh_object TYPE REF TO if_enh_object, - li_enh_object_docu TYPE REF TO if_enh_object_docu, - lv_text TYPE string, - lx_error TYPE REF TO cx_enh_root. - - FIELD-SYMBOLS: LIKE LINE OF lt_enh_badi. - - io_xml->read( EXPORTING iv_name = 'PARENT_COMP' - CHANGING cg_data = lv_parent ). - - io_xml->read( EXPORTING iv_name = 'BADI_DATA' - CHANGING cg_data = lt_enh_badi ). - - io_xml->read( EXPORTING iv_name = 'SHORTTEXT' - CHANGING cg_data = lv_enh_shorttext ). - -* lv_package = iv_package. - - li_enh_object ?= ii_enh_spot_tool. - li_enh_object_docu ?= ii_enh_spot_tool. - - TRY. - li_enh_object_docu->set_shorttext( lv_enh_shorttext ). - - lo_badidef_tool ?= ii_enh_spot_tool. - - LOOP AT lt_enh_badi ASSIGNING . - lo_badidef_tool->add_badi_def( ). - ENDLOOP. - - li_enh_object->save( ). - li_enh_object->activate( ). - li_enh_object->unlock( ). - - CATCH cx_enh_root INTO lx_error. - lv_text = lx_error->get_text( ). - zcx_abapgit_exception=>raise( lv_text ). - ENDTRY. - - ENDMETHOD. - - METHOD lif_object_enhs~serialize. - - DATA: lv_spot_name TYPE enhspotname, - lv_parent TYPE enhspotcompositename, - lt_enh_badi TYPE enh_badi_data_it, - lo_badidef_tool TYPE REF TO cl_enh_tool_badi_def, - lv_enh_shorttext TYPE string, - li_enh_object_docu TYPE REF TO if_enh_object_docu. - - lo_badidef_tool ?= ii_enh_spot_tool. - - li_enh_object_docu ?= ii_enh_spot_tool. - lv_enh_shorttext = li_enh_object_docu->get_shorttext( ). - - "get parent = composite enhs (ENHC) - lv_parent = cl_r3standard_persistence=>enh_find_parent_composite( lv_spot_name ). - "get subsequent BADI definitions - lt_enh_badi = lo_badidef_tool->get_badi_defs( ). - - io_xml->add( ig_data = ii_enh_spot_tool->get_tool( ) - iv_name = 'TOOL' ). - - io_xml->add( ig_data = lv_enh_shorttext - iv_name = 'SHORTTEXT' ). - - io_xml->add( ig_data = lv_parent - iv_name = 'PARENT_COMP' ). - - io_xml->add( ig_data = lt_enh_badi - iv_name = 'BADI_DATA' ). - - ENDMETHOD. - -ENDCLASS. - -*----------------------------------------------------------------------* -* CLASS lcl_object_enhs_hook_def IMPLEMENTATION -*----------------------------------------------------------------------* -CLASS lcl_object_enhs_hook_d IMPLEMENTATION. - - METHOD lif_object_enhs~deserialize. - - DATA: lv_enh_shorttext TYPE string, - ls_enh_hook_definition TYPE enh_hook_def, - ls_hook_definition TYPE ty_hook_defifnition, - li_enh_object TYPE REF TO if_enh_object, - li_enh_object_docu TYPE REF TO if_enh_object_docu, - lo_hookdef_tool TYPE REF TO cl_enh_tool_hook_def, - lx_error TYPE REF TO cx_enh_root, - lv_text TYPE string. - - FIELD-SYMBOLS: TYPE enh_hook_def_ext. - - io_xml->read( EXPORTING iv_name = 'SHORTTEXT' - CHANGING cg_data = lv_enh_shorttext ). - - io_xml->read( EXPORTING iv_name = 'BADI_DATA' - CHANGING cg_data = ls_hook_definition ). - - li_enh_object ?= ii_enh_spot_tool. - li_enh_object_docu ?= ii_enh_spot_tool. - - TRY. - li_enh_object_docu->set_shorttext( lv_enh_shorttext ). - - lo_hookdef_tool ?= ii_enh_spot_tool. - - lo_hookdef_tool->set_original_object( pgmid = ls_hook_definition-pgmid - obj_name = ls_hook_definition-obj_name - obj_type = ls_hook_definition-obj_type - program = ls_hook_definition-program - main_type = ls_hook_definition-main_type - main_name = ls_hook_definition-main_name ). - - LOOP AT ls_hook_definition-def_hooks ASSIGNING . - MOVE-CORRESPONDING TO ls_enh_hook_definition. - lo_hookdef_tool->add_hook_def( ls_enh_hook_definition ). - ENDLOOP. - - li_enh_object->save( ). - li_enh_object->activate( ). - li_enh_object->unlock( ). - - CATCH cx_enh_root INTO lx_error. - lv_text = lx_error->get_text( ). - zcx_abapgit_exception=>raise( lv_text ). - ENDTRY. - - ENDMETHOD. - - METHOD lif_object_enhs~serialize. - - DATA: lo_hookdef_tool TYPE REF TO cl_enh_tool_hook_def, - lv_enh_shorttext TYPE string, - li_enh_object_docu TYPE REF TO if_enh_object_docu, - ls_hook_definition TYPE ty_hook_defifnition. - - lo_hookdef_tool ?= ii_enh_spot_tool. - - li_enh_object_docu ?= ii_enh_spot_tool. - lv_enh_shorttext = li_enh_object_docu->get_shorttext( ). - - ls_hook_definition-def_hooks = lo_hookdef_tool->get_hook_defs( ). - - lo_hookdef_tool->get_original_object( - IMPORTING - pgmid = ls_hook_definition-pgmid - obj_name = ls_hook_definition-obj_name - obj_type = ls_hook_definition-obj_type - main_type = ls_hook_definition-main_type - main_name = ls_hook_definition-main_name - program = ls_hook_definition-program ). - - io_xml->add( ig_data = ii_enh_spot_tool->get_tool( ) - iv_name = 'TOOL' ). - - io_xml->add( ig_data = lv_enh_shorttext - iv_name = 'SHORTTEXT' ). - - io_xml->add( ig_data = ls_hook_definition - iv_name = 'BADI_DATA' ). - - ENDMETHOD. - -ENDCLASS. diff --git a/src/zabapgit_object_enhs.prog.xml b/src/zabapgit_object_enhs.prog.xml deleted file mode 100644 index afb39dbdc..000000000 --- a/src/zabapgit_object_enhs.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_ENHS - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_ENHS - 28 - - - - - diff --git a/src/zabapgit_object_enqu.prog.xml b/src/zabapgit_object_enqu.prog.xml deleted file mode 100644 index 0b58488cc..000000000 --- a/src/zabapgit_object_enqu.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_ENQU - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_ENUQ - 28 - - - - - diff --git a/src/zabapgit_object_ensc.prog.xml b/src/zabapgit_object_ensc.prog.xml deleted file mode 100644 index 735d6a196..000000000 --- a/src/zabapgit_object_ensc.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_ENSC - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_ENSC - 28 - - - - - diff --git a/src/zabapgit_object_form.prog.xml b/src/zabapgit_object_form.prog.xml deleted file mode 100644 index de397ec78..000000000 --- a/src/zabapgit_object_form.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_FORM - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_FORM - 20 - - - - - diff --git a/src/zabapgit_object_fugr.prog.xml b/src/zabapgit_object_fugr.prog.xml deleted file mode 100644 index 2db659b49..000000000 --- a/src/zabapgit_object_fugr.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_FUGR - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_FUGR - 28 - - - - - diff --git a/src/zabapgit_object_iamu.prog.xml b/src/zabapgit_object_iamu.prog.xml deleted file mode 100644 index a55857bda..000000000 --- a/src/zabapgit_object_iamu.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_IAMU - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_IAMU - 20 - - - - - diff --git a/src/zabapgit_object_iarp.prog.xml b/src/zabapgit_object_iarp.prog.xml deleted file mode 100644 index 24b0a2fdf..000000000 --- a/src/zabapgit_object_iarp.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_IARP - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_IARP - 28 - - - - - diff --git a/src/zabapgit_object_iasp.prog.xml b/src/zabapgit_object_iasp.prog.xml deleted file mode 100644 index 5acfdf6dd..000000000 --- a/src/zabapgit_object_iasp.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_IASP - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_IASP - 28 - - - - - diff --git a/src/zabapgit_object_iatu.prog.xml b/src/zabapgit_object_iatu.prog.xml deleted file mode 100644 index 56705931a..000000000 --- a/src/zabapgit_object_iatu.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_IATU - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_IATU - 28 - - - - - diff --git a/src/zabapgit_object_intf.prog.xml b/src/zabapgit_object_intf.prog.xml deleted file mode 100644 index 8ddf78af4..000000000 --- a/src/zabapgit_object_intf.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_INTF - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_INTF - 28 - - - - - diff --git a/src/zabapgit_object_jobd.prog.xml b/src/zabapgit_object_jobd.prog.xml deleted file mode 100644 index e74762cd6..000000000 --- a/src/zabapgit_object_jobd.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_JOBD - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_JOBD - 20 - - - - - diff --git a/src/zabapgit_object_msag.prog.xml b/src/zabapgit_object_msag.prog.xml deleted file mode 100644 index 6753f5137..000000000 --- a/src/zabapgit_object_msag.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_MSAG - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_MSAG - 28 - - - - - diff --git a/src/zabapgit_object_nrob.prog.xml b/src/zabapgit_object_nrob.prog.xml deleted file mode 100644 index 77f8a3b7a..000000000 --- a/src/zabapgit_object_nrob.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_NROB - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_NROB - 28 - - - - - diff --git a/src/zabapgit_object_oo_factory.prog.abap b/src/zabapgit_object_oo_factory.prog.abap deleted file mode 100644 index b825492ea..000000000 --- a/src/zabapgit_object_oo_factory.prog.abap +++ /dev/null @@ -1,30 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_oo_factory -*&---------------------------------------------------------------------* -CLASS lcl_oo_factory IMPLEMENTATION. - METHOD make. - IF go_object_oriented_object IS BOUND. - ro_object_oriented_object = go_object_oriented_object. - RETURN. - ENDIF. - IF iv_object_type = 'CLAS'. - CREATE OBJECT ro_object_oriented_object TYPE lcl_oo_class. - ELSEIF iv_object_type = 'INTF'. - CREATE OBJECT ro_object_oriented_object TYPE lcl_oo_interface. - ENDIF. - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_oo_factory_injector DEFINITION FOR TESTING. - PUBLIC SECTION. - CLASS-METHODS: - inject - IMPORTING - io_object_oriented_object TYPE REF TO lif_oo_object_fnc. -ENDCLASS. - -CLASS ltcl_oo_factory_injector IMPLEMENTATION. - METHOD inject. - lcl_oo_factory=>go_object_oriented_object = io_object_oriented_object. - ENDMETHOD. -ENDCLASS. diff --git a/src/zabapgit_object_oo_factory.prog.xml b/src/zabapgit_object_oo_factory.prog.xml deleted file mode 100644 index a31593880..000000000 --- a/src/zabapgit_object_oo_factory.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_OO_FACTORY - A - X - S - D$ - I - X - D$S - X - - - - R - Include ZABAPGIT_OBJECT_OO_FACTORY - 34 - - - - - diff --git a/src/zabapgit_object_oo_functions.prog.abap b/src/zabapgit_object_oo_functions.prog.abap deleted file mode 100644 index f0997710c..000000000 --- a/src/zabapgit_object_oo_functions.prog.abap +++ /dev/null @@ -1,686 +0,0 @@ -"This interface contains SAP object oriented functions that can't be put under test -"(i.e. creating a Class in the system) -INTERFACE lif_oo_object_fnc. - TYPES: BEGIN OF ty_includes, - programm TYPE programm, - END OF ty_includes, - ty_includes_tt TYPE STANDARD TABLE OF ty_includes WITH DEFAULT KEY. - - METHODS: - create - IMPORTING - iv_package TYPE devclass - iv_overwrite TYPE seox_boolean DEFAULT seox_true - CHANGING - is_properties TYPE any - RAISING - zcx_abapgit_exception, - generate_locals - IMPORTING - is_key TYPE seoclskey - iv_force TYPE seox_boolean DEFAULT seox_true - it_local_definitions TYPE seop_source_string OPTIONAL - it_local_implementations TYPE seop_source_string OPTIONAL - it_local_macros TYPE seop_source_string OPTIONAL - it_local_test_classes TYPE seop_source_string OPTIONAL - RAISING - zcx_abapgit_exception, - deserialize_source - IMPORTING - is_key TYPE seoclskey - it_source TYPE zif_abapgit_definitions=>ty_string_tt - RAISING - zcx_abapgit_exception - cx_sy_dyn_call_error, - insert_text_pool - IMPORTING - iv_class_name TYPE seoclsname - it_text_pool TYPE textpool_table - iv_language TYPE spras - RAISING - zcx_abapgit_exception, - update_descriptions - IMPORTING - is_key TYPE seoclskey - it_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - add_to_activation_list - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - RAISING - zcx_abapgit_exception, - create_sotr - IMPORTING - iv_package TYPE devclass - it_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt - RAISING - zcx_abapgit_exception, - create_documentation - IMPORTING - it_lines TYPE tlinetab - iv_object_name TYPE dokhl-object - iv_language TYPE spras - RAISING - zcx_abapgit_exception, - get_includes - IMPORTING - iv_object_name TYPE sobj_name - RETURNING - VALUE(rt_includes) TYPE ty_includes_tt - RAISING - zcx_abapgit_exception, - exists - IMPORTING - iv_object_name TYPE seoclskey - RETURNING - VALUE(rv_exists) TYPE abap_bool, - serialize_abap - IMPORTING - is_class_key TYPE seoclskey - iv_type TYPE seop_include_ext_app OPTIONAL - RETURNING - VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING - zcx_abapgit_exception - cx_sy_dyn_call_error, - get_skip_test_classes - RETURNING - VALUE(rv_skip) TYPE abap_bool, - get_class_properties - IMPORTING - is_class_key TYPE seoclskey - RETURNING - VALUE(rs_class_properties) TYPE vseoclass - RAISING - zcx_abapgit_exception, - get_interface_properties - IMPORTING - is_interface_key TYPE seoclskey - RETURNING - VALUE(rs_interface_properties) TYPE vseointerf - RAISING - zcx_abapgit_exception, - read_text_pool - IMPORTING - iv_class_name TYPE seoclsname - iv_language TYPE spras - RETURNING - VALUE(rt_text_pool) TYPE textpool_table, - read_documentation - IMPORTING - iv_class_name TYPE seoclsname - iv_language TYPE spras - RETURNING - VALUE(rt_lines) TYPE tlinetab, - read_sotr - IMPORTING - iv_object_name TYPE sobj_name - RETURNING - VALUE(rt_sotr) TYPE zif_abapgit_definitions=>ty_sotr_tt - RAISING - zcx_abapgit_exception, - read_descriptions - IMPORTING - iv_obejct_name TYPE seoclsname - RETURNING - VALUE(rt_descriptions) TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - delete - IMPORTING - is_deletion_key TYPE seoclskey - RAISING - zcx_abapgit_exception, - read_superclass - IMPORTING - iv_classname TYPE seoclsname - RETURNING - VALUE(rv_superclass) TYPE seoclsname. -ENDINTERFACE. - -CLASS lcl_oo_serializer DEFINITION. - PUBLIC SECTION. - - METHODS: - serialize_abap_clif_source - IMPORTING - is_class_key TYPE seoclskey - RETURNING - VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING - zcx_abapgit_exception - cx_sy_dyn_call_error, - are_test_classes_skipped - RETURNING - VALUE(rv_return) TYPE abap_bool. - METHODS serialize_locals_imp - IMPORTING is_clskey TYPE seoclskey - RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception. - - METHODS serialize_locals_def - IMPORTING is_clskey TYPE seoclskey - RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception. - METHODS serialize_testclasses - IMPORTING - is_clskey TYPE seoclskey - RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception. - - METHODS serialize_macros - IMPORTING is_clskey TYPE seoclskey - RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception. - METHODS calculate_skip_testclass - IMPORTING - it_source TYPE zif_abapgit_definitions=>ty_string_tt - RETURNING - VALUE(rv_skip_testclass) TYPE abap_bool. - PRIVATE SECTION. - DATA mv_skip_testclass TYPE abap_bool. - METHODS serialize_abap_old - IMPORTING is_clskey TYPE seoclskey - RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception. - - METHODS serialize_abap_new - IMPORTING is_clskey TYPE seoclskey - RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception - cx_sy_dyn_call_error. - METHODS remove_signatures - CHANGING ct_source TYPE zif_abapgit_definitions=>ty_string_tt. - - METHODS read_include - IMPORTING is_clskey TYPE seoclskey - iv_type TYPE seop_include_ext_app - RETURNING VALUE(rt_source) TYPE seop_source_string. - - - METHODS reduce - CHANGING ct_source TYPE zif_abapgit_definitions=>ty_string_tt. -ENDCLASS. - -CLASS lcl_oo_serializer IMPLEMENTATION. - METHOD serialize_abap_clif_source. - TRY. - rt_source = serialize_abap_new( is_class_key ). - CATCH cx_sy_dyn_call_error. - rt_source = serialize_abap_old( is_class_key ). - ENDTRY. - ENDMETHOD. - - METHOD serialize_abap_old. -* for old ABAP AS versions - DATA: lo_source TYPE REF TO cl_oo_source. - - CREATE OBJECT lo_source - EXPORTING - clskey = is_clskey - EXCEPTIONS - class_not_existing = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from CL_OO_SOURCE' ). - ENDIF. - - lo_source->read( 'A' ). - rt_source = lo_source->get_old_source( ). - remove_signatures( CHANGING ct_source = rt_source ). - - ENDMETHOD. "serialize_abap - - METHOD serialize_abap_new. - - DATA: lo_source TYPE REF TO object, - lo_instance TYPE REF TO object. - -* do not call the class/methods statically, as it will -* give syntax errors on old versions - CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE') - RECEIVING - result = lo_instance. - - CALL METHOD lo_instance->('CREATE_CLIF_SOURCE') - EXPORTING - clif_name = is_clskey-clsname - version = 'A' - RECEIVING - result = lo_source. - - CALL METHOD lo_source->('GET_SOURCE') - IMPORTING - source = rt_source. - - ENDMETHOD. - - METHOD remove_signatures. - -* signatures messes up in CL_OO_SOURCE when deserializing and serializing -* within same session - - DATA: lv_begin TYPE string, - lv_end TYPE string, - lv_remove TYPE sap_bool, - lv_source LIKE LINE OF ct_source. - - "@TODO: Put under test - CONCATENATE '* ------------------------------------' - '---------------------------------------------------+' - INTO lv_begin. - - CONCATENATE '* +------------------------------------------------' - '--------------------------------------' - INTO lv_end. - - lv_remove = abap_false. - LOOP AT ct_source INTO lv_source. - IF lv_source = lv_begin. - lv_remove = abap_true. - ENDIF. - IF lv_remove = abap_true. - DELETE ct_source INDEX sy-tabix. - ENDIF. - IF lv_source = lv_end. - lv_remove = abap_false. - ENDIF. - ENDLOOP. - - ENDMETHOD. "remove_signatures - METHOD reduce. - - DATA: lv_source LIKE LINE OF ct_source, - lv_found TYPE sap_bool. - - -* skip files that only contain the standard comments - lv_found = abap_false. - LOOP AT ct_source INTO lv_source. - IF strlen( lv_source ) >= 3 AND lv_source(3) <> '*"*'. - lv_found = abap_true. - ENDIF. - ENDLOOP. - IF lv_found = abap_false. - CLEAR ct_source[]. - ENDIF. - - ENDMETHOD. "reduce - - METHOD serialize_locals_imp. - - rt_source = read_include( is_clskey = is_clskey - iv_type = seop_ext_class_locals_imp ). - - reduce( CHANGING ct_source = rt_source ). - - ENDMETHOD. "serialize_local - - METHOD serialize_locals_def. - - rt_source = read_include( is_clskey = is_clskey - iv_type = seop_ext_class_locals_def ). - - reduce( CHANGING ct_source = rt_source ). - - ENDMETHOD. "serialize_locals_def - - METHOD read_include. - - DATA: ls_include TYPE progstruc. - - - ASSERT iv_type = seop_ext_class_locals_def - OR iv_type = seop_ext_class_locals_imp - OR iv_type = seop_ext_class_macros - OR iv_type = seop_ext_class_testclasses. - - ls_include-rootname = is_clskey-clsname. - TRANSLATE ls_include-rootname USING ' ='. - ls_include-categorya = iv_type(1). - ls_include-codea = iv_type+1(4). - -* it looks like there is an issue in function module SEO_CLASS_GET_INCLUDE_SOURCE -* on 750 kernels, where the READ REPORT without STATE addition does not -* return the active version, this method is a workaround for this issue - READ REPORT ls_include INTO rt_source STATE 'A'. - - ENDMETHOD. - - METHOD serialize_testclasses. - - rt_source = read_include( is_clskey = is_clskey - iv_type = seop_ext_class_testclasses ). - - mv_skip_testclass = calculate_skip_testclass( rt_source ). - - ENDMETHOD. "serialize_test - - METHOD serialize_macros. - - rt_source = read_include( is_clskey = is_clskey - iv_type = seop_ext_class_macros ). - - reduce( CHANGING ct_source = rt_source ). - - ENDMETHOD. "serialize_macro - - METHOD are_test_classes_skipped. - rv_return = mv_skip_testclass. - ENDMETHOD. - - - METHOD calculate_skip_testclass. - - DATA: lv_line1 LIKE LINE OF it_source, - lv_line2 LIKE LINE OF it_source. - -* when creating classes in Eclipse it automatically generates the -* testclass include, but it is not needed, so skip to avoid -* creating an extra file in the repository. -* Also remove it if the content is manually removed, but -* the class still thinks it contains tests - - rv_skip_testclass = abap_false. - IF lines( it_source ) = 2. - READ TABLE it_source INDEX 1 INTO lv_line1. - ASSERT sy-subrc = 0. - READ TABLE it_source INDEX 2 INTO lv_line2. - ASSERT sy-subrc = 0. - IF strlen( lv_line1 ) >= 3 AND lv_line1(3) = '*"*' AND lv_line2 IS INITIAL. - rv_skip_testclass = abap_true. - ENDIF. - ELSEIF lines( it_source ) = 1. - READ TABLE it_source INDEX 1 INTO lv_line1. - ASSERT sy-subrc = 0. - IF lv_line1 IS INITIAL - OR ( strlen( lv_line1 ) >= 3 AND lv_line1(3) = '*"*' ) - OR ( strlen( lv_line1 ) = 1 AND lv_line1(1) = '*' ). - rv_skip_testclass = abap_true. - ENDIF. - ELSEIF lines( it_source ) = 0. - rv_skip_testclass = abap_true. - ENDIF. - - ENDMETHOD. - -ENDCLASS. - -CLASS lcl_oo_base DEFINITION ABSTRACT. - PUBLIC SECTION. - INTERFACES: lif_oo_object_fnc. - - PRIVATE SECTION. - DATA mv_skip_test_classes TYPE abap_bool. - - METHODS deserialize_abap_source_old - IMPORTING is_clskey TYPE seoclskey - it_source TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception. - - METHODS deserialize_abap_source_new - IMPORTING is_clskey TYPE seoclskey - it_source TYPE zif_abapgit_definitions=>ty_string_tt - RAISING zcx_abapgit_exception - cx_sy_dyn_call_error. -ENDCLASS. - -CLASS lcl_oo_base IMPLEMENTATION. - - METHOD lif_oo_object_fnc~create. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~deserialize_source. - TRY. - deserialize_abap_source_new( - is_clskey = is_key - it_source = it_source ). - CATCH cx_sy_dyn_call_error. - deserialize_abap_source_old( - is_clskey = is_key - it_source = it_source ). - ENDTRY. - ENDMETHOD. - - METHOD lif_oo_object_fnc~generate_locals. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD deserialize_abap_source_old. - "for backwards compatability down to 702 - - DATA: lo_source TYPE REF TO cl_oo_source. - - CREATE OBJECT lo_source - EXPORTING - clskey = is_clskey - EXCEPTIONS - class_not_existing = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from CL_OO_SOURCE' ). - ENDIF. - - TRY. - lo_source->access_permission( seok_access_modify ). - lo_source->set_source( it_source ). - lo_source->save( ). - lo_source->access_permission( seok_access_free ). - CATCH cx_oo_access_permission. - zcx_abapgit_exception=>raise( 'permission error' ). - CATCH cx_oo_source_save_failure. - zcx_abapgit_exception=>raise( 'save failure' ). - ENDTRY. - - ENDMETHOD. - - METHOD deserialize_abap_source_new. - DATA: lo_factory TYPE REF TO object, - lo_source TYPE REF TO object, - lo_settings TYPE REF TO object, - lr_settings TYPE REF TO data. - - FIELD-SYMBOLS TYPE any. - - "Buffer needs to be refreshed, - "otherwise standard SAP CLIF_SOURCE reorder methods alphabetically - CALL FUNCTION 'SEO_BUFFER_INIT'. - CALL FUNCTION 'SEO_BUFFER_REFRESH' - EXPORTING - cifkey = is_clskey - version = seoc_version_inactive. - - CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE') - RECEIVING - result = lo_factory. - - "Enable modification mode to avoid exception CX_OO_ACCESS_PERMISSON when - "dealing with objects in foreign namespaces (namespace role = C) - CALL METHOD lo_factory->('CREATE_SETTINGS') - EXPORTING - modification_mode_enabled = abap_true - RECEIVING - result = lo_settings. - - CREATE DATA lr_settings TYPE REF TO ('IF_OO_CLIF_SOURCE_SETTINGS'). - ASSIGN lr_settings->* TO . - - ?= lo_settings. - - CALL METHOD lo_factory->('CREATE_CLIF_SOURCE') - EXPORTING - clif_name = is_clskey-clsname - settings = - RECEIVING - result = lo_source. - - TRY. - CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~LOCK'). - CATCH cx_oo_access_permission. - zcx_abapgit_exception=>raise( 'source_new, access permission exception' ). - ENDTRY. - - CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~SET_SOURCE') - EXPORTING - source = it_source. - - CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~SAVE'). - - CALL METHOD lo_source->('IF_OO_CLIF_SOURCE~UNLOCK'). - - ENDMETHOD. - - METHOD lif_oo_object_fnc~add_to_activation_list. - zcl_abapgit_objects_activation=>add_item( is_item ). - ENDMETHOD. - - METHOD lif_oo_object_fnc~update_descriptions. - DELETE FROM seocompotx WHERE clsname = is_key-clsname. "#EC CI_SUBRC - INSERT seocompotx FROM TABLE it_descriptions. "#EC CI_SUBRC - ENDMETHOD. - - METHOD lif_oo_object_fnc~insert_text_pool. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~create_sotr. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~create_documentation. - CALL FUNCTION 'DOCU_UPD' - EXPORTING - id = 'CL' - langu = iv_language - object = iv_object_name - TABLES - line = it_lines - EXCEPTIONS - ret_code = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from DOCU_UPD' ). - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_includes. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~exists. - CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK' - EXPORTING - clskey = iv_object_name - EXCEPTIONS - not_specified = 1 - not_existing = 2 - is_interface = 3 - no_text = 4 - inconsistent = 5 - OTHERS = 6. - rv_exists = boolc( sy-subrc <> 2 ). - ENDMETHOD. - - METHOD lif_oo_object_fnc~serialize_abap. - DATA lo_oo_serializer TYPE REF TO lcl_oo_serializer. - CREATE OBJECT lo_oo_serializer. - CASE iv_type. - WHEN seop_ext_class_locals_def. - rt_source = lo_oo_serializer->serialize_locals_def( is_class_key ). - WHEN seop_ext_class_locals_imp. - rt_source = lo_oo_serializer->serialize_locals_imp( is_class_key ). - WHEN seop_ext_class_macros. - rt_source = lo_oo_serializer->serialize_macros( is_class_key ). - WHEN seop_ext_class_testclasses. - rt_source = lo_oo_serializer->serialize_testclasses( is_class_key ). - mv_skip_test_classes = lo_oo_serializer->are_test_classes_skipped( ). - WHEN OTHERS. - rt_source = lo_oo_serializer->serialize_abap_clif_source( is_class_key ). - ENDCASE. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_skip_test_classes. - rv_skip = mv_skip_test_classes. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_class_properties. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_interface_properties. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_text_pool. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_sotr. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_documentation. - DATA: lv_state TYPE dokstate, - lv_object TYPE dokhl-object, - lt_lines TYPE tlinetab. - - lv_object = iv_class_name. - - CALL FUNCTION 'DOCU_GET' - EXPORTING - id = 'CL' - langu = iv_language - object = lv_object - IMPORTING - dokstate = lv_state - TABLES - line = lt_lines - EXCEPTIONS - no_docu_on_screen = 1 - no_docu_self_def = 2 - no_docu_temp = 3 - ret_code = 4 - OTHERS = 5. - IF sy-subrc = 0 AND lv_state = 'R'. - rt_lines = lt_lines. - ELSE. - CLEAR rt_lines. - ENDIF. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_descriptions. - SELECT * FROM seocompotx INTO TABLE rt_descriptions - WHERE clsname = iv_obejct_name - AND descript <> '' - ORDER BY PRIMARY KEY. "#EC CI_SUBRC - ENDMETHOD. - - METHOD lif_oo_object_fnc~delete. - ASSERT 0 = 1. "Subclass responsibility - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_superclass. - SELECT SINGLE refclsname FROM vseoextend INTO rv_superclass - WHERE clsname = iv_classname. - ENDMETHOD. - -ENDCLASS. - -"Backdoor injection for test purposes -CLASS ltcl_oo_factory_injector DEFINITION DEFERRED. - -CLASS lcl_oo_factory DEFINITION - FRIENDS ltcl_oo_factory_injector. - - PUBLIC SECTION. - CLASS-METHODS: - make - IMPORTING - iv_object_type TYPE tadir-object - RETURNING - VALUE(ro_object_oriented_object) TYPE REF TO lif_oo_object_fnc. - PRIVATE SECTION. - CLASS-DATA: - go_object_oriented_object TYPE REF TO lif_oo_object_fnc. -ENDCLASS. -"lcl_object_oriented_factory implementation is in include ZABAPGIT_OBJECT_OO_FACTORY. -"Reason: In this way, clas and intf specific OO functions implementations can be done -"at the own includes. diff --git a/src/zabapgit_object_oo_functions.prog.xml b/src/zabapgit_object_oo_functions.prog.xml deleted file mode 100644 index 7c6960137..000000000 --- a/src/zabapgit_object_oo_functions.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_OO_FUNCTIONS - A - X - S - D$ - I - X - D$S - X - - - - R - Include ZABAPGIT_OBJECT_OO_FUNCTIONS - 36 - - - - - diff --git a/src/zabapgit_object_para.prog.xml b/src/zabapgit_object_para.prog.xml deleted file mode 100644 index 6524a0404..000000000 --- a/src/zabapgit_object_para.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_PARA - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_PARA - 28 - - - - - diff --git a/src/zabapgit_object_pinf.prog.xml b/src/zabapgit_object_pinf.prog.xml deleted file mode 100644 index f670e1a2c..000000000 --- a/src/zabapgit_object_pinf.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_PINF - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_PINF - 28 - - - - - diff --git a/src/zabapgit_object_prag.prog.xml b/src/zabapgit_object_prag.prog.xml deleted file mode 100644 index 04387e60c..000000000 --- a/src/zabapgit_object_prag.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_PRAG - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_PRAG - 20 - - - - - diff --git a/src/zabapgit_object_prog.prog.xml b/src/zabapgit_object_prog.prog.xml deleted file mode 100644 index 63cab6974..000000000 --- a/src/zabapgit_object_prog.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_PROG - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_PROG - 28 - - - - - diff --git a/src/zabapgit_object_samc.prog.abap b/src/zabapgit_object_samc.prog.abap deleted file mode 100644 index 9f078afd7..000000000 --- a/src/zabapgit_object_samc.prog.abap +++ /dev/null @@ -1,40 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SAMC -*&---------------------------------------------------------------------* - -CLASS lcl_object_samc DEFINITION INHERITING FROM lcl_objects_saxx_super FINAL. - - PROTECTED SECTION. - METHODS: - get_persistence_class_name REDEFINITION, - get_data_class_name REDEFINITION, - get_data_structure_name REDEFINITION. - -ENDCLASS. "lcl_object_samc DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_samc IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_samc IMPLEMENTATION. - - METHOD get_data_class_name. - - r_data_class_name = 'CL_AMC_APPLICATION_OBJ_DATA'. - - ENDMETHOD. - - METHOD get_data_structure_name. - - r_data_structure_name = 'AMC_APPLICATION_COMPLETE'. - - ENDMETHOD. - - METHOD get_persistence_class_name. - - r_persistence_class_name = 'CL_AMC_APPLICATION_OBJ_PERS'. - - ENDMETHOD. - -ENDCLASS. "lcl_object_samc IMPLEMENTATION diff --git a/src/zabapgit_object_samc.prog.xml b/src/zabapgit_object_samc.prog.xml deleted file mode 100644 index 861bd3b6b..000000000 --- a/src/zabapgit_object_samc.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SAMC - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SAMC - 28 - - - - - diff --git a/src/zabapgit_object_sapc.prog.abap b/src/zabapgit_object_sapc.prog.abap deleted file mode 100644 index ea9b6053b..000000000 --- a/src/zabapgit_object_sapc.prog.abap +++ /dev/null @@ -1,40 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SAPC -*&---------------------------------------------------------------------* - -CLASS lcl_object_sapc DEFINITION INHERITING FROM lcl_objects_saxx_super FINAL. - - PROTECTED SECTION. - METHODS: - get_persistence_class_name REDEFINITION, - get_data_class_name REDEFINITION, - get_data_structure_name REDEFINITION. - -ENDCLASS. "lcl_object_sAPC DEFINITION - -*----------------------------------------------------------------------* -* CLASS lcl_object_sapc IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_object_sapc IMPLEMENTATION. - - METHOD get_data_class_name. - - r_data_class_name = 'CL_APC_APPLICATION_OBJ_DATA'. - - ENDMETHOD. - - METHOD get_data_structure_name. - - r_data_structure_name = 'APC_APPLICATION_COMPLETE'. - - ENDMETHOD. - - METHOD get_persistence_class_name. - - r_persistence_class_name = 'CL_APC_APPLICATION_OBJ_PERS'. - - ENDMETHOD. - -ENDCLASS. "lcl_object_sAPC IMPLEMENTATION diff --git a/src/zabapgit_object_sapc.prog.xml b/src/zabapgit_object_sapc.prog.xml deleted file mode 100644 index 061aed07b..000000000 --- a/src/zabapgit_object_sapc.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SAPC - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SAPC - 28 - - - - - diff --git a/src/zabapgit_object_serializing.prog.abap b/src/zabapgit_object_serializing.prog.abap deleted file mode 100644 index 8b927fd27..000000000 --- a/src/zabapgit_object_serializing.prog.abap +++ /dev/null @@ -1,81 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include ZABAPGIT_OBJECT_SERIALIZATION -*&---------------------------------------------------------------------* - -* All object serializing classes - -INCLUDE zabapgit_object_acid. -INCLUDE zabapgit_object_auth. -INCLUDE zabapgit_object_oo_functions. -INCLUDE zabapgit_object_clas. -INCLUDE zabapgit_object_clas_new. -INCLUDE zabapgit_object_cmpt. -INCLUDE zabapgit_object_cus0. -INCLUDE zabapgit_object_cus1. -INCLUDE zabapgit_object_cus2. -INCLUDE zabapgit_object_dcls. -INCLUDE zabapgit_object_ddls. -INCLUDE zabapgit_object_ddlx. -INCLUDE zabapgit_object_devc. -INCLUDE zabapgit_object_dial. -INCLUDE zabapgit_object_doct. -INCLUDE zabapgit_object_docv. -INCLUDE zabapgit_object_doma. -INCLUDE zabapgit_object_dtel. -INCLUDE zabapgit_object_dsys. -INCLUDE zabapgit_object_enho. -INCLUDE zabapgit_object_enhs. -INCLUDE zabapgit_object_enqu. -INCLUDE zabapgit_object_ensc. -INCLUDE zabapgit_object_form. -INCLUDE zabapgit_object_fugr. -INCLUDE zabapgit_object_iamu. -INCLUDE zabapgit_object_iarp. -INCLUDE zabapgit_object_iasp. -INCLUDE zabapgit_object_iatu. -INCLUDE zabapgit_object_jobd. -INCLUDE zabapgit_object_intf. -INCLUDE zabapgit_object_msag. -INCLUDE zabapgit_object_nrob. -INCLUDE zabapgit_object_para. -INCLUDE zabapgit_object_pinf. -INCLUDE zabapgit_object_prag. -INCLUDE zabapgit_object_prog. -INCLUDE zabapgit_object_samc. -INCLUDE zabapgit_object_sapc. -INCLUDE zabapgit_object_sfbf. -INCLUDE zabapgit_object_sfbs. -INCLUDE zabapgit_object_sfpf. -INCLUDE zabapgit_object_sfpi. -INCLUDE zabapgit_object_sfsw. -INCLUDE zabapgit_object_shi3. -INCLUDE zabapgit_object_shi5. -INCLUDE zabapgit_object_shi8. -INCLUDE zabapgit_object_shlp. -INCLUDE zabapgit_object_shma. -INCLUDE zabapgit_object_sicf. -INCLUDE zabapgit_object_smim. -INCLUDE zabapgit_object_splo. -INCLUDE zabapgit_object_srfc. -INCLUDE zabapgit_object_ssfo. -INCLUDE zabapgit_object_ssst. -INCLUDE zabapgit_object_styl. -INCLUDE zabapgit_object_susc. -INCLUDE zabapgit_object_suso. -INCLUDE zabapgit_object_sxci. -INCLUDE zabapgit_object_tabl_valid. -INCLUDE zabapgit_object_tabl. -INCLUDE zabapgit_object_tobj. -INCLUDE zabapgit_object_tran. -INCLUDE zabapgit_object_ttyp. -INCLUDE zabapgit_object_type. -INCLUDE zabapgit_object_ucsa. -INCLUDE zabapgit_object_vcls. -INCLUDE zabapgit_object_view. -INCLUDE zabapgit_object_w3xx. -INCLUDE zabapgit_object_wapa. -INCLUDE zabapgit_object_wdya. -INCLUDE zabapgit_object_wdyn. -INCLUDE zabapgit_object_webi. -INCLUDE zabapgit_object_xslt. -INCLUDE zabapgit_object_oo_factory. diff --git a/src/zabapgit_object_serializing.prog.xml b/src/zabapgit_object_serializing.prog.xml deleted file mode 100644 index fde95641c..000000000 --- a/src/zabapgit_object_serializing.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SERIALIZING - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SERIALIZATION - 37 - - - - - diff --git a/src/zabapgit_object_sfbf.prog.xml b/src/zabapgit_object_sfbf.prog.xml deleted file mode 100644 index 76e5ac9d8..000000000 --- a/src/zabapgit_object_sfbf.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SFBF - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SFBF - 28 - - - - - diff --git a/src/zabapgit_object_sfbs.prog.xml b/src/zabapgit_object_sfbs.prog.xml deleted file mode 100644 index c4b4957d6..000000000 --- a/src/zabapgit_object_sfbs.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SFBS - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SFBS - 28 - - - - - diff --git a/src/zabapgit_object_sfpf.prog.xml b/src/zabapgit_object_sfpf.prog.xml deleted file mode 100644 index bfd12fb70..000000000 --- a/src/zabapgit_object_sfpf.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SFPF - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DOMA - 28 - - - - - diff --git a/src/zabapgit_object_sfpi.prog.xml b/src/zabapgit_object_sfpi.prog.xml deleted file mode 100644 index 15fde47e5..000000000 --- a/src/zabapgit_object_sfpi.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SFPI - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_DOMA - 28 - - - - - diff --git a/src/zabapgit_object_sfsw.prog.xml b/src/zabapgit_object_sfsw.prog.xml deleted file mode 100644 index 6096a8269..000000000 --- a/src/zabapgit_object_sfsw.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SFSW - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SFSW - 28 - - - - - diff --git a/src/zabapgit_object_shi3.prog.xml b/src/zabapgit_object_shi3.prog.xml deleted file mode 100644 index 80b375e9d..000000000 --- a/src/zabapgit_object_shi3.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SHI3 - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SHI3 - 28 - - - - - diff --git a/src/zabapgit_object_shi5.prog.xml b/src/zabapgit_object_shi5.prog.xml deleted file mode 100644 index 41f3d5bf7..000000000 --- a/src/zabapgit_object_shi5.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SHI5 - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_SHI5 - 20 - - - - - diff --git a/src/zabapgit_object_shi8.prog.xml b/src/zabapgit_object_shi8.prog.xml deleted file mode 100644 index cfa894460..000000000 --- a/src/zabapgit_object_shi8.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SHI8 - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_SHI8 - 20 - - - - - diff --git a/src/zabapgit_object_shlp.prog.xml b/src/zabapgit_object_shlp.prog.xml deleted file mode 100644 index 9bd3083e4..000000000 --- a/src/zabapgit_object_shlp.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SHLP - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SHLP - 28 - - - - - diff --git a/src/zabapgit_object_shma.prog.xml b/src/zabapgit_object_shma.prog.xml deleted file mode 100644 index aa960866e..000000000 --- a/src/zabapgit_object_shma.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SHMA - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_SHMA - 20 - - - - - diff --git a/src/zabapgit_object_sicf.prog.xml b/src/zabapgit_object_sicf.prog.xml deleted file mode 100644 index 0af1dfc8c..000000000 --- a/src/zabapgit_object_sicf.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SICF - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SICF - 28 - - - - - diff --git a/src/zabapgit_object_smim.prog.xml b/src/zabapgit_object_smim.prog.xml deleted file mode 100644 index ecdeb3942..000000000 --- a/src/zabapgit_object_smim.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SMIM - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SMIM - 28 - - - - - diff --git a/src/zabapgit_object_splo.prog.xml b/src/zabapgit_object_splo.prog.xml deleted file mode 100644 index af48a7774..000000000 --- a/src/zabapgit_object_splo.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SPLO - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SPLO - 28 - - - - - diff --git a/src/zabapgit_object_srfc.prog.xml b/src/zabapgit_object_srfc.prog.xml deleted file mode 100644 index d6857bb18..000000000 --- a/src/zabapgit_object_srfc.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SRFC - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_SRFC - 20 - - - - - diff --git a/src/zabapgit_object_ssfo.prog.xml b/src/zabapgit_object_ssfo.prog.xml deleted file mode 100644 index c3a33beef..000000000 --- a/src/zabapgit_object_ssfo.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SSFO - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SSFO - 28 - - - - - diff --git a/src/zabapgit_object_ssst.prog.xml b/src/zabapgit_object_ssst.prog.xml deleted file mode 100644 index 35653ad0f..000000000 --- a/src/zabapgit_object_ssst.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SSST - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SSST - 28 - - - - - diff --git a/src/zabapgit_object_styl.prog.xml b/src/zabapgit_object_styl.prog.xml deleted file mode 100644 index e3ea43fdf..000000000 --- a/src/zabapgit_object_styl.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_STYL - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_STYL - 28 - - - - - diff --git a/src/zabapgit_object_susc.prog.xml b/src/zabapgit_object_susc.prog.xml deleted file mode 100644 index ec145a928..000000000 --- a/src/zabapgit_object_susc.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SUSC - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SUSC - 28 - - - - - diff --git a/src/zabapgit_object_suso.prog.xml b/src/zabapgit_object_suso.prog.xml deleted file mode 100644 index 6c50ceeb2..000000000 --- a/src/zabapgit_object_suso.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SUSO - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_SUSO - 28 - - - - - diff --git a/src/zabapgit_object_sxci.prog.xml b/src/zabapgit_object_sxci.prog.xml deleted file mode 100644 index 40e0cedbb..000000000 --- a/src/zabapgit_object_sxci.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_SXCI - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_SXCI - 20 - - - - - diff --git a/src/zabapgit_object_tabl.prog.xml b/src/zabapgit_object_tabl.prog.xml deleted file mode 100644 index 8f6de638d..000000000 --- a/src/zabapgit_object_tabl.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_TABL - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TABL - 28 - - - - - diff --git a/src/zabapgit_object_tabl_valid.prog.abap b/src/zabapgit_object_tabl_valid.prog.abap deleted file mode 100644 index 20c2d2108..000000000 --- a/src/zabapgit_object_tabl_valid.prog.abap +++ /dev/null @@ -1,221 +0,0 @@ -*&---------------------------------------------------------------------* -*& Include zabapgit_object_tabl_valid -*&---------------------------------------------------------------------* - -CLASS lcl_object_tabl_valid DEFINITION FINAL. - PUBLIC SECTION. - METHODS validate - IMPORTING - io_remote_version TYPE REF TO zcl_abapgit_xml_input - io_local_version TYPE REF TO zcl_abapgit_xml_input - RETURNING - VALUE(rv_message) TYPE string - RAISING - zcx_abapgit_exception. -ENDCLASS. - -CLASS lcl_tabl_valid_dialog DEFINITION FINAL. - PUBLIC SECTION. - METHODS: - constructor - IMPORTING - iv_message TYPE string. - INTERFACES: zif_abapgit_comparison_result. - - PRIVATE SECTION. - DATA mv_message TYPE string. - DATA mv_halt TYPE string. -ENDCLASS. - -CLASS lcl_object_tabl_valid IMPLEMENTATION. - - METHOD validate. - DATA: lt_previous_table_fields TYPE TABLE OF dd03p, - ls_previous_table_field LIKE LINE OF lt_previous_table_fields, - lt_current_table_fields TYPE TABLE OF dd03p, - ls_current_table_field LIKE LINE OF lt_current_table_fields. - io_remote_version->read( - EXPORTING - iv_name = 'DD03P_TABLE' - CHANGING - cg_data = lt_previous_table_fields ). - io_local_version->read( - EXPORTING - iv_name = 'DD03P_TABLE' - CHANGING - cg_data = lt_current_table_fields ). - - LOOP AT lt_previous_table_fields INTO ls_previous_table_field. - READ TABLE lt_current_table_fields WITH KEY fieldname = ls_previous_table_field-fieldname - INTO ls_current_table_field. - IF sy-subrc = 0. - IF ls_current_table_field-rollname <> ls_previous_table_field-rollname. - rv_message = 'Fields were changed. This may lead to inconsistencies.'. - ENDIF. - ELSE. - rv_message = 'Fields were changed. This may lead to inconsistencies.'. - ENDIF. - ENDLOOP. - ENDMETHOD. - -ENDCLASS. - -CLASS lcl_tabl_valid_dialog IMPLEMENTATION. - METHOD constructor. - mv_message = iv_message. - ENDMETHOD. - - METHOD zif_abapgit_comparison_result~is_result_complete_halt. - rv_response = mv_halt. - ENDMETHOD. - - METHOD zif_abapgit_comparison_result~show_confirmation_dialog. - DATA lv_answer TYPE string. - TRY. - lv_answer = lcl_popups=>popup_to_confirm( - titlebar = 'Warning' - text_question = mv_message - text_button_1 = 'Abort' - icon_button_1 = 'ICON_CANCEL' - text_button_2 = 'Pull anyway' - icon_button_2 = 'ICON_OKAY' - default_button = '2' - display_cancel_button = abap_false ). - CATCH zcx_abapgit_exception. - mv_halt = abap_true. - ENDTRY. - - IF lv_answer = 1. - mv_halt = abap_true. - ENDIF. - ENDMETHOD. -ENDCLASS. - - -CLASS ltcl_table_validation DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. - PRIVATE SECTION. - METHODS: - setup, - type_changed FOR TESTING RAISING zcx_abapgit_exception, - no_type_changes FOR TESTING RAISING zcx_abapgit_exception, - field_not_found FOR TESTING RAISING zcx_abapgit_exception, - no_fields_no_message FOR TESTING RAISING zcx_abapgit_exception, - create_xmls - RAISING - zcx_abapgit_exception. - - DATA: mo_table_validator TYPE REF TO lcl_object_tabl_valid, - mo_previous_version_out_xml TYPE REF TO zcl_abapgit_xml_output, - mo_previous_version_input_xml TYPE REF TO zcl_abapgit_xml_input, - mo_current_version_out_xml TYPE REF TO zcl_abapgit_xml_output, - mo_current_version_input_xml TYPE REF TO zcl_abapgit_xml_input, - mt_previous_table_fields TYPE TABLE OF dd03p, - mt_current_table_fields TYPE TABLE OF dd03p, - mv_validation_message TYPE string. - -ENDCLASS. - -CLASS ltcl_table_validation IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_table_validator. - ENDMETHOD. - METHOD type_changed. - DATA: - ls_previous_table_field LIKE LINE OF mt_previous_table_fields, - ls_current_table_field LIKE LINE OF mt_current_table_fields. - - ls_previous_table_field-fieldname = 'FIELD1'. - ls_previous_table_field-rollname = 'INT4'. - APPEND ls_previous_table_field TO mt_previous_table_fields. - - ls_current_table_field-fieldname = 'FIELD1'. - ls_current_table_field-rollname = 'CHAR30'. - APPEND ls_current_table_field TO mt_current_table_fields. - - create_xmls( ). - - mv_validation_message = mo_table_validator->validate( - io_remote_version = mo_previous_version_input_xml - io_local_version = mo_current_version_input_xml ). - - cl_abap_unit_assert=>assert_equals( - act = mv_validation_message - exp = 'Fields were changed. This may lead to inconsistencies.' ). - ENDMETHOD. - - METHOD no_type_changes. - DATA: - ls_previous_table_field LIKE LINE OF mt_previous_table_fields. - - ls_previous_table_field-fieldname = 'FIELD1'. - ls_previous_table_field-rollname = 'INT4'. - APPEND ls_previous_table_field TO mt_previous_table_fields. - - mt_current_table_fields = mt_previous_table_fields. - - create_xmls( ). - - mv_validation_message = mo_table_validator->validate( - io_remote_version = mo_previous_version_input_xml - io_local_version = mo_current_version_input_xml ). - - cl_abap_unit_assert=>assert_equals( - act = mv_validation_message - exp = '' ). - ENDMETHOD. - - METHOD field_not_found. - DATA: - ls_previous_table_field LIKE LINE OF mt_previous_table_fields, - ls_current_table_field LIKE LINE OF mt_current_table_fields. - - ls_previous_table_field-fieldname = 'FIELD1'. - ls_previous_table_field-rollname = 'INT4'. - APPEND ls_previous_table_field TO mt_previous_table_fields. - - ls_current_table_field-fieldname = 'ANOTHER_FIELD'. - ls_current_table_field-rollname = 'CHAR30'. - APPEND ls_current_table_field TO mt_current_table_fields. - - create_xmls( ). - - mv_validation_message = mo_table_validator->validate( - io_remote_version = mo_previous_version_input_xml - io_local_version = mo_current_version_input_xml ). - - cl_abap_unit_assert=>assert_equals( - act = mv_validation_message - exp = 'Fields were changed. This may lead to inconsistencies.' ). - ENDMETHOD. - - METHOD no_fields_no_message. - create_xmls( ). - - mv_validation_message = mo_table_validator->validate( - io_remote_version = mo_previous_version_input_xml - io_local_version = mo_current_version_input_xml ). - - cl_abap_unit_assert=>assert_initial( mv_validation_message ). - ENDMETHOD. - - METHOD create_xmls. - CREATE OBJECT mo_previous_version_out_xml. - mo_previous_version_out_xml->add( - iv_name = 'DD03P_TABLE' - ig_data = mt_previous_table_fields ). - - CREATE OBJECT mo_previous_version_input_xml - EXPORTING - iv_xml = mo_previous_version_out_xml->render( ). - - CREATE OBJECT mo_current_version_out_xml. - mo_current_version_out_xml->add( - iv_name = 'DD03P_TABLE' - ig_data = mt_current_table_fields ). - - CREATE OBJECT mo_current_version_input_xml - EXPORTING - iv_xml = mo_current_version_out_xml->render( ). - ENDMETHOD. - -ENDCLASS. diff --git a/src/zabapgit_object_tabl_valid.prog.xml b/src/zabapgit_object_tabl_valid.prog.xml deleted file mode 100644 index 5198ea961..000000000 --- a/src/zabapgit_object_tabl_valid.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_TABL_VALID - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TABL_VALID - 34 - - - - - diff --git a/src/zabapgit_object_tobj.prog.xml b/src/zabapgit_object_tobj.prog.xml deleted file mode 100644 index 7a70a2b7a..000000000 --- a/src/zabapgit_object_tobj.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_TOBJ - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TOBJ - 28 - - - - - diff --git a/src/zabapgit_object_tran.prog.xml b/src/zabapgit_object_tran.prog.xml deleted file mode 100644 index 90022ad92..000000000 --- a/src/zabapgit_object_tran.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_TRAN - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TRAN - 28 - - - - - diff --git a/src/zabapgit_object_ttyp.prog.xml b/src/zabapgit_object_ttyp.prog.xml deleted file mode 100644 index 8f41a7b2d..000000000 --- a/src/zabapgit_object_ttyp.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_TTYP - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TTYP - 28 - - - - - diff --git a/src/zabapgit_object_type.prog.xml b/src/zabapgit_object_type.prog.xml deleted file mode 100644 index aeb879eb0..000000000 --- a/src/zabapgit_object_type.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_TYPE - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TYPE - 28 - - - - - diff --git a/src/zabapgit_object_ucsa.prog.xml b/src/zabapgit_object_ucsa.prog.xml deleted file mode 100644 index 028613ea3..000000000 --- a/src/zabapgit_object_ucsa.prog.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_UCSA - A - X - S - D$ - I - X - D$S - X - - - - R - ZABAPGIT_OBJECT_UCSA - 20 - - - - - diff --git a/src/zabapgit_object_vcls.prog.xml b/src/zabapgit_object_vcls.prog.xml deleted file mode 100644 index 43e48849b..000000000 --- a/src/zabapgit_object_vcls.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_VCLS - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_VCLS - 28 - - - - - diff --git a/src/zabapgit_object_view.prog.xml b/src/zabapgit_object_view.prog.xml deleted file mode 100644 index bd95ce1c0..000000000 --- a/src/zabapgit_object_view.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_VIEW - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_VIEW - 28 - - - - - diff --git a/src/zabapgit_object_w3xx.prog.xml b/src/zabapgit_object_w3xx.prog.xml deleted file mode 100644 index 1f67e528b..000000000 --- a/src/zabapgit_object_w3xx.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_W3XX - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_W3XX - 28 - - - - - diff --git a/src/zabapgit_object_wapa.prog.xml b/src/zabapgit_object_wapa.prog.xml deleted file mode 100644 index edd9ae545..000000000 --- a/src/zabapgit_object_wapa.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_WAPA - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_TRAN - 28 - - - - - diff --git a/src/zabapgit_object_wdya.prog.xml b/src/zabapgit_object_wdya.prog.xml deleted file mode 100644 index 65ce6f1b2..000000000 --- a/src/zabapgit_object_wdya.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_WDYA - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_WDYA - 28 - - - - - diff --git a/src/zabapgit_object_wdyn.prog.xml b/src/zabapgit_object_wdyn.prog.xml deleted file mode 100644 index 119f8e2d2..000000000 --- a/src/zabapgit_object_wdyn.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_WDYN - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_WDYN - 28 - - - - - diff --git a/src/zabapgit_object_webi.prog.xml b/src/zabapgit_object_webi.prog.xml deleted file mode 100644 index 3d7cd0b72..000000000 --- a/src/zabapgit_object_webi.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_WEBI - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_WEBI - 28 - - - - - diff --git a/src/zabapgit_object_xslt.prog.xml b/src/zabapgit_object_xslt.prog.xml deleted file mode 100644 index 200b754aa..000000000 --- a/src/zabapgit_object_xslt.prog.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ZABAPGIT_OBJECT_XSLT - A - X - I - E - X - - - - R - Include ZABAPGIT_OBJECT_XSLT - 28 - - - - - diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index 12891fa10..870906ef2 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -2,88 +2,88 @@ *& Include ZABAPGIT_OBJECTS *&---------------------------------------------------------------------* -"Null Object Pattern -CLASS lcl_comparison_null DEFINITION FINAL. - PUBLIC SECTION. - INTERFACES zif_abapgit_comparison_result. -ENDCLASS. - -CLASS lcl_comparison_null IMPLEMENTATION. - - METHOD zif_abapgit_comparison_result~is_result_complete_halt. - rv_response = abap_false. - ENDMETHOD. - - METHOD zif_abapgit_comparison_result~show_confirmation_dialog. - RETURN. - ENDMETHOD. - -ENDCLASS. +*"Null Object Pattern +*CLASS lcl_comparison_null DEFINITION FINAL. +* PUBLIC SECTION. +* INTERFACES zif_abapgit_comparison_result. +*ENDCLASS. +* +*CLASS lcl_comparison_null IMPLEMENTATION. +* +* METHOD zif_abapgit_comparison_result~is_result_complete_halt. +* rv_response = abap_false. +* ENDMETHOD. +* +* METHOD zif_abapgit_comparison_result~show_confirmation_dialog. +* RETURN. +* ENDMETHOD. +* +*ENDCLASS. *----------------------------------------------------------------------* * CLASS lcl_objects_super DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* -CLASS lcl_objects_super DEFINITION ABSTRACT. - - PUBLIC SECTION. - - METHODS: - constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - iv_language TYPE spras. - - CLASS-METHODS: - jump_adt - IMPORTING i_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name - i_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type - RAISING zcx_abapgit_exception. - - CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'. - - PROTECTED SECTION. - - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, - mv_language TYPE spras. - - METHODS: - check_timestamp - IMPORTING - iv_timestamp TYPE timestamp - iv_date TYPE datum - iv_time TYPE uzeit - RETURNING - VALUE(rv_changed) TYPE abap_bool, - get_metadata - RETURNING VALUE(rs_metadata) TYPE zif_abapgit_definitions=>ty_metadata, - corr_insert - IMPORTING iv_package TYPE devclass - RAISING zcx_abapgit_exception, - tadir_insert - IMPORTING iv_package TYPE devclass - RAISING zcx_abapgit_exception, - jump_se11 - IMPORTING iv_radio TYPE string - iv_field TYPE string - RAISING zcx_abapgit_exception. - - PRIVATE SECTION. - - CLASS-METHODS: - is_adt_jump_possible - IMPORTING io_object TYPE REF TO cl_wb_object - io_adt TYPE REF TO object - RETURNING VALUE(r_is_adt_jump_possible) TYPE abap_bool - RAISING zcx_abapgit_exception. - -ENDCLASS. "lcl_objects_super DEFINITION +*CLASS lcl_objects_super DEFINITION ABSTRACT. +* +* PUBLIC SECTION. +* +* METHODS: +* constructor +* IMPORTING +* is_item TYPE zif_abapgit_definitions=>ty_item +* iv_language TYPE spras. +* +* CLASS-METHODS: +* jump_adt +* IMPORTING i_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name +* i_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type +* RAISING zcx_abapgit_exception. +* +* CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'. +* +* PROTECTED SECTION. +* +* DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, +* mv_language TYPE spras. +* +* METHODS: +* check_timestamp +* IMPORTING +* iv_timestamp TYPE timestamp +* iv_date TYPE datum +* iv_time TYPE uzeit +* RETURNING +* VALUE(rv_changed) TYPE abap_bool, +* get_metadata +* RETURNING VALUE(rs_metadata) TYPE zif_abapgit_definitions=>ty_metadata, +* corr_insert +* IMPORTING iv_package TYPE devclass +* RAISING zcx_abapgit_exception, +* tadir_insert +* IMPORTING iv_package TYPE devclass +* RAISING zcx_abapgit_exception, +* jump_se11 +* IMPORTING iv_radio TYPE string +* iv_field TYPE string +* RAISING zcx_abapgit_exception. +* +* PRIVATE SECTION. +* +* CLASS-METHODS: +* is_adt_jump_possible +* IMPORTING io_object TYPE REF TO cl_wb_object +* io_adt TYPE REF TO object +* RETURNING VALUE(r_is_adt_jump_possible) TYPE abap_bool +* RAISING zcx_abapgit_exception. +* +*ENDCLASS. "lcl_objects_super DEFINITION ********************************************************************** * Enable plugins -CLASS lcl_objects_bridge DEFINITION INHERITING FROM lcl_objects_super FINAL. +CLASS lcl_objects_bridge DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. @@ -264,1477 +264,1477 @@ CLASS lcl_objects_bridge IMPLEMENTATION. ENDMETHOD. "class_constructor METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null. ENDMETHOD. ENDCLASS. "lcl_objects_bridge IMPLEMENTATION ********************************************************************** -CLASS lcl_objects_program DEFINITION INHERITING FROM lcl_objects_super. - - PUBLIC SECTION. - TYPES: BEGIN OF ty_progdir, - name TYPE progdir-name, - state TYPE progdir-state, - sqlx TYPE progdir-sqlx, - edtx TYPE progdir-edtx, - varcl TYPE progdir-varcl, - dbapl TYPE progdir-dbapl, - dbna TYPE progdir-dbna, - clas TYPE progdir-clas, - type TYPE progdir-type, - occurs TYPE progdir-occurs, - subc TYPE progdir-subc, - appl TYPE progdir-appl, - secu TYPE progdir-secu, - cnam TYPE progdir-cnam, - cdat TYPE progdir-cdat, - unam TYPE progdir-unam, - udat TYPE progdir-udat, - vern TYPE progdir-vern, - levl TYPE progdir-levl, - rstat TYPE progdir-rstat, - rmand TYPE progdir-rmand, - rload TYPE progdir-rload, - fixpt TYPE progdir-fixpt, - sset TYPE progdir-sset, - sdate TYPE progdir-sdate, - stime TYPE progdir-stime, - idate TYPE progdir-idate, - itime TYPE progdir-itime, - ldbname TYPE progdir-ldbname, - uccheck TYPE progdir-uccheck, - END OF ty_progdir. - - METHODS serialize_program - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output OPTIONAL - is_item TYPE zif_abapgit_definitions=>ty_item - io_files TYPE REF TO zcl_abapgit_objects_files - iv_program TYPE programm OPTIONAL - iv_extra TYPE clike OPTIONAL - RAISING zcx_abapgit_exception. - - METHODS read_progdir - IMPORTING iv_program TYPE programm - RETURNING VALUE(rs_progdir) TYPE ty_progdir. - - METHODS deserialize_program - IMPORTING is_progdir TYPE ty_progdir - it_source TYPE abaptxt255_tab - it_tpool TYPE textpool_table - iv_package TYPE devclass - RAISING zcx_abapgit_exception. - - PROTECTED SECTION. - - TYPES: ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY. - - TYPES: BEGIN OF ty_dynpro, - header TYPE rpy_dyhead, - containers TYPE dycatt_tab, - fields TYPE dyfatc_tab, - flow_logic TYPE swydyflow, - spaces TYPE ty_spaces_tt, - END OF ty_dynpro. - - TYPES: ty_dynpro_tt TYPE STANDARD TABLE OF ty_dynpro WITH DEFAULT KEY. - - TYPES: BEGIN OF ty_cua, - adm TYPE rsmpe_adm, - sta TYPE STANDARD TABLE OF rsmpe_stat WITH DEFAULT KEY, - fun TYPE STANDARD TABLE OF rsmpe_funt WITH DEFAULT KEY, - men TYPE STANDARD TABLE OF rsmpe_men WITH DEFAULT KEY, - mtx TYPE STANDARD TABLE OF rsmpe_mnlt WITH DEFAULT KEY, - act TYPE STANDARD TABLE OF rsmpe_act WITH DEFAULT KEY, - but TYPE STANDARD TABLE OF rsmpe_but WITH DEFAULT KEY, - pfk TYPE STANDARD TABLE OF rsmpe_pfk WITH DEFAULT KEY, - set TYPE STANDARD TABLE OF rsmpe_staf WITH DEFAULT KEY, - doc TYPE STANDARD TABLE OF rsmpe_atrt WITH DEFAULT KEY, - tit TYPE STANDARD TABLE OF rsmpe_titt WITH DEFAULT KEY, - biv TYPE STANDARD TABLE OF rsmpe_buts WITH DEFAULT KEY, - END OF ty_cua. - - METHODS serialize_dynpros - IMPORTING iv_program_name TYPE programm - RETURNING VALUE(rt_dynpro) TYPE ty_dynpro_tt - RAISING zcx_abapgit_exception. - - METHODS serialize_cua - IMPORTING iv_program_name TYPE programm - RETURNING VALUE(rs_cua) TYPE ty_cua - RAISING zcx_abapgit_exception. - - METHODS deserialize_dynpros - IMPORTING it_dynpros TYPE ty_dynpro_tt - RAISING zcx_abapgit_exception. - - METHODS deserialize_textpool - IMPORTING iv_program TYPE programm - it_tpool TYPE textpool_table - iv_language TYPE langu OPTIONAL - iv_is_include TYPE abap_bool DEFAULT abap_false - RAISING zcx_abapgit_exception. - - METHODS deserialize_cua - IMPORTING iv_program_name TYPE programm - is_cua TYPE ty_cua - RAISING zcx_abapgit_exception. - - METHODS check_prog_changed_since - IMPORTING iv_program TYPE programm - iv_timestamp TYPE timestamp - iv_skip_gui TYPE abap_bool DEFAULT abap_false - RETURNING VALUE(rv_changed) TYPE abap_bool. - - CLASS-METHODS: - add_tpool - IMPORTING it_tpool TYPE textpool_table - RETURNING VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt, - read_tpool - IMPORTING it_tpool TYPE zif_abapgit_definitions=>ty_tpool_tt - RETURNING VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt. - - PRIVATE SECTION. - METHODS: - condense_flow - EXPORTING et_spaces TYPE ty_spaces_tt - CHANGING ct_flow TYPE swydyflow, - uncondense_flow - IMPORTING it_flow TYPE swydyflow - it_spaces TYPE ty_spaces_tt - RETURNING VALUE(rt_flow) TYPE swydyflow. - - -ENDCLASS. "lcl_objects_program DEFINITION +*CLASS lcl_objects_program DEFINITION INHERITING FROM lcl_objects_super. +* +* PUBLIC SECTION. +* TYPES: BEGIN OF ty_progdir, +* name TYPE progdir-name, +* state TYPE progdir-state, +* sqlx TYPE progdir-sqlx, +* edtx TYPE progdir-edtx, +* varcl TYPE progdir-varcl, +* dbapl TYPE progdir-dbapl, +* dbna TYPE progdir-dbna, +* clas TYPE progdir-clas, +* type TYPE progdir-type, +* occurs TYPE progdir-occurs, +* subc TYPE progdir-subc, +* appl TYPE progdir-appl, +* secu TYPE progdir-secu, +* cnam TYPE progdir-cnam, +* cdat TYPE progdir-cdat, +* unam TYPE progdir-unam, +* udat TYPE progdir-udat, +* vern TYPE progdir-vern, +* levl TYPE progdir-levl, +* rstat TYPE progdir-rstat, +* rmand TYPE progdir-rmand, +* rload TYPE progdir-rload, +* fixpt TYPE progdir-fixpt, +* sset TYPE progdir-sset, +* sdate TYPE progdir-sdate, +* stime TYPE progdir-stime, +* idate TYPE progdir-idate, +* itime TYPE progdir-itime, +* ldbname TYPE progdir-ldbname, +* uccheck TYPE progdir-uccheck, +* END OF ty_progdir. +* +* METHODS serialize_program +* IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output OPTIONAL +* is_item TYPE zif_abapgit_definitions=>ty_item +* io_files TYPE REF TO zcl_abapgit_objects_files +* iv_program TYPE programm OPTIONAL +* iv_extra TYPE clike OPTIONAL +* RAISING zcx_abapgit_exception. +* +* METHODS read_progdir +* IMPORTING iv_program TYPE programm +* RETURNING VALUE(rs_progdir) TYPE ty_progdir. +* +* METHODS deserialize_program +* IMPORTING is_progdir TYPE ty_progdir +* it_source TYPE abaptxt255_tab +* it_tpool TYPE textpool_table +* iv_package TYPE devclass +* RAISING zcx_abapgit_exception. +* +* PROTECTED SECTION. +* +* TYPES: ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY. +* +* TYPES: BEGIN OF ty_dynpro, +* header TYPE rpy_dyhead, +* containers TYPE dycatt_tab, +* fields TYPE dyfatc_tab, +* flow_logic TYPE swydyflow, +* spaces TYPE ty_spaces_tt, +* END OF ty_dynpro. +* +* TYPES: ty_dynpro_tt TYPE STANDARD TABLE OF ty_dynpro WITH DEFAULT KEY. +* +* TYPES: BEGIN OF ty_cua, +* adm TYPE rsmpe_adm, +* sta TYPE STANDARD TABLE OF rsmpe_stat WITH DEFAULT KEY, +* fun TYPE STANDARD TABLE OF rsmpe_funt WITH DEFAULT KEY, +* men TYPE STANDARD TABLE OF rsmpe_men WITH DEFAULT KEY, +* mtx TYPE STANDARD TABLE OF rsmpe_mnlt WITH DEFAULT KEY, +* act TYPE STANDARD TABLE OF rsmpe_act WITH DEFAULT KEY, +* but TYPE STANDARD TABLE OF rsmpe_but WITH DEFAULT KEY, +* pfk TYPE STANDARD TABLE OF rsmpe_pfk WITH DEFAULT KEY, +* set TYPE STANDARD TABLE OF rsmpe_staf WITH DEFAULT KEY, +* doc TYPE STANDARD TABLE OF rsmpe_atrt WITH DEFAULT KEY, +* tit TYPE STANDARD TABLE OF rsmpe_titt WITH DEFAULT KEY, +* biv TYPE STANDARD TABLE OF rsmpe_buts WITH DEFAULT KEY, +* END OF ty_cua. +* +* METHODS serialize_dynpros +* IMPORTING iv_program_name TYPE programm +* RETURNING VALUE(rt_dynpro) TYPE ty_dynpro_tt +* RAISING zcx_abapgit_exception. +* +* METHODS serialize_cua +* IMPORTING iv_program_name TYPE programm +* RETURNING VALUE(rs_cua) TYPE ty_cua +* RAISING zcx_abapgit_exception. +* +* METHODS deserialize_dynpros +* IMPORTING it_dynpros TYPE ty_dynpro_tt +* RAISING zcx_abapgit_exception. +* +* METHODS deserialize_textpool +* IMPORTING iv_program TYPE programm +* it_tpool TYPE textpool_table +* iv_language TYPE langu OPTIONAL +* iv_is_include TYPE abap_bool DEFAULT abap_false +* RAISING zcx_abapgit_exception. +* +* METHODS deserialize_cua +* IMPORTING iv_program_name TYPE programm +* is_cua TYPE ty_cua +* RAISING zcx_abapgit_exception. +* +* METHODS check_prog_changed_since +* IMPORTING iv_program TYPE programm +* iv_timestamp TYPE timestamp +* iv_skip_gui TYPE abap_bool DEFAULT abap_false +* RETURNING VALUE(rv_changed) TYPE abap_bool. +* +* CLASS-METHODS: +* add_tpool +* IMPORTING it_tpool TYPE textpool_table +* RETURNING VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt, +* read_tpool +* IMPORTING it_tpool TYPE zif_abapgit_definitions=>ty_tpool_tt +* RETURNING VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt. +* +* PRIVATE SECTION. +* METHODS: +* condense_flow +* EXPORTING et_spaces TYPE ty_spaces_tt +* CHANGING ct_flow TYPE swydyflow, +* uncondense_flow +* IMPORTING it_flow TYPE swydyflow +* it_spaces TYPE ty_spaces_tt +* RETURNING VALUE(rt_flow) TYPE swydyflow. +* +* +*ENDCLASS. "lcl_objects_program DEFINITION *----------------------------------------------------------------------* * CLASS lcl_objects_program IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* -CLASS lcl_objects_program IMPLEMENTATION. - - METHOD condense_flow. - - DATA: lv_spaces LIKE LINE OF et_spaces. - - FIELD-SYMBOLS: LIKE LINE OF ct_flow. - - - CLEAR et_spaces. - - LOOP AT ct_flow ASSIGNING . - lv_spaces = 0. - - WHILE NOT -line IS INITIAL AND -line(1) = space. - lv_spaces = lv_spaces + 1. - -line = -line+1. - ENDWHILE. - - APPEND lv_spaces TO et_spaces. - ENDLOOP. - - ENDMETHOD. - - METHOD uncondense_flow. - - DATA: lv_spaces LIKE LINE OF it_spaces. - - FIELD-SYMBOLS: LIKE LINE OF it_flow, - LIKE LINE OF rt_flow. - - - LOOP AT it_flow ASSIGNING . - APPEND INITIAL LINE TO rt_flow ASSIGNING . - -line = -line. - - READ TABLE it_spaces INDEX sy-tabix INTO lv_spaces. - IF sy-subrc = 0. - SHIFT -line RIGHT BY lv_spaces PLACES IN CHARACTER MODE. - ENDIF. - ENDLOOP. - - ENDMETHOD. - - METHOD serialize_program. - - DATA: ls_progdir TYPE ty_progdir, - lv_program_name TYPE programm, - lt_dynpros TYPE ty_dynpro_tt, - ls_cua TYPE ty_cua, - lt_source TYPE TABLE OF abaptxt255, - lt_tpool TYPE textpool_table, - ls_tpool LIKE LINE OF lt_tpool, - lo_xml TYPE REF TO zcl_abapgit_xml_output. - - IF iv_program IS INITIAL. - lv_program_name = is_item-obj_name. - ELSE. - lv_program_name = iv_program. - ENDIF. - - zcl_abapgit_language=>set_current_language( mv_language ). - - CALL FUNCTION 'RPY_PROGRAM_READ' - EXPORTING - program_name = lv_program_name - with_lowercase = abap_true - TABLES - source_extended = lt_source - textelements = lt_tpool - EXCEPTIONS - cancelled = 1 - not_found = 2 - permission_error = 3 - OTHERS = 4. - - IF sy-subrc = 2. - zcl_abapgit_language=>restore_login_language( ). - RETURN. - ELSEIF sy-subrc <> 0. - zcl_abapgit_language=>restore_login_language( ). - zcx_abapgit_exception=>raise( 'Error reading program' ). - ENDIF. - - zcl_abapgit_language=>restore_login_language( ). - - ls_progdir = read_progdir( lv_program_name ). - - IF io_xml IS BOUND. - lo_xml = io_xml. - ELSE. - CREATE OBJECT lo_xml. - ENDIF. - - lo_xml->add( iv_name = 'PROGDIR' - ig_data = ls_progdir ). - IF ls_progdir-subc = '1' OR ls_progdir-subc = 'M'. - lt_dynpros = serialize_dynpros( lv_program_name ). - lo_xml->add( iv_name = 'DYNPROS' - ig_data = lt_dynpros ). - - ls_cua = serialize_cua( lv_program_name ). - IF NOT ls_cua IS INITIAL. - lo_xml->add( iv_name = 'CUA' - ig_data = ls_cua ). - ENDIF. - ENDIF. - - READ TABLE lt_tpool WITH KEY id = 'R' INTO ls_tpool. - IF sy-subrc = 0 AND ls_tpool-key = '' AND ls_tpool-length = 0. - DELETE lt_tpool INDEX sy-tabix. - ENDIF. - - lo_xml->add( iv_name = 'TPOOL' - ig_data = add_tpool( lt_tpool ) ). - - IF NOT io_xml IS BOUND. - io_files->add_xml( iv_extra = iv_extra - io_xml = lo_xml ). - ENDIF. - - io_files->add_abap( iv_extra = iv_extra - it_abap = lt_source ). - - ENDMETHOD. "serialize_program - - METHOD deserialize_program. - - DATA: lv_exists TYPE sap_bool, - lv_progname TYPE reposrc-progname, - ls_tpool LIKE LINE OF it_tpool, - lv_title TYPE rglif-title, - ls_progdir_new TYPE progdir. - - FIELD-SYMBOLS: TYPE any. - - - CALL FUNCTION 'RS_CORR_INSERT' - EXPORTING - object = is_progdir-name - object_class = 'ABAP' - devclass = iv_package - master_language = mv_language - mode = 'INSERT' - EXCEPTIONS - cancelled = 1 - permission_failure = 2 - unknown_objectclass = 3 - OTHERS = 4. - IF sy-subrc = 1. - zcx_abapgit_exception=>raise( 'Cancelled' ). - ELSEIF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from RS_CORR_INSERT' ). - ENDIF. - - READ TABLE it_tpool INTO ls_tpool WITH KEY id = 'R'. "#EC CI_SUBRC - IF sy-subrc = 0. -* there is a bug in RPY_PROGRAM_UPDATE, the header line of TTAB is not -* cleared, so the title length might be inherited from a different program. - ASSIGN ('(SAPLSIFP)TTAB') TO . - IF sy-subrc = 0. - CLEAR . - ENDIF. - - lv_title = ls_tpool-entry. - ENDIF. - - SELECT SINGLE progname FROM reposrc INTO lv_progname - WHERE progname = is_progdir-name - AND r3state = 'A'. - IF sy-subrc = 0. - lv_exists = abap_true. - ELSE. - lv_exists = abap_false. - ENDIF. - - IF lv_exists = abap_true. - zcl_abapgit_language=>set_current_language( mv_language ). - - CALL FUNCTION 'RPY_PROGRAM_UPDATE' - EXPORTING - program_name = is_progdir-name - title_string = lv_title - save_inactive = 'I' - TABLES - source_extended = it_source - EXCEPTIONS - cancelled = 1 - permission_error = 2 - not_found = 3 - OTHERS = 4. - - IF sy-subrc <> 0. - zcl_abapgit_language=>restore_login_language( ). - - IF sy-msgid = 'EU' AND sy-msgno = '510'. - zcx_abapgit_exception=>raise( 'User is currently editing program' ). - ELSE. - zcx_abapgit_exception=>raise( 'PROG, error updating' ). - ENDIF. - ENDIF. - - zcl_abapgit_language=>restore_login_language( ). - ELSE. -* function module RPY_PROGRAM_INSERT cannot handle function group includes - - IF strlen( is_progdir-name ) > 30. - " special treatment for extensions - " if the program name exceeds 30 characters it is not a usual - " ABAP program but might be some extension, which requires the internal - " addition EXTENSION TYPE, see - " http://help.sap.com/abapdocu_751/en/abapinsert_report_internal.htm#!ABAP_ADDITION_1@1@ - " This e.g. occurs in case of transportable Code Inspector variants (ending with ===VC) - INSERT REPORT is_progdir-name - FROM it_source - STATE 'I' - EXTENSION TYPE is_progdir-name+30. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from INSERT REPORT .. EXTENSION TYPE' ). - ENDIF. - ELSE. - INSERT REPORT is_progdir-name - FROM it_source - STATE 'I' - PROGRAM TYPE is_progdir-subc. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from INSERT REPORT' ). - ENDIF. - ENDIF. - ENDIF. - - IF NOT it_tpool[] IS INITIAL. - INSERT TEXTPOOL is_progdir-name - FROM it_tpool - LANGUAGE mv_language - STATE 'I'. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). - ENDIF. - ENDIF. - - CALL FUNCTION 'READ_PROGDIR' - EXPORTING - i_progname = is_progdir-name - i_state = 'I' - IMPORTING - e_progdir = ls_progdir_new - EXCEPTIONS - not_exists = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'not found in PROGDIR' ). - ENDIF. - -* todo, package? - - ls_progdir_new-ldbname = is_progdir-ldbname. - ls_progdir_new-dbna = is_progdir-dbna. - ls_progdir_new-dbapl = is_progdir-dbapl. - ls_progdir_new-rload = is_progdir-rload. - ls_progdir_new-fixpt = is_progdir-fixpt. - ls_progdir_new-varcl = is_progdir-varcl. - ls_progdir_new-appl = is_progdir-appl. - ls_progdir_new-rstat = is_progdir-rstat. - - CALL FUNCTION 'UPDATE_PROGDIR' - EXPORTING - i_progdir = ls_progdir_new - i_progname = ls_progdir_new-name - i_state = ls_progdir_new-state - EXCEPTIONS - not_executed = 1 - OTHERS = 2. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'PROG, error inserting' ). - ENDIF. - - SELECT SINGLE * FROM progdir INTO ls_progdir_new - WHERE name = ls_progdir_new-name - AND state = ls_progdir_new-state. - IF sy-subrc = 0 AND is_progdir-varcl = space AND ls_progdir_new-varcl = abap_true. -* function module UPDATE_PROGDIR does not update VARCL - UPDATE progdir SET varcl = is_progdir-varcl - WHERE name = ls_progdir_new-name - AND state = ls_progdir_new-state. "#EC CI_SUBRC - ENDIF. - - zcl_abapgit_objects_activation=>add( - iv_type = 'REPS' - iv_name = is_progdir-name ). - - ENDMETHOD. "deserialize_program - - METHOD read_progdir. - - DATA: ls_sapdir TYPE progdir. - - - CALL FUNCTION 'READ_PROGDIR' - EXPORTING - i_progname = iv_program - i_state = 'A' - IMPORTING - e_progdir = ls_sapdir. - MOVE-CORRESPONDING ls_sapdir TO rs_progdir. - - CLEAR: rs_progdir-edtx, - rs_progdir-cnam, - rs_progdir-cdat, - rs_progdir-unam, - rs_progdir-udat, - rs_progdir-levl, - rs_progdir-vern, - rs_progdir-rmand, - rs_progdir-sdate, - rs_progdir-stime, - rs_progdir-idate, - rs_progdir-itime. - - ENDMETHOD. "read_progdir - - METHOD serialize_cua. - - CALL FUNCTION 'RS_CUA_INTERNAL_FETCH' - EXPORTING - program = iv_program_name - language = mv_language - state = 'A' - IMPORTING - adm = rs_cua-adm - TABLES - sta = rs_cua-sta - fun = rs_cua-fun - men = rs_cua-men - mtx = rs_cua-mtx - act = rs_cua-act - but = rs_cua-but - pfk = rs_cua-pfk - set = rs_cua-set - doc = rs_cua-doc - tit = rs_cua-tit - biv = rs_cua-biv - EXCEPTIONS - not_found = 1 - unknown_version = 2 - OTHERS = 3. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from RS_CUA_INTERNAL_FETCH' ). - ENDIF. - - ENDMETHOD. "serialize_cua - - METHOD serialize_dynpros. - - DATA: ls_header TYPE rpy_dyhead, - lt_containers TYPE dycatt_tab, - lt_fields_to_containers TYPE dyfatc_tab, - lt_flow_logic TYPE swydyflow, - lt_d020s TYPE TABLE OF d020s. - - FIELD-SYMBOLS: LIKE LINE OF lt_d020s, - TYPE scrpostyle, - LIKE LINE OF lt_fields_to_containers, - LIKE LINE OF rt_dynpro. - - - CALL FUNCTION 'RS_SCREEN_LIST' - EXPORTING - dynnr = '' - progname = iv_program_name - TABLES - dynpros = lt_d020s - EXCEPTIONS - not_found = 1 - OTHERS = 2. - IF sy-subrc = 2. - zcx_abapgit_exception=>raise( 'error from screen_list' ). - ENDIF. - -* loop dynpros and skip generated selection screens - LOOP AT lt_d020s ASSIGNING WHERE type <> 'S'. - - CALL FUNCTION 'RPY_DYNPRO_READ' - EXPORTING - progname = iv_program_name - dynnr = -dnum - IMPORTING - header = ls_header - TABLES - containers = lt_containers - fields_to_containers = lt_fields_to_containers - flow_logic = lt_flow_logic - EXCEPTIONS - cancelled = 1 - not_found = 2 - permission_error = 3 - OTHERS = 4. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'Error while reading dynpro' ). - ENDIF. - - LOOP AT lt_fields_to_containers ASSIGNING . -* output style is a NUMC field, the XML conversion will fail if it contains invalid value -* field does not exist in all versions - ASSIGN COMPONENT 'OUTPUTSTYLE' OF STRUCTURE TO . - IF sy-subrc = 0 AND = ' '. - CLEAR . - ENDIF. - ENDLOOP. - - APPEND INITIAL LINE TO rt_dynpro ASSIGNING . - -header = ls_header. - -containers = lt_containers. - -fields = lt_fields_to_containers. - - condense_flow( IMPORTING et_spaces = -spaces - CHANGING ct_flow = lt_flow_logic ). - -flow_logic = lt_flow_logic. - - ENDLOOP. - - ENDMETHOD. "serialize_dynpros - - - METHOD deserialize_dynpros. - - DATA: lv_name TYPE dwinactiv-obj_name, - ls_dynpro LIKE LINE OF it_dynpros. - - -* ls_dynpro is changed by the function module, a field-symbol will cause -* the program to dump since it_dynpros cannot be changed - LOOP AT it_dynpros INTO ls_dynpro. - - ls_dynpro-flow_logic = uncondense_flow( - it_flow = ls_dynpro-flow_logic - it_spaces = ls_dynpro-spaces ). - - CALL FUNCTION 'RPY_DYNPRO_INSERT' - EXPORTING - header = ls_dynpro-header - suppress_exist_checks = abap_true - TABLES - containers = ls_dynpro-containers - fields_to_containers = ls_dynpro-fields - flow_logic = ls_dynpro-flow_logic - EXCEPTIONS - cancelled = 1 - already_exists = 2 - program_not_exists = 3 - not_executed = 4 - missing_required_field = 5 - illegal_field_value = 6 - field_not_allowed = 7 - not_generated = 8 - illegal_field_position = 9 - OTHERS = 10. - IF sy-subrc <> 2 AND sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from RPY_DYNPRO_INSERT' ). - ENDIF. -* todo, RPY_DYNPRO_UPDATE? - - CONCATENATE ls_dynpro-header-program ls_dynpro-header-screen - INTO lv_name RESPECTING BLANKS. - ASSERT NOT lv_name IS INITIAL. - - zcl_abapgit_objects_activation=>add( - iv_type = 'DYNP' - iv_name = lv_name ). - - ENDLOOP. - - ENDMETHOD. "deserialize_dynpros - - METHOD add_tpool. - - FIELD-SYMBOLS: LIKE LINE OF it_tpool, - LIKE LINE OF rt_tpool. - - - LOOP AT it_tpool ASSIGNING . - APPEND INITIAL LINE TO rt_tpool ASSIGNING . - MOVE-CORRESPONDING TO . - IF -id = 'S'. - -split = -entry. - -entry = -entry+8. - ENDIF. - ENDLOOP. - - ENDMETHOD. "add_tpool - - METHOD read_tpool. - - FIELD-SYMBOLS: LIKE LINE OF it_tpool, - LIKE LINE OF rt_tpool. - - - LOOP AT it_tpool ASSIGNING . - APPEND INITIAL LINE TO rt_tpool ASSIGNING . - MOVE-CORRESPONDING TO . - IF -id = 'S'. - CONCATENATE -split -entry - INTO -entry - RESPECTING BLANKS. - ENDIF. - ENDLOOP. - - ENDMETHOD. "read_tpool - - METHOD deserialize_textpool. - - DATA lv_language TYPE langu. - DATA lv_state TYPE c. - DATA lv_delete TYPE abap_bool. - - IF iv_language IS INITIAL. - lv_language = mv_language. - ELSE. - lv_language = iv_language. - ENDIF. - - IF lv_language = mv_language. - lv_state = 'I'. "Textpool in master language needs to be activated - ELSE. - lv_state = 'A'. "Translations are always active - ENDIF. - - IF it_tpool IS INITIAL. - IF iv_is_include = abap_false OR lv_state = 'A'. - DELETE TEXTPOOL iv_program "Remove initial description from textpool if - LANGUAGE iv_program "original program does not have a textpool - STATE lv_state. - - lv_delete = abap_true. - ELSE. - INSERT TEXTPOOL iv_program "In case of includes: Deletion of textpool in - FROM it_tpool "master language cannot be activated because - LANGUAGE lv_language "this woul activate the deletion of the textpool - STATE lv_state. "of the mail program -> insert empty textpool - ENDIF. - ELSE. - IF lines( it_tpool ) = 1 AND lv_language = mv_language. - READ TABLE it_tpool WITH KEY id = 'R' TRANSPORTING NO FIELDS. - IF sy-subrc = 0. - RETURN. "No action because description in master language is already there - ENDIF. - ENDIF. - - INSERT TEXTPOOL iv_program - FROM it_tpool - LANGUAGE lv_language - STATE lv_state. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). - ENDIF. - ENDIF. - - IF lv_state = 'I'. "Textpool in master language needs to be activated - zcl_abapgit_objects_activation=>add( - iv_type = 'REPT' - iv_name = iv_program - iv_delete = lv_delete ). - ENDIF. - ENDMETHOD. "deserialize_textpool - - METHOD deserialize_cua. - - DATA: ls_tr_key TYPE trkey. - - - IF lines( is_cua-sta ) = 0 - AND lines( is_cua-fun ) = 0 - AND lines( is_cua-men ) = 0 - AND lines( is_cua-mtx ) = 0 - AND lines( is_cua-act ) = 0 - AND lines( is_cua-but ) = 0 - AND lines( is_cua-pfk ) = 0 - AND lines( is_cua-set ) = 0 - AND lines( is_cua-doc ) = 0 - AND lines( is_cua-tit ) = 0 - AND lines( is_cua-biv ) = 0. - RETURN. - ENDIF. - - SELECT SINGLE devclass INTO ls_tr_key-devclass - FROM tadir - WHERE pgmid = 'R3TR' - AND object = ms_item-obj_type - AND obj_name = ms_item-obj_name. "#EC CI_GENBUFF - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'not found in tadir' ). - ENDIF. - - ls_tr_key-obj_type = ms_item-obj_type. - ls_tr_key-obj_name = ms_item-obj_name. - ls_tr_key-sub_type = 'CUAD'. - ls_tr_key-sub_name = iv_program_name. - - sy-tcode = 'SE41' ##write_ok. " evil hack, workaround to handle fixes in note 2159455 - CALL FUNCTION 'RS_CUA_INTERNAL_WRITE' - EXPORTING - program = iv_program_name - language = mv_language - tr_key = ls_tr_key - adm = is_cua-adm - state = 'I' - TABLES - sta = is_cua-sta - fun = is_cua-fun - men = is_cua-men - mtx = is_cua-mtx - act = is_cua-act - but = is_cua-but - pfk = is_cua-pfk - set = is_cua-set - doc = is_cua-doc - tit = is_cua-tit - biv = is_cua-biv - EXCEPTIONS - not_found = 1 - OTHERS = 2. - IF sy-subrc <> 0. -* if moving code from SAPlink, see https://github.com/larshp/abapGit/issues/562 - zcx_abapgit_exception=>raise( 'error from RS_CUA_INTERNAL_WRITE' ). - ENDIF. - - zcl_abapgit_objects_activation=>add( - iv_type = 'CUAD' - iv_name = iv_program_name ). - - ENDMETHOD. "deserialize_cua - - METHOD check_prog_changed_since. - - DATA: lv_date TYPE dats, - lv_time TYPE tims, - lt_screens TYPE STANDARD TABLE OF d020s, - lt_eudb TYPE STANDARD TABLE OF eudb. - - FIELD-SYMBOLS: LIKE LINE OF lt_screens, - LIKE LINE OF lt_eudb. - - SELECT SINGLE udat utime FROM reposrc " Program - INTO (lv_date, lv_time) - WHERE progname = iv_program - AND r3state = 'A'. - - rv_changed = check_timestamp( - iv_timestamp = iv_timestamp - iv_date = lv_date - iv_time = lv_time ). - IF rv_changed = abap_true. - RETURN. - ENDIF. - - SELECT SINGLE udat utime FROM repotext " Program text pool - INTO (lv_date, lv_time) - WHERE progname = iv_program - AND r3state = 'A'. - - IF sy-subrc = 0. " Text not found ? Assuming no changes, see #404 - rv_changed = check_timestamp( - iv_timestamp = iv_timestamp - iv_date = lv_date - iv_time = lv_time ). - IF rv_changed = abap_true. - RETURN. - ENDIF. - ENDIF. - - IF iv_skip_gui = abap_true. - RETURN. - ENDIF. - - SELECT dgen tgen FROM d020s " Screens - INTO CORRESPONDING FIELDS OF TABLE lt_screens - WHERE prog = iv_program - ORDER BY PRIMARY KEY ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC - - LOOP AT lt_screens ASSIGNING . - rv_changed = check_timestamp( - iv_timestamp = iv_timestamp - iv_date = -dgen - iv_time = -tgen ). - IF rv_changed = abap_true. - RETURN. - ENDIF. - ENDLOOP. - - SELECT vdatum vzeit FROM eudb " GUI - INTO CORRESPONDING FIELDS OF TABLE lt_eudb - WHERE relid = 'CU' - AND name = iv_program - AND srtf2 = 0 - ORDER BY PRIMARY KEY ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC - - LOOP AT lt_eudb ASSIGNING . - rv_changed = check_timestamp( - iv_timestamp = iv_timestamp - iv_date = -vdatum - iv_time = -vzeit ). - IF rv_changed = abap_true. - RETURN. - ENDIF. - ENDLOOP. - - ENDMETHOD. "check_prog_changed_since - -ENDCLASS. "lcl_objects_program IMPLEMENTATION +*CLASS lcl_objects_program IMPLEMENTATION. +* +* METHOD condense_flow. +* +* DATA: lv_spaces LIKE LINE OF et_spaces. +* +* FIELD-SYMBOLS: LIKE LINE OF ct_flow. +* +* +* CLEAR et_spaces. +* +* LOOP AT ct_flow ASSIGNING . +* lv_spaces = 0. +* +* WHILE NOT -line IS INITIAL AND -line(1) = space. +* lv_spaces = lv_spaces + 1. +* -line = -line+1. +* ENDWHILE. +* +* APPEND lv_spaces TO et_spaces. +* ENDLOOP. +* +* ENDMETHOD. +* +* METHOD uncondense_flow. +* +* DATA: lv_spaces LIKE LINE OF it_spaces. +* +* FIELD-SYMBOLS: LIKE LINE OF it_flow, +* LIKE LINE OF rt_flow. +* +* +* LOOP AT it_flow ASSIGNING . +* APPEND INITIAL LINE TO rt_flow ASSIGNING . +* -line = -line. +* +* READ TABLE it_spaces INDEX sy-tabix INTO lv_spaces. +* IF sy-subrc = 0. +* SHIFT -line RIGHT BY lv_spaces PLACES IN CHARACTER MODE. +* ENDIF. +* ENDLOOP. +* +* ENDMETHOD. +* +* METHOD serialize_program. +* +* DATA: ls_progdir TYPE ty_progdir, +* lv_program_name TYPE programm, +* lt_dynpros TYPE ty_dynpro_tt, +* ls_cua TYPE ty_cua, +* lt_source TYPE TABLE OF abaptxt255, +* lt_tpool TYPE textpool_table, +* ls_tpool LIKE LINE OF lt_tpool, +* lo_xml TYPE REF TO zcl_abapgit_xml_output. +* +* IF iv_program IS INITIAL. +* lv_program_name = is_item-obj_name. +* ELSE. +* lv_program_name = iv_program. +* ENDIF. +* +* zcl_abapgit_language=>set_current_language( mv_language ). +* +* CALL FUNCTION 'RPY_PROGRAM_READ' +* EXPORTING +* program_name = lv_program_name +* with_lowercase = abap_true +* TABLES +* source_extended = lt_source +* textelements = lt_tpool +* EXCEPTIONS +* cancelled = 1 +* not_found = 2 +* permission_error = 3 +* OTHERS = 4. +* +* IF sy-subrc = 2. +* zcl_abapgit_language=>restore_login_language( ). +* RETURN. +* ELSEIF sy-subrc <> 0. +* zcl_abapgit_language=>restore_login_language( ). +* zcx_abapgit_exception=>raise( 'Error reading program' ). +* ENDIF. +* +* zcl_abapgit_language=>restore_login_language( ). +* +* ls_progdir = read_progdir( lv_program_name ). +* +* IF io_xml IS BOUND. +* lo_xml = io_xml. +* ELSE. +* CREATE OBJECT lo_xml. +* ENDIF. +* +* lo_xml->add( iv_name = 'PROGDIR' +* ig_data = ls_progdir ). +* IF ls_progdir-subc = '1' OR ls_progdir-subc = 'M'. +* lt_dynpros = serialize_dynpros( lv_program_name ). +* lo_xml->add( iv_name = 'DYNPROS' +* ig_data = lt_dynpros ). +* +* ls_cua = serialize_cua( lv_program_name ). +* IF NOT ls_cua IS INITIAL. +* lo_xml->add( iv_name = 'CUA' +* ig_data = ls_cua ). +* ENDIF. +* ENDIF. +* +* READ TABLE lt_tpool WITH KEY id = 'R' INTO ls_tpool. +* IF sy-subrc = 0 AND ls_tpool-key = '' AND ls_tpool-length = 0. +* DELETE lt_tpool INDEX sy-tabix. +* ENDIF. +* +* lo_xml->add( iv_name = 'TPOOL' +* ig_data = add_tpool( lt_tpool ) ). +* +* IF NOT io_xml IS BOUND. +* io_files->add_xml( iv_extra = iv_extra +* io_xml = lo_xml ). +* ENDIF. +* +* io_files->add_abap( iv_extra = iv_extra +* it_abap = lt_source ). +* +* ENDMETHOD. "serialize_program +* +* METHOD deserialize_program. +* +* DATA: lv_exists TYPE sap_bool, +* lv_progname TYPE reposrc-progname, +* ls_tpool LIKE LINE OF it_tpool, +* lv_title TYPE rglif-title, +* ls_progdir_new TYPE progdir. +* +* FIELD-SYMBOLS: TYPE any. +* +* +* CALL FUNCTION 'RS_CORR_INSERT' +* EXPORTING +* object = is_progdir-name +* object_class = 'ABAP' +* devclass = iv_package +* master_language = mv_language +* mode = 'INSERT' +* EXCEPTIONS +* cancelled = 1 +* permission_failure = 2 +* unknown_objectclass = 3 +* OTHERS = 4. +* IF sy-subrc = 1. +* zcx_abapgit_exception=>raise( 'Cancelled' ). +* ELSEIF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from RS_CORR_INSERT' ). +* ENDIF. +* +* READ TABLE it_tpool INTO ls_tpool WITH KEY id = 'R'. "#EC CI_SUBRC +* IF sy-subrc = 0. +** there is a bug in RPY_PROGRAM_UPDATE, the header line of TTAB is not +** cleared, so the title length might be inherited from a different program. +* ASSIGN ('(SAPLSIFP)TTAB') TO . +* IF sy-subrc = 0. +* CLEAR . +* ENDIF. +* +* lv_title = ls_tpool-entry. +* ENDIF. +* +* SELECT SINGLE progname FROM reposrc INTO lv_progname +* WHERE progname = is_progdir-name +* AND r3state = 'A'. +* IF sy-subrc = 0. +* lv_exists = abap_true. +* ELSE. +* lv_exists = abap_false. +* ENDIF. +* +* IF lv_exists = abap_true. +* zcl_abapgit_language=>set_current_language( mv_language ). +* +* CALL FUNCTION 'RPY_PROGRAM_UPDATE' +* EXPORTING +* program_name = is_progdir-name +* title_string = lv_title +* save_inactive = 'I' +* TABLES +* source_extended = it_source +* EXCEPTIONS +* cancelled = 1 +* permission_error = 2 +* not_found = 3 +* OTHERS = 4. +* +* IF sy-subrc <> 0. +* zcl_abapgit_language=>restore_login_language( ). +* +* IF sy-msgid = 'EU' AND sy-msgno = '510'. +* zcx_abapgit_exception=>raise( 'User is currently editing program' ). +* ELSE. +* zcx_abapgit_exception=>raise( 'PROG, error updating' ). +* ENDIF. +* ENDIF. +* +* zcl_abapgit_language=>restore_login_language( ). +* ELSE. +** function module RPY_PROGRAM_INSERT cannot handle function group includes +* +* IF strlen( is_progdir-name ) > 30. +* " special treatment for extensions +* " if the program name exceeds 30 characters it is not a usual +* " ABAP program but might be some extension, which requires the internal +* " addition EXTENSION TYPE, see +* " http://help.sap.com/abapdocu_751/en/abapinsert_report_internal.htm#!ABAP_ADDITION_1@1@ +* " This e.g. occurs in case of transportable Code Inspector variants (ending with ===VC) +* INSERT REPORT is_progdir-name +* FROM it_source +* STATE 'I' +* EXTENSION TYPE is_progdir-name+30. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from INSERT REPORT .. EXTENSION TYPE' ). +* ENDIF. +* ELSE. +* INSERT REPORT is_progdir-name +* FROM it_source +* STATE 'I' +* PROGRAM TYPE is_progdir-subc. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from INSERT REPORT' ). +* ENDIF. +* ENDIF. +* ENDIF. +* +* IF NOT it_tpool[] IS INITIAL. +* INSERT TEXTPOOL is_progdir-name +* FROM it_tpool +* LANGUAGE mv_language +* STATE 'I'. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). +* ENDIF. +* ENDIF. +* +* CALL FUNCTION 'READ_PROGDIR' +* EXPORTING +* i_progname = is_progdir-name +* i_state = 'I' +* IMPORTING +* e_progdir = ls_progdir_new +* EXCEPTIONS +* not_exists = 1 +* OTHERS = 2. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'not found in PROGDIR' ). +* ENDIF. +* +** todo, package? +* +* ls_progdir_new-ldbname = is_progdir-ldbname. +* ls_progdir_new-dbna = is_progdir-dbna. +* ls_progdir_new-dbapl = is_progdir-dbapl. +* ls_progdir_new-rload = is_progdir-rload. +* ls_progdir_new-fixpt = is_progdir-fixpt. +* ls_progdir_new-varcl = is_progdir-varcl. +* ls_progdir_new-appl = is_progdir-appl. +* ls_progdir_new-rstat = is_progdir-rstat. +* +* CALL FUNCTION 'UPDATE_PROGDIR' +* EXPORTING +* i_progdir = ls_progdir_new +* i_progname = ls_progdir_new-name +* i_state = ls_progdir_new-state +* EXCEPTIONS +* not_executed = 1 +* OTHERS = 2. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'PROG, error inserting' ). +* ENDIF. +* +* SELECT SINGLE * FROM progdir INTO ls_progdir_new +* WHERE name = ls_progdir_new-name +* AND state = ls_progdir_new-state. +* IF sy-subrc = 0 AND is_progdir-varcl = space AND ls_progdir_new-varcl = abap_true. +** function module UPDATE_PROGDIR does not update VARCL +* UPDATE progdir SET varcl = is_progdir-varcl +* WHERE name = ls_progdir_new-name +* AND state = ls_progdir_new-state. "#EC CI_SUBRC +* ENDIF. +* +* zcl_abapgit_objects_activation=>add( +* iv_type = 'REPS' +* iv_name = is_progdir-name ). +* +* ENDMETHOD. "deserialize_program +* +* METHOD read_progdir. +* +* DATA: ls_sapdir TYPE progdir. +* +* +* CALL FUNCTION 'READ_PROGDIR' +* EXPORTING +* i_progname = iv_program +* i_state = 'A' +* IMPORTING +* e_progdir = ls_sapdir. +* MOVE-CORRESPONDING ls_sapdir TO rs_progdir. +* +* CLEAR: rs_progdir-edtx, +* rs_progdir-cnam, +* rs_progdir-cdat, +* rs_progdir-unam, +* rs_progdir-udat, +* rs_progdir-levl, +* rs_progdir-vern, +* rs_progdir-rmand, +* rs_progdir-sdate, +* rs_progdir-stime, +* rs_progdir-idate, +* rs_progdir-itime. +* +* ENDMETHOD. "read_progdir +* +* METHOD serialize_cua. +* +* CALL FUNCTION 'RS_CUA_INTERNAL_FETCH' +* EXPORTING +* program = iv_program_name +* language = mv_language +* state = 'A' +* IMPORTING +* adm = rs_cua-adm +* TABLES +* sta = rs_cua-sta +* fun = rs_cua-fun +* men = rs_cua-men +* mtx = rs_cua-mtx +* act = rs_cua-act +* but = rs_cua-but +* pfk = rs_cua-pfk +* set = rs_cua-set +* doc = rs_cua-doc +* tit = rs_cua-tit +* biv = rs_cua-biv +* EXCEPTIONS +* not_found = 1 +* unknown_version = 2 +* OTHERS = 3. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from RS_CUA_INTERNAL_FETCH' ). +* ENDIF. +* +* ENDMETHOD. "serialize_cua +* +* METHOD serialize_dynpros. +* +* DATA: ls_header TYPE rpy_dyhead, +* lt_containers TYPE dycatt_tab, +* lt_fields_to_containers TYPE dyfatc_tab, +* lt_flow_logic TYPE swydyflow, +* lt_d020s TYPE TABLE OF d020s. +* +* FIELD-SYMBOLS: LIKE LINE OF lt_d020s, +* TYPE scrpostyle, +* LIKE LINE OF lt_fields_to_containers, +* LIKE LINE OF rt_dynpro. +* +* +* CALL FUNCTION 'RS_SCREEN_LIST' +* EXPORTING +* dynnr = '' +* progname = iv_program_name +* TABLES +* dynpros = lt_d020s +* EXCEPTIONS +* not_found = 1 +* OTHERS = 2. +* IF sy-subrc = 2. +* zcx_abapgit_exception=>raise( 'error from screen_list' ). +* ENDIF. +* +** loop dynpros and skip generated selection screens +* LOOP AT lt_d020s ASSIGNING WHERE type <> 'S'. +* +* CALL FUNCTION 'RPY_DYNPRO_READ' +* EXPORTING +* progname = iv_program_name +* dynnr = -dnum +* IMPORTING +* header = ls_header +* TABLES +* containers = lt_containers +* fields_to_containers = lt_fields_to_containers +* flow_logic = lt_flow_logic +* EXCEPTIONS +* cancelled = 1 +* not_found = 2 +* permission_error = 3 +* OTHERS = 4. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'Error while reading dynpro' ). +* ENDIF. +* +* LOOP AT lt_fields_to_containers ASSIGNING . +** output style is a NUMC field, the XML conversion will fail if it contains invalid value +** field does not exist in all versions +* ASSIGN COMPONENT 'OUTPUTSTYLE' OF STRUCTURE TO . +* IF sy-subrc = 0 AND = ' '. +* CLEAR . +* ENDIF. +* ENDLOOP. +* +* APPEND INITIAL LINE TO rt_dynpro ASSIGNING . +* -header = ls_header. +* -containers = lt_containers. +* -fields = lt_fields_to_containers. +* +* condense_flow( IMPORTING et_spaces = -spaces +* CHANGING ct_flow = lt_flow_logic ). +* -flow_logic = lt_flow_logic. +* +* ENDLOOP. +* +* ENDMETHOD. "serialize_dynpros +* +* +* METHOD deserialize_dynpros. +* +* DATA: lv_name TYPE dwinactiv-obj_name, +* ls_dynpro LIKE LINE OF it_dynpros. +* +* +** ls_dynpro is changed by the function module, a field-symbol will cause +** the program to dump since it_dynpros cannot be changed +* LOOP AT it_dynpros INTO ls_dynpro. +* +* ls_dynpro-flow_logic = uncondense_flow( +* it_flow = ls_dynpro-flow_logic +* it_spaces = ls_dynpro-spaces ). +* +* CALL FUNCTION 'RPY_DYNPRO_INSERT' +* EXPORTING +* header = ls_dynpro-header +* suppress_exist_checks = abap_true +* TABLES +* containers = ls_dynpro-containers +* fields_to_containers = ls_dynpro-fields +* flow_logic = ls_dynpro-flow_logic +* EXCEPTIONS +* cancelled = 1 +* already_exists = 2 +* program_not_exists = 3 +* not_executed = 4 +* missing_required_field = 5 +* illegal_field_value = 6 +* field_not_allowed = 7 +* not_generated = 8 +* illegal_field_position = 9 +* OTHERS = 10. +* IF sy-subrc <> 2 AND sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from RPY_DYNPRO_INSERT' ). +* ENDIF. +** todo, RPY_DYNPRO_UPDATE? +* +* CONCATENATE ls_dynpro-header-program ls_dynpro-header-screen +* INTO lv_name RESPECTING BLANKS. +* ASSERT NOT lv_name IS INITIAL. +* +* zcl_abapgit_objects_activation=>add( +* iv_type = 'DYNP' +* iv_name = lv_name ). +* +* ENDLOOP. +* +* ENDMETHOD. "deserialize_dynpros +* +* METHOD add_tpool. +* +* FIELD-SYMBOLS: LIKE LINE OF it_tpool, +* LIKE LINE OF rt_tpool. +* +* +* LOOP AT it_tpool ASSIGNING . +* APPEND INITIAL LINE TO rt_tpool ASSIGNING . +* MOVE-CORRESPONDING TO . +* IF -id = 'S'. +* -split = -entry. +* -entry = -entry+8. +* ENDIF. +* ENDLOOP. +* +* ENDMETHOD. "add_tpool +* +* METHOD read_tpool. +* +* FIELD-SYMBOLS: LIKE LINE OF it_tpool, +* LIKE LINE OF rt_tpool. +* +* +* LOOP AT it_tpool ASSIGNING . +* APPEND INITIAL LINE TO rt_tpool ASSIGNING . +* MOVE-CORRESPONDING TO . +* IF -id = 'S'. +* CONCATENATE -split -entry +* INTO -entry +* RESPECTING BLANKS. +* ENDIF. +* ENDLOOP. +* +* ENDMETHOD. "read_tpool +* +* METHOD deserialize_textpool. +* +* DATA lv_language TYPE langu. +* DATA lv_state TYPE c. +* DATA lv_delete TYPE abap_bool. +* +* IF iv_language IS INITIAL. +* lv_language = mv_language. +* ELSE. +* lv_language = iv_language. +* ENDIF. +* +* IF lv_language = mv_language. +* lv_state = 'I'. "Textpool in master language needs to be activated +* ELSE. +* lv_state = 'A'. "Translations are always active +* ENDIF. +* +* IF it_tpool IS INITIAL. +* IF iv_is_include = abap_false OR lv_state = 'A'. +* DELETE TEXTPOOL iv_program "Remove initial description from textpool if +* LANGUAGE iv_program "original program does not have a textpool +* STATE lv_state. +* +* lv_delete = abap_true. +* ELSE. +* INSERT TEXTPOOL iv_program "In case of includes: Deletion of textpool in +* FROM it_tpool "master language cannot be activated because +* LANGUAGE lv_language "this woul activate the deletion of the textpool +* STATE lv_state. "of the mail program -> insert empty textpool +* ENDIF. +* ELSE. +* IF lines( it_tpool ) = 1 AND lv_language = mv_language. +* READ TABLE it_tpool WITH KEY id = 'R' TRANSPORTING NO FIELDS. +* IF sy-subrc = 0. +* RETURN. "No action because description in master language is already there +* ENDIF. +* ENDIF. +* +* INSERT TEXTPOOL iv_program +* FROM it_tpool +* LANGUAGE lv_language +* STATE lv_state. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ). +* ENDIF. +* ENDIF. +* +* IF lv_state = 'I'. "Textpool in master language needs to be activated +* zcl_abapgit_objects_activation=>add( +* iv_type = 'REPT' +* iv_name = iv_program +* iv_delete = lv_delete ). +* ENDIF. +* ENDMETHOD. "deserialize_textpool +* +* METHOD deserialize_cua. +* +* DATA: ls_tr_key TYPE trkey. +* +* +* IF lines( is_cua-sta ) = 0 +* AND lines( is_cua-fun ) = 0 +* AND lines( is_cua-men ) = 0 +* AND lines( is_cua-mtx ) = 0 +* AND lines( is_cua-act ) = 0 +* AND lines( is_cua-but ) = 0 +* AND lines( is_cua-pfk ) = 0 +* AND lines( is_cua-set ) = 0 +* AND lines( is_cua-doc ) = 0 +* AND lines( is_cua-tit ) = 0 +* AND lines( is_cua-biv ) = 0. +* RETURN. +* ENDIF. +* +* SELECT SINGLE devclass INTO ls_tr_key-devclass +* FROM tadir +* WHERE pgmid = 'R3TR' +* AND object = ms_item-obj_type +* AND obj_name = ms_item-obj_name. "#EC CI_GENBUFF +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'not found in tadir' ). +* ENDIF. +* +* ls_tr_key-obj_type = ms_item-obj_type. +* ls_tr_key-obj_name = ms_item-obj_name. +* ls_tr_key-sub_type = 'CUAD'. +* ls_tr_key-sub_name = iv_program_name. +* +* sy-tcode = 'SE41' ##write_ok. " evil hack, workaround to handle fixes in note 2159455 +* CALL FUNCTION 'RS_CUA_INTERNAL_WRITE' +* EXPORTING +* program = iv_program_name +* language = mv_language +* tr_key = ls_tr_key +* adm = is_cua-adm +* state = 'I' +* TABLES +* sta = is_cua-sta +* fun = is_cua-fun +* men = is_cua-men +* mtx = is_cua-mtx +* act = is_cua-act +* but = is_cua-but +* pfk = is_cua-pfk +* set = is_cua-set +* doc = is_cua-doc +* tit = is_cua-tit +* biv = is_cua-biv +* EXCEPTIONS +* not_found = 1 +* OTHERS = 2. +* IF sy-subrc <> 0. +** if moving code from SAPlink, see https://github.com/larshp/abapGit/issues/562 +* zcx_abapgit_exception=>raise( 'error from RS_CUA_INTERNAL_WRITE' ). +* ENDIF. +* +* zcl_abapgit_objects_activation=>add( +* iv_type = 'CUAD' +* iv_name = iv_program_name ). +* +* ENDMETHOD. "deserialize_cua +* +* METHOD check_prog_changed_since. +* +* DATA: lv_date TYPE dats, +* lv_time TYPE tims, +* lt_screens TYPE STANDARD TABLE OF d020s, +* lt_eudb TYPE STANDARD TABLE OF eudb. +* +* FIELD-SYMBOLS: LIKE LINE OF lt_screens, +* LIKE LINE OF lt_eudb. +* +* SELECT SINGLE udat utime FROM reposrc " Program +* INTO (lv_date, lv_time) +* WHERE progname = iv_program +* AND r3state = 'A'. +* +* rv_changed = check_timestamp( +* iv_timestamp = iv_timestamp +* iv_date = lv_date +* iv_time = lv_time ). +* IF rv_changed = abap_true. +* RETURN. +* ENDIF. +* +* SELECT SINGLE udat utime FROM repotext " Program text pool +* INTO (lv_date, lv_time) +* WHERE progname = iv_program +* AND r3state = 'A'. +* +* IF sy-subrc = 0. " Text not found ? Assuming no changes, see #404 +* rv_changed = check_timestamp( +* iv_timestamp = iv_timestamp +* iv_date = lv_date +* iv_time = lv_time ). +* IF rv_changed = abap_true. +* RETURN. +* ENDIF. +* ENDIF. +* +* IF iv_skip_gui = abap_true. +* RETURN. +* ENDIF. +* +* SELECT dgen tgen FROM d020s " Screens +* INTO CORRESPONDING FIELDS OF TABLE lt_screens +* WHERE prog = iv_program +* ORDER BY PRIMARY KEY ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC +* +* LOOP AT lt_screens ASSIGNING . +* rv_changed = check_timestamp( +* iv_timestamp = iv_timestamp +* iv_date = -dgen +* iv_time = -tgen ). +* IF rv_changed = abap_true. +* RETURN. +* ENDIF. +* ENDLOOP. +* +* SELECT vdatum vzeit FROM eudb " GUI +* INTO CORRESPONDING FIELDS OF TABLE lt_eudb +* WHERE relid = 'CU' +* AND name = iv_program +* AND srtf2 = 0 +* ORDER BY PRIMARY KEY ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC +* +* LOOP AT lt_eudb ASSIGNING . +* rv_changed = check_timestamp( +* iv_timestamp = iv_timestamp +* iv_date = -vdatum +* iv_time = -vzeit ). +* IF rv_changed = abap_true. +* RETURN. +* ENDIF. +* ENDLOOP. +* +* ENDMETHOD. "check_prog_changed_since +* +*ENDCLASS. "lcl_objects_program IMPLEMENTATION *----------------------------------------------------------------------* * CLASS lcl_objects_super IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* -CLASS lcl_objects_super IMPLEMENTATION. - - METHOD constructor. - ms_item = is_item. - ASSERT NOT ms_item IS INITIAL. - mv_language = iv_language. - ASSERT NOT mv_language IS INITIAL. - ENDMETHOD. "constructor - - METHOD jump_se11. - - DATA: lt_bdcdata TYPE TABLE OF bdcdata. - - FIELD-SYMBOLS: LIKE LINE OF lt_bdcdata. - - - APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . - -program = 'SAPLSD_ENTRY'. - -dynpro = '1000'. - -dynbegin = abap_true. - - APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . - -fnam = 'BDC_OKCODE'. - -fval = '=WB_DISPLAY'. - - APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . - -fnam = iv_radio. - -fval = abap_true. - - APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . - -fnam = iv_field. - -fval = ms_item-obj_name. - - CALL FUNCTION 'ABAP4_CALL_TRANSACTION' - STARTING NEW TASK 'GIT' - EXPORTING - tcode = 'SE11' - mode_val = 'E' - TABLES - using_tab = lt_bdcdata - EXCEPTIONS - system_failure = 1 - communication_failure = 2 - resource_failure = 3 - OTHERS = 4 - ##fm_subrc_ok. "#EC CI_SUBRC - - ENDMETHOD. "jump_se11 - - METHOD jump_adt. - - DATA: adt_link TYPE string, - obj_type TYPE trobjtype, - obj_name TYPE trobj_name, - li_object TYPE REF TO cl_wb_object, - li_adt TYPE REF TO object, - li_adt_uri_mapper TYPE REF TO object, - li_adt_objref TYPE REF TO object ##needed. - - FIELD-SYMBOLS: TYPE string. - - obj_name = i_obj_name. - obj_type = i_obj_type. - - TRY. - cl_wb_object=>create_from_transport_key( EXPORTING p_object = obj_type p_obj_name = obj_name - RECEIVING p_wb_object = li_object - EXCEPTIONS OTHERS = 1 ). - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'ADT Jump Error' ). - ENDIF. - - CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') - RECEIVING - result = li_adt. - - IF is_adt_jump_possible( io_object = li_object - io_adt = li_adt ) = abap_false. - zcx_abapgit_exception=>raise( 'ADT Jump Error' ). - ENDIF. - - CALL METHOD li_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER') - RECEIVING - result = li_adt_uri_mapper. - - CALL METHOD li_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF') - EXPORTING - wb_object = li_object - RECEIVING - result = li_adt_objref. - - ASSIGN ('li_adt_objref->ref_data-uri') TO . - ASSERT sy-subrc = 0. - - CONCATENATE 'adt://' sy-sysid INTO adt_link. - - cl_gui_frontend_services=>execute( EXPORTING document = adt_link - EXCEPTIONS OTHERS = 1 ). - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'ADT Jump Error' ). - ENDIF. - - CATCH cx_root. - zcx_abapgit_exception=>raise( 'ADT Jump Error' ). - ENDTRY. - - ENDMETHOD. - - METHOD check_timestamp. - - DATA: lv_ts TYPE timestamp. - - IF sy-subrc = 0 AND iv_date IS NOT INITIAL AND iv_time IS NOT INITIAL. - cl_abap_tstmp=>systemtstmp_syst2utc( - EXPORTING syst_date = iv_date - syst_time = iv_time - IMPORTING utc_tstmp = lv_ts ). - IF lv_ts < iv_timestamp. - rv_changed = abap_false. " Unchanged - ELSE. - rv_changed = abap_true. - ENDIF. - ELSE. " Not found? => changed - rv_changed = abap_true. - ENDIF. - - ENDMETHOD. - - METHOD get_metadata. - rs_metadata-class = - cl_abap_classdescr=>describe_by_object_ref( me )->get_relative_name( ). - rs_metadata-version = 'v1.0.0' ##no_text. - ENDMETHOD. "get_metadata - - METHOD tadir_insert. - - CALL FUNCTION 'TR_TADIR_INTERFACE' - EXPORTING - wi_test_modus = abap_false - wi_tadir_pgmid = 'R3TR' - wi_tadir_object = ms_item-obj_type - wi_tadir_obj_name = ms_item-obj_name - wi_tadir_author = sy-uname - wi_tadir_devclass = iv_package - wi_tadir_masterlang = mv_language - iv_delflag = abap_false - EXCEPTIONS - OTHERS = 1. - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from TR_TADIR_INTERFACE' ). - ENDIF. - - ENDMETHOD. - - METHOD corr_insert. - - DATA: ls_object TYPE ddenqs. - - - ls_object-objtype = ms_item-obj_type. - ls_object-objname = ms_item-obj_name. - - CALL FUNCTION 'RS_CORR_INSERT' - EXPORTING - object = ls_object - object_class = 'DICT' - devclass = iv_package - master_language = mv_language - mode = 'INSERT' - EXCEPTIONS - cancelled = 1 - permission_failure = 2 - unknown_objectclass = 3 - OTHERS = 4. - IF sy-subrc = 1. - zcx_abapgit_exception=>raise( 'Cancelled' ). - ELSEIF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'error from RS_CORR_INSERT' ). - ENDIF. - - ENDMETHOD. "corr_insert - - - METHOD is_adt_jump_possible. - - DATA: li_wb_request TYPE REF TO cl_wb_request, - li_adt_uri_mapper_vit TYPE REF TO object, - is_vit_wb_request TYPE abap_bool. - - cl_wb_request=>create_from_object_ref( - EXPORTING - p_wb_object = io_object - RECEIVING - p_wb_request = li_wb_request - EXCEPTIONS - illegal_operation = 1 - cancelled = 2 - OTHERS = 3 ). - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( 'ADT Jump Error' ). - ENDIF. - - TRY. - CALL METHOD io_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER_VIT') - RECEIVING - result = li_adt_uri_mapper_vit. - - CALL METHOD li_adt_uri_mapper_vit->('IF_ADT_URI_MAPPER_VIT~IS_VIT_WB_REQUEST') - EXPORTING - wb_request = li_wb_request - RECEIVING - result = is_vit_wb_request. - - IF is_vit_wb_request = abap_true. - r_is_adt_jump_possible = abap_false. - ELSE. - r_is_adt_jump_possible = abap_true. - ENDIF. - - CATCH cx_root. - zcx_abapgit_exception=>raise( 'ADT Jump Error' ). - ENDTRY. - - ENDMETHOD. - -ENDCLASS. "lcl_objects_super IMPLEMENTATION - -CLASS lcl_objects_saxx_super DEFINITION ABSTRACT - INHERITING FROM lcl_objects_super. -* common class for SAPC and SAMC objects - - PUBLIC SECTION. - INTERFACES: - zif_abapgit_object. - - PROTECTED SECTION. - METHODS: - get_persistence_class_name ABSTRACT - RETURNING - VALUE(r_persistence_class_name) TYPE seoclsname, - - get_data_class_name ABSTRACT - RETURNING - VALUE(r_data_class_name) TYPE seoclsname, - - get_data_structure_name ABSTRACT - RETURNING - VALUE(r_data_structure_name) TYPE string. - - PRIVATE SECTION. - DATA: mo_persistence TYPE REF TO if_wb_object_persist, - mo_appl_obj_data TYPE REF TO if_wb_object_data_model, - mv_data_structure_name TYPE string, - mv_appl_obj_cls_name TYPE seoclsname, - mv_persistence_cls_name TYPE seoclsname. - - METHODS: - create_channel_objects - RAISING - zcx_abapgit_exception, - - get_data - EXPORTING - p_data TYPE any - RAISING - zcx_abapgit_exception, - - lock - RAISING - zcx_abapgit_exception, - - unlock - RAISING - zcx_abapgit_exception, - - get_names. - -ENDCLASS. - -CLASS lcl_objects_saxx_super IMPLEMENTATION. - - METHOD zif_abapgit_object~has_changed_since. - rv_changed = abap_true. - ENDMETHOD. - - METHOD zif_abapgit_object~changed_by. - - DATA: lr_data TYPE REF TO data. - - FIELD-SYMBOLS: TYPE any, - TYPE any, - TYPE any. - - create_channel_objects( ). - - TRY. - CREATE DATA lr_data TYPE (mv_data_structure_name). - ASSIGN lr_data->* TO . - - CATCH cx_root. - zcx_abapgit_exception=>raise( |{ ms_item-obj_name } not supported| ). - ENDTRY. - - get_data( - IMPORTING - p_data = ). - - ASSIGN COMPONENT 'HEADER' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - - IF IS NOT INITIAL. - rv_user = . - ELSE. - rv_user = c_user_unknown. - ENDIF. - - ENDMETHOD. - - METHOD zif_abapgit_object~get_metadata. - rs_metadata = get_metadata( ). - rs_metadata-delete_tadir = abap_true. - ENDMETHOD. - - METHOD zif_abapgit_object~exists. - - DATA: object_key TYPE seu_objkey. - - create_channel_objects( ). - - object_key = ms_item-obj_name. - - TRY. - mo_persistence->get( p_object_key = object_key - p_version = 'A' - p_existence_check_only = abap_true ). - - CATCH cx_swb_object_does_not_exist cx_swb_exception. - rv_bool = abap_false. - RETURN. - ENDTRY. - - rv_bool = abap_true. - - ENDMETHOD. - - METHOD zif_abapgit_object~serialize. - - DATA: lr_data TYPE REF TO data. - - FIELD-SYMBOLS: TYPE any, - TYPE any, - TYPE any. - - create_channel_objects( ). - - TRY. - CREATE DATA lr_data TYPE (mv_data_structure_name). - ASSIGN lr_data->* TO . - - CATCH cx_root. - zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). - ENDTRY. - - get_data( - IMPORTING - p_data = ). - - ASSIGN COMPONENT 'HEADER' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - - ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE TO . - ASSERT sy-subrc = 0. - CLEAR . - - io_xml->add( iv_name = ms_item-obj_type - ig_data = ). - - ENDMETHOD. - - METHOD zif_abapgit_object~deserialize. - - DATA: lr_data TYPE REF TO data. - - FIELD-SYMBOLS: TYPE any. - - create_channel_objects( ). - - TRY. - CREATE DATA lr_data TYPE (mv_data_structure_name). - ASSIGN lr_data->* TO . - - CATCH cx_root. - zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). - ENDTRY. - - io_xml->read( - EXPORTING - iv_name = ms_item-obj_type - CHANGING - cg_data = ). - - IF zif_abapgit_object~exists( ) = abap_true. - zif_abapgit_object~delete( ). - ENDIF. - - TRY. - lock( ). - - CALL FUNCTION 'RS_CORR_INSERT' - EXPORTING - object = ms_item-obj_name - object_class = ms_item-obj_type - mode = 'I' - global_lock = abap_true - devclass = iv_package - master_language = mv_language - EXCEPTIONS - cancelled = 1 - permission_failure = 2 - unknown_objectclass = 3 - OTHERS = 4. - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ). - ENDIF. - - mo_appl_obj_data->set_data( ). - - mo_persistence->save( mo_appl_obj_data ). - - unlock( ). - - CATCH cx_swb_exception. - zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ). - ENDTRY. - - ENDMETHOD. - - METHOD zif_abapgit_object~delete. - - DATA: object_key TYPE seu_objkey. - - create_channel_objects( ). - - object_key = ms_item-obj_name. - - TRY. - lock( ). - - mo_persistence->delete( object_key ). - - unlock( ). - - CATCH cx_swb_exception. - zcx_abapgit_exception=>raise( |Error occured while deleting { ms_item-obj_type }| ). - ENDTRY. - - ENDMETHOD. - - METHOD zif_abapgit_object~jump. - - CALL FUNCTION 'RS_TOOL_ACCESS' - EXPORTING - operation = 'SHOW' - object_name = ms_item-obj_name - object_type = ms_item-obj_type. - - ENDMETHOD. - - METHOD zif_abapgit_object~compare_to_remote_version. - CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. - ENDMETHOD. - - METHOD create_channel_objects. - - get_names( ). - - TRY. - IF mo_appl_obj_data IS NOT BOUND. - CREATE OBJECT mo_appl_obj_data TYPE (mv_appl_obj_cls_name). - ENDIF. - - IF mo_persistence IS NOT BOUND. - CREATE OBJECT mo_persistence TYPE (mv_persistence_cls_name). - ENDIF. - - CATCH cx_root. - zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). - ENDTRY. - - ENDMETHOD. - - METHOD get_data. - - DATA: object_key TYPE seu_objkey. - - object_key = ms_item-obj_name. - - TRY. - mo_persistence->get( - EXPORTING - p_object_key = object_key - p_version = 'A' - CHANGING - p_object_data = mo_appl_obj_data ). - - CATCH cx_root. - zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). - ENDTRY. - - mo_appl_obj_data->get_data( - IMPORTING - p_data = p_data ). - - ENDMETHOD. - - METHOD lock. - - DATA: objname TYPE trobj_name, - object_key TYPE seu_objkey, - objtype TYPE trobjtype. - - objname = ms_item-obj_name. - object_key = ms_item-obj_name. - objtype = ms_item-obj_type. - - mo_persistence->lock( - EXPORTING - p_objname_tr = objname - p_object_key = object_key - p_objtype_tr = objtype - EXCEPTIONS - foreign_lock = 1 - error_occurred = 2 - OTHERS = 3 ). - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( |Error occured while locking { ms_item-obj_type } | && objname ). - ENDIF. - - ENDMETHOD. "lock - - METHOD unlock. - - DATA: objname TYPE trobj_name, - object_key TYPE seu_objkey, - objtype TYPE trobjtype. - - objname = ms_item-obj_name. - object_key = ms_item-obj_name. - objtype = ms_item-obj_type. - - mo_persistence->unlock( p_objname_tr = objname - p_object_key = object_key - p_objtype_tr = objtype ). - - ENDMETHOD. "unlock - - METHOD get_names. - - IF mv_data_structure_name IS INITIAL. - mv_data_structure_name = get_data_structure_name( ). - ENDIF. - - IF mv_appl_obj_cls_name IS INITIAL. - mv_appl_obj_cls_name = get_data_class_name( ). - ENDIF. - - IF mv_persistence_cls_name IS INITIAL. - mv_persistence_cls_name = get_persistence_class_name( ). - ENDIF. - - ENDMETHOD. - -ENDCLASS. +*CLASS lcl_objects_super IMPLEMENTATION. +* +* METHOD constructor. +* ms_item = is_item. +* ASSERT NOT ms_item IS INITIAL. +* mv_language = iv_language. +* ASSERT NOT mv_language IS INITIAL. +* ENDMETHOD. "constructor +* +* METHOD jump_se11. +* +* DATA: lt_bdcdata TYPE TABLE OF bdcdata. +* +* FIELD-SYMBOLS: LIKE LINE OF lt_bdcdata. +* +* +* APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . +* -program = 'SAPLSD_ENTRY'. +* -dynpro = '1000'. +* -dynbegin = abap_true. +* +* APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . +* -fnam = 'BDC_OKCODE'. +* -fval = '=WB_DISPLAY'. +* +* APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . +* -fnam = iv_radio. +* -fval = abap_true. +* +* APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . +* -fnam = iv_field. +* -fval = ms_item-obj_name. +* +* CALL FUNCTION 'ABAP4_CALL_TRANSACTION' +* STARTING NEW TASK 'GIT' +* EXPORTING +* tcode = 'SE11' +* mode_val = 'E' +* TABLES +* using_tab = lt_bdcdata +* EXCEPTIONS +* system_failure = 1 +* communication_failure = 2 +* resource_failure = 3 +* OTHERS = 4 +* ##fm_subrc_ok. "#EC CI_SUBRC +* +* ENDMETHOD. "jump_se11 +* +* METHOD jump_adt. +* +* DATA: adt_link TYPE string, +* obj_type TYPE trobjtype, +* obj_name TYPE trobj_name, +* li_object TYPE REF TO cl_wb_object, +* li_adt TYPE REF TO object, +* li_adt_uri_mapper TYPE REF TO object, +* li_adt_objref TYPE REF TO object ##needed. +* +* FIELD-SYMBOLS: TYPE string. +* +* obj_name = i_obj_name. +* obj_type = i_obj_type. +* +* TRY. +* cl_wb_object=>create_from_transport_key( EXPORTING p_object = obj_type p_obj_name = obj_name +* RECEIVING p_wb_object = li_object +* EXCEPTIONS OTHERS = 1 ). +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'ADT Jump Error' ). +* ENDIF. +* +* CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') +* RECEIVING +* result = li_adt. +* +* IF is_adt_jump_possible( io_object = li_object +* io_adt = li_adt ) = abap_false. +* zcx_abapgit_exception=>raise( 'ADT Jump Error' ). +* ENDIF. +* +* CALL METHOD li_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER') +* RECEIVING +* result = li_adt_uri_mapper. +* +* CALL METHOD li_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF') +* EXPORTING +* wb_object = li_object +* RECEIVING +* result = li_adt_objref. +* +* ASSIGN ('li_adt_objref->ref_data-uri') TO . +* ASSERT sy-subrc = 0. +* +* CONCATENATE 'adt://' sy-sysid INTO adt_link. +* +* cl_gui_frontend_services=>execute( EXPORTING document = adt_link +* EXCEPTIONS OTHERS = 1 ). +* +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'ADT Jump Error' ). +* ENDIF. +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( 'ADT Jump Error' ). +* ENDTRY. +* +* ENDMETHOD. +* +* METHOD check_timestamp. +* +* DATA: lv_ts TYPE timestamp. +* +* IF sy-subrc = 0 AND iv_date IS NOT INITIAL AND iv_time IS NOT INITIAL. +* cl_abap_tstmp=>systemtstmp_syst2utc( +* EXPORTING syst_date = iv_date +* syst_time = iv_time +* IMPORTING utc_tstmp = lv_ts ). +* IF lv_ts < iv_timestamp. +* rv_changed = abap_false. " Unchanged +* ELSE. +* rv_changed = abap_true. +* ENDIF. +* ELSE. " Not found? => changed +* rv_changed = abap_true. +* ENDIF. +* +* ENDMETHOD. +* +* METHOD get_metadata. +* rs_metadata-class = +* cl_abap_classdescr=>describe_by_object_ref( me )->get_relative_name( ). +* rs_metadata-version = 'v1.0.0' ##no_text. +* ENDMETHOD. "get_metadata +* +* METHOD tadir_insert. +* +* CALL FUNCTION 'TR_TADIR_INTERFACE' +* EXPORTING +* wi_test_modus = abap_false +* wi_tadir_pgmid = 'R3TR' +* wi_tadir_object = ms_item-obj_type +* wi_tadir_obj_name = ms_item-obj_name +* wi_tadir_author = sy-uname +* wi_tadir_devclass = iv_package +* wi_tadir_masterlang = mv_language +* iv_delflag = abap_false +* EXCEPTIONS +* OTHERS = 1. +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from TR_TADIR_INTERFACE' ). +* ENDIF. +* +* ENDMETHOD. +* +* METHOD corr_insert. +* +* DATA: ls_object TYPE ddenqs. +* +* +* ls_object-objtype = ms_item-obj_type. +* ls_object-objname = ms_item-obj_name. +* +* CALL FUNCTION 'RS_CORR_INSERT' +* EXPORTING +* object = ls_object +* object_class = 'DICT' +* devclass = iv_package +* master_language = mv_language +* mode = 'INSERT' +* EXCEPTIONS +* cancelled = 1 +* permission_failure = 2 +* unknown_objectclass = 3 +* OTHERS = 4. +* IF sy-subrc = 1. +* zcx_abapgit_exception=>raise( 'Cancelled' ). +* ELSEIF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'error from RS_CORR_INSERT' ). +* ENDIF. +* +* ENDMETHOD. "corr_insert +* +* +* METHOD is_adt_jump_possible. +* +* DATA: li_wb_request TYPE REF TO cl_wb_request, +* li_adt_uri_mapper_vit TYPE REF TO object, +* is_vit_wb_request TYPE abap_bool. +* +* cl_wb_request=>create_from_object_ref( +* EXPORTING +* p_wb_object = io_object +* RECEIVING +* p_wb_request = li_wb_request +* EXCEPTIONS +* illegal_operation = 1 +* cancelled = 2 +* OTHERS = 3 ). +* +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( 'ADT Jump Error' ). +* ENDIF. +* +* TRY. +* CALL METHOD io_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER_VIT') +* RECEIVING +* result = li_adt_uri_mapper_vit. +* +* CALL METHOD li_adt_uri_mapper_vit->('IF_ADT_URI_MAPPER_VIT~IS_VIT_WB_REQUEST') +* EXPORTING +* wb_request = li_wb_request +* RECEIVING +* result = is_vit_wb_request. +* +* IF is_vit_wb_request = abap_true. +* r_is_adt_jump_possible = abap_false. +* ELSE. +* r_is_adt_jump_possible = abap_true. +* ENDIF. +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( 'ADT Jump Error' ). +* ENDTRY. +* +* ENDMETHOD. +* +*ENDCLASS. "lcl_objects_super IMPLEMENTATION + +*CLASS lcl_objects_saxx_super DEFINITION ABSTRACT +* INHERITING FROM lcl_objects_super. +** common class for SAPC and SAMC objects +* +* PUBLIC SECTION. +* INTERFACES: +* zif_abapgit_object. +* +* PROTECTED SECTION. +* METHODS: +* get_persistence_class_name ABSTRACT +* RETURNING +* VALUE(r_persistence_class_name) TYPE seoclsname, +* +* get_data_class_name ABSTRACT +* RETURNING +* VALUE(r_data_class_name) TYPE seoclsname, +* +* get_data_structure_name ABSTRACT +* RETURNING +* VALUE(r_data_structure_name) TYPE string. +* +* PRIVATE SECTION. +* DATA: mo_persistence TYPE REF TO if_wb_object_persist, +* mo_appl_obj_data TYPE REF TO if_wb_object_data_model, +* mv_data_structure_name TYPE string, +* mv_appl_obj_cls_name TYPE seoclsname, +* mv_persistence_cls_name TYPE seoclsname. +* +* METHODS: +* create_channel_objects +* RAISING +* zcx_abapgit_exception, +* +* get_data +* EXPORTING +* p_data TYPE any +* RAISING +* zcx_abapgit_exception, +* +* lock +* RAISING +* zcx_abapgit_exception, +* +* unlock +* RAISING +* zcx_abapgit_exception, +* +* get_names. +* +*ENDCLASS. +* +*CLASS lcl_objects_saxx_super IMPLEMENTATION. +* +* METHOD zif_abapgit_object~has_changed_since. +* rv_changed = abap_true. +* ENDMETHOD. +* +* METHOD zif_abapgit_object~changed_by. +* +* DATA: lr_data TYPE REF TO data. +* +* FIELD-SYMBOLS: TYPE any, +* TYPE any, +* TYPE any. +* +* create_channel_objects( ). +* +* TRY. +* CREATE DATA lr_data TYPE (mv_data_structure_name). +* ASSIGN lr_data->* TO . +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( |{ ms_item-obj_name } not supported| ). +* ENDTRY. +* +* get_data( +* IMPORTING +* p_data = ). +* +* ASSIGN COMPONENT 'HEADER' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* +* IF IS NOT INITIAL. +* rv_user = . +* ELSE. +* rv_user = c_user_unknown. +* ENDIF. +* +* ENDMETHOD. +* +* METHOD zif_abapgit_object~get_metadata. +* rs_metadata = get_metadata( ). +* rs_metadata-delete_tadir = abap_true. +* ENDMETHOD. +* +* METHOD zif_abapgit_object~exists. +* +* DATA: object_key TYPE seu_objkey. +* +* create_channel_objects( ). +* +* object_key = ms_item-obj_name. +* +* TRY. +* mo_persistence->get( p_object_key = object_key +* p_version = 'A' +* p_existence_check_only = abap_true ). +* +* CATCH cx_swb_object_does_not_exist cx_swb_exception. +* rv_bool = abap_false. +* RETURN. +* ENDTRY. +* +* rv_bool = abap_true. +* +* ENDMETHOD. +* +* METHOD zif_abapgit_object~serialize. +* +* DATA: lr_data TYPE REF TO data. +* +* FIELD-SYMBOLS: TYPE any, +* TYPE any, +* TYPE any. +* +* create_channel_objects( ). +* +* TRY. +* CREATE DATA lr_data TYPE (mv_data_structure_name). +* ASSIGN lr_data->* TO . +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). +* ENDTRY. +* +* get_data( +* IMPORTING +* p_data = ). +* +* ASSIGN COMPONENT 'HEADER' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* +* ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE TO . +* ASSERT sy-subrc = 0. +* CLEAR . +* +* io_xml->add( iv_name = ms_item-obj_type +* ig_data = ). +* +* ENDMETHOD. +* +* METHOD zif_abapgit_object~deserialize. +* +* DATA: lr_data TYPE REF TO data. +* +* FIELD-SYMBOLS: TYPE any. +* +* create_channel_objects( ). +* +* TRY. +* CREATE DATA lr_data TYPE (mv_data_structure_name). +* ASSIGN lr_data->* TO . +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). +* ENDTRY. +* +* io_xml->read( +* EXPORTING +* iv_name = ms_item-obj_type +* CHANGING +* cg_data = ). +* +* IF zif_abapgit_object~exists( ) = abap_true. +* zif_abapgit_object~delete( ). +* ENDIF. +* +* TRY. +* lock( ). +* +* CALL FUNCTION 'RS_CORR_INSERT' +* EXPORTING +* object = ms_item-obj_name +* object_class = ms_item-obj_type +* mode = 'I' +* global_lock = abap_true +* devclass = iv_package +* master_language = mv_language +* EXCEPTIONS +* cancelled = 1 +* permission_failure = 2 +* unknown_objectclass = 3 +* OTHERS = 4. +* +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ). +* ENDIF. +* +* mo_appl_obj_data->set_data( ). +* +* mo_persistence->save( mo_appl_obj_data ). +* +* unlock( ). +* +* CATCH cx_swb_exception. +* zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ). +* ENDTRY. +* +* ENDMETHOD. +* +* METHOD zif_abapgit_object~delete. +* +* DATA: object_key TYPE seu_objkey. +* +* create_channel_objects( ). +* +* object_key = ms_item-obj_name. +* +* TRY. +* lock( ). +* +* mo_persistence->delete( object_key ). +* +* unlock( ). +* +* CATCH cx_swb_exception. +* zcx_abapgit_exception=>raise( |Error occured while deleting { ms_item-obj_type }| ). +* ENDTRY. +* +* ENDMETHOD. +* +* METHOD zif_abapgit_object~jump. +* +* CALL FUNCTION 'RS_TOOL_ACCESS' +* EXPORTING +* operation = 'SHOW' +* object_name = ms_item-obj_name +* object_type = ms_item-obj_type. +* +* ENDMETHOD. +* +* METHOD zif_abapgit_object~compare_to_remote_version. +* CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. +* ENDMETHOD. +* +* METHOD create_channel_objects. +* +* get_names( ). +* +* TRY. +* IF mo_appl_obj_data IS NOT BOUND. +* CREATE OBJECT mo_appl_obj_data TYPE (mv_appl_obj_cls_name). +* ENDIF. +* +* IF mo_persistence IS NOT BOUND. +* CREATE OBJECT mo_persistence TYPE (mv_persistence_cls_name). +* ENDIF. +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). +* ENDTRY. +* +* ENDMETHOD. +* +* METHOD get_data. +* +* DATA: object_key TYPE seu_objkey. +* +* object_key = ms_item-obj_name. +* +* TRY. +* mo_persistence->get( +* EXPORTING +* p_object_key = object_key +* p_version = 'A' +* CHANGING +* p_object_data = mo_appl_obj_data ). +* +* CATCH cx_root. +* zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ). +* ENDTRY. +* +* mo_appl_obj_data->get_data( +* IMPORTING +* p_data = p_data ). +* +* ENDMETHOD. +* +* METHOD lock. +* +* DATA: objname TYPE trobj_name, +* object_key TYPE seu_objkey, +* objtype TYPE trobjtype. +* +* objname = ms_item-obj_name. +* object_key = ms_item-obj_name. +* objtype = ms_item-obj_type. +* +* mo_persistence->lock( +* EXPORTING +* p_objname_tr = objname +* p_object_key = object_key +* p_objtype_tr = objtype +* EXCEPTIONS +* foreign_lock = 1 +* error_occurred = 2 +* OTHERS = 3 ). +* +* IF sy-subrc <> 0. +* zcx_abapgit_exception=>raise( |Error occured while locking { ms_item-obj_type } | && objname ). +* ENDIF. +* +* ENDMETHOD. "lock +* +* METHOD unlock. +* +* DATA: objname TYPE trobj_name, +* object_key TYPE seu_objkey, +* objtype TYPE trobjtype. +* +* objname = ms_item-obj_name. +* object_key = ms_item-obj_name. +* objtype = ms_item-obj_type. +* +* mo_persistence->unlock( p_objname_tr = objname +* p_object_key = object_key +* p_objtype_tr = objtype ). +* +* ENDMETHOD. "unlock +* +* METHOD get_names. +* +* IF mv_data_structure_name IS INITIAL. +* mv_data_structure_name = get_data_structure_name( ). +* ENDIF. +* +* IF mv_appl_obj_cls_name IS INITIAL. +* mv_appl_obj_cls_name = get_data_class_name( ). +* ENDIF. +* +* IF mv_persistence_cls_name IS INITIAL. +* mv_persistence_cls_name = get_persistence_class_name( ). +* ENDIF. +* +* ENDMETHOD. +* +*ENDCLASS. *----------------------------------------------------------------------* * CLASS lcl_object DEFINITION diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index aa8a830a1..0133f9637 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -151,10 +151,12 @@ CLASS lcl_objects IMPLEMENTATION. * lv_class_name = 'LCL_OBJECT_CLAS_NEW'. * ENDIF. + REPLACE FIRST OCCURRENCE OF 'LCL' IN lv_class_name WITH 'ZCL_ABAPGIT'. + TRY. CREATE OBJECT ri_obj TYPE (lv_class_name) EXPORTING - is_item = is_item + is_item = is_item iv_language = iv_language. CATCH cx_sy_create_object_error. lv_message = |Object type { is_item-obj_type } not supported, serialize|. "#EC NOTEXT @@ -243,7 +245,7 @@ CLASS lcl_objects IMPLEMENTATION. METHOD class_name. - CONCATENATE 'LCL_OBJECT_' is_item-obj_type INTO rv_class_name. "#EC NOTEXT + CONCATENATE 'ZCL_ABAPGIT_OBJECT_' is_item-obj_type INTO rv_class_name. "#EC NOTEXT ENDMETHOD. "class_name @@ -259,8 +261,9 @@ CLASS lcl_objects IMPLEMENTATION. IF lv_adt_jump_enabled = abap_true. TRY. - lcl_objects_super=>jump_adt( i_obj_name = is_item-obj_name - i_obj_type = is_item-obj_type ). + zcl_abapgit_objects_super=>jump_adt( + i_obj_name = is_item-obj_name + i_obj_type = is_item-obj_type ). CATCH zcx_abapgit_exception. li_obj->jump( ). ENDTRY. @@ -277,7 +280,7 @@ CLASS lcl_objects IMPLEMENTATION. IF is_item IS INITIAL. * eg. ".abapgit.xml" file - rv_user = lcl_objects_super=>c_user_unknown. + rv_user = zcl_abapgit_objects_super=>c_user_unknown. ELSE. li_obj = create_object( is_item = is_item iv_language = zif_abapgit_definitions=>gc_english ). diff --git a/src/zabapgit_skip_objects.prog.abap b/src/zabapgit_skip_objects.prog.abap index 82f98f40f..f9d4c4708 100644 --- a/src/zabapgit_skip_objects.prog.abap +++ b/src/zabapgit_skip_objects.prog.abap @@ -31,11 +31,11 @@ CLASS lcl_skip_objects IMPLEMENTATION. ENDMETHOD. METHOD has_sadl_superclass. - DATA: lo_oo_functions TYPE REF TO lif_oo_object_fnc, + DATA: lo_oo_functions TYPE REF TO zif_abapgit_oo_object_fnc, lv_class_name TYPE seoclsname, lv_superclass TYPE seoclsname. - lo_oo_functions = lcl_oo_factory=>make( is_class-object ). + lo_oo_functions = zcl_abapgit_oo_factory=>make( is_class-object ). lv_class_name = is_class-obj_name. lv_superclass = lo_oo_functions->read_superclass( lv_class_name ). IF lv_superclass = 'CL_SADL_GTK_EXPOSURE_MPC'. diff --git a/src/zabapgit_tadir.prog.abap b/src/zabapgit_tadir.prog.abap index 2e4bbc55b..5dc82dd4a 100644 --- a/src/zabapgit_tadir.prog.abap +++ b/src/zabapgit_tadir.prog.abap @@ -42,11 +42,6 @@ CLASS lcl_tadir DEFINITION FINAL. iv_obj_name TYPE tadir-obj_name RETURNING VALUE(rs_tadir) TYPE tadir RAISING zcx_abapgit_exception, - read_single_sicf - IMPORTING iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR' - iv_obj_name TYPE tadir-obj_name - RETURNING VALUE(rs_tadir) TYPE tadir - RAISING zcx_abapgit_exception, get_object_package IMPORTING iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR' iv_object TYPE tadir-object @@ -56,10 +51,6 @@ CLASS lcl_tadir DEFINITION FINAL. PRIVATE SECTION. CLASS-METHODS: - read_sicf_url - IMPORTING iv_obj_name TYPE tadir-obj_name - RETURNING VALUE(rv_hash) TYPE text25 - RAISING zcx_abapgit_exception, check_exists IMPORTING it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt RETURNING VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt @@ -85,8 +76,9 @@ CLASS lcl_tadir IMPLEMENTATION. METHOD read_single. IF iv_object = 'SICF'. - rs_tadir = read_single_sicf( iv_pgmid = iv_pgmid - iv_obj_name = iv_obj_name ). + rs_tadir = zcl_abapgit_object_sicf=>read_tadir_sicf( + iv_pgmid = iv_pgmid + iv_obj_name = iv_obj_name ). ELSE. SELECT SINGLE * FROM tadir INTO rs_tadir WHERE pgmid = iv_pgmid @@ -96,39 +88,6 @@ CLASS lcl_tadir IMPLEMENTATION. ENDMETHOD. "read_single - METHOD read_single_sicf. - - DATA: lt_tadir TYPE STANDARD TABLE OF tadir WITH DEFAULT KEY, - lv_hash TYPE text25, - lv_obj_name TYPE tadir-obj_name. - - FIELD-SYMBOLS: LIKE LINE OF lt_tadir. - - - lv_hash = iv_obj_name+15. - CONCATENATE iv_obj_name(15) '%' INTO lv_obj_name. - - SELECT * FROM tadir INTO TABLE lt_tadir - WHERE pgmid = iv_pgmid - AND object = 'SICF' - AND obj_name LIKE lv_obj_name - ORDER BY PRIMARY KEY. - - LOOP AT lt_tadir ASSIGNING . - IF read_sicf_url( -obj_name ) = lv_hash. - rs_tadir = . - RETURN. - ENDIF. - ENDLOOP. - - IF lines( lt_tadir ) = 1. - READ TABLE lt_tadir INDEX 1 ASSIGNING . - ASSERT sy-subrc = 0. - rs_tadir = . - ENDIF. - - ENDMETHOD. - METHOD get_object_package. DATA ls_tadir TYPE tadir. @@ -145,34 +104,6 @@ CLASS lcl_tadir IMPLEMENTATION. ENDMETHOD. "get_object_package. - METHOD read_sicf_url. - - DATA: lv_name TYPE icfname, - lv_url TYPE string, - lv_parguid TYPE icfparguid. - - - lv_name = iv_obj_name. - lv_parguid = iv_obj_name+15. - - cl_icf_tree=>if_icf_tree~get_info_from_serv( - EXPORTING - icf_name = lv_name - icfparguid = lv_parguid - IMPORTING - url = lv_url - EXCEPTIONS - wrong_name = 1 - wrong_parguid = 2 - incorrect_service = 3 - no_authority = 4 - OTHERS = 5 ). - IF sy-subrc = 0. - rv_hash = zcl_abapgit_hash=>sha1_raw( zcl_abapgit_convert=>string_to_xstring_utf8( lv_url ) ). - ENDIF. - - ENDMETHOD. - METHOD check_exists. DATA: lv_exists TYPE abap_bool, @@ -284,7 +215,7 @@ CLASS lcl_tadir IMPLEMENTATION. CASE -object. WHEN 'SICF'. * replace the internal GUID with a hash of the path - -obj_name+15 = read_sicf_url( -obj_name ). + -obj_name+15 = zcl_abapgit_object_sicf=>read_sicf_url( -obj_name ). ENDCASE. ENDLOOP. diff --git a/src/zabapgit_unit_test.prog.abap b/src/zabapgit_unit_test.prog.abap index 813b221c6..6f08cc6cf 100644 --- a/src/zabapgit_unit_test.prog.abap +++ b/src/zabapgit_unit_test.prog.abap @@ -1204,180 +1204,180 @@ CLASS ltcl_persistence_settings IMPLEMENTATION. ENDCLASS. -CLASS ltcl_oo_serialize DEFINITION FINAL FOR TESTING - DURATION SHORT - RISK LEVEL HARMLESS. - - PRIVATE SECTION. - METHODS: - setup, - empty_include FOR TESTING RAISING cx_static_check, - one_line_include FOR TESTING RAISING cx_static_check, - one_line_include_2 FOR TESTING RAISING cx_static_check, - one_line_include_3 FOR TESTING RAISING cx_static_check, - two_line_include FOR TESTING RAISING cx_static_check, - two_line_include_2 FOR TESTING RAISING cx_static_check, - two_line_include_3 FOR TESTING RAISING cx_static_check, - more_than_two_lines FOR TESTING RAISING cx_static_check, - - _given_source_is - IMPORTING - i_source TYPE LINE OF zif_abapgit_definitions=>ty_string_tt, - _given_empty_test_include, - _when_skip_is_calculated, - _then_should_be_skipped, - _then_should_not_be_skipped. - - DATA: mo_oo_serializer TYPE REF TO lcl_oo_serializer, - mt_source TYPE zif_abapgit_definitions=>ty_string_tt, - mv_skip_testclass TYPE abap_bool. - -ENDCLASS. - - -CLASS ltcl_oo_serialize IMPLEMENTATION. - - METHOD setup. - - CREATE OBJECT mo_oo_serializer. - - ENDMETHOD. - - METHOD empty_include. - - _given_empty_test_include( ). - - _when_skip_is_calculated( ). - - _then_should_be_skipped( ). - - ENDMETHOD. - - METHOD one_line_include. - - _given_source_is( `*"* use this source file for your ABAP unit test classes` ). - - _when_skip_is_calculated( ). - - _then_should_be_skipped( ). - - ENDMETHOD. - - METHOD one_line_include_2. - - _given_source_is( `*` ). - - _when_skip_is_calculated( ). - - _then_should_be_skipped( ). - - ENDMETHOD. - - METHOD one_line_include_3. - - _given_source_is( `write: 'This is ABAP'.` ). - - _when_skip_is_calculated( ). - - _then_should_not_be_skipped( ). - - ENDMETHOD. - - METHOD two_line_include. - - _given_source_is( `*"* use this source file for your ABAP unit test classes` ). - _given_source_is( `` ). - - _when_skip_is_calculated( ). - - _then_should_be_skipped( ). - - ENDMETHOD. - - METHOD two_line_include_2. - - _given_source_is( `*"* use this source file for your ABAP unit test classes` ). - _given_source_is( `write: 'This is ABAP'.` ). - - _when_skip_is_calculated( ). - - _then_should_not_be_skipped( ). - - ENDMETHOD. - - METHOD two_line_include_3. - - _given_source_is( ` ` ). - _given_source_is( `*"* use this source file for your ABAP unit test classes` ). - - _when_skip_is_calculated( ). - - _then_should_not_be_skipped( ). - - ENDMETHOD. - - METHOD more_than_two_lines. - - _given_source_is( `*"* use this source file for your ABAP unit test classes` ). - _given_source_is( `CLASS ltcl_test DEFINITION FINAL FOR TESTING` ). - _given_source_is( ` DURATION SHORT` ). - _given_source_is( ` RISK LEVEL HARMLESS.` ). - _given_source_is( ` ` ). - _given_source_is( ` PRIVATE SECTION.` ). - _given_source_is( ` METHODS:` ). - _given_source_is( ` first_test FOR TESTING RAISING cx_static_check.` ). - _given_source_is( `ENDCLASS.` ). - _given_source_is( ` ` ). - _given_source_is( `CLASS ltcl_test IMPLEMENTATION.` ). - _given_source_is( ` ` ). - _given_source_is( ` METHOD first_test.` ). - _given_source_is( ` cl_abap_unit_assert=>fail( 'This is a real test' ).` ). - _given_source_is( ` ENDMETHOD.` ). - _given_source_is( ` ` ). - _given_source_is( `ENDCLASS.` ). - - _when_skip_is_calculated( ). - - _then_should_not_be_skipped( ). - - ENDMETHOD. - - METHOD _given_source_is. - - INSERT i_source INTO TABLE mt_source. - - ENDMETHOD. - - METHOD _given_empty_test_include. - - ENDMETHOD. - - METHOD _when_skip_is_calculated. - - mv_skip_testclass = mo_oo_serializer->calculate_skip_testclass( mt_source ). - - ENDMETHOD. - - METHOD _then_should_be_skipped. - - cl_abap_unit_assert=>assert_equals( - act = mv_skip_testclass - exp = abap_true - msg = |Testclass should be skipped| ). - - ENDMETHOD. - - - METHOD _then_should_not_be_skipped. - - cl_abap_unit_assert=>assert_equals( - act = mv_skip_testclass - exp = abap_false - msg = |Testclass should not be skipped| ). - - ENDMETHOD. - -ENDCLASS. +*CLASS ltcl_oo_serialize DEFINITION FINAL FOR TESTING +* DURATION SHORT +* RISK LEVEL HARMLESS. +* +* PRIVATE SECTION. +* METHODS: +* setup, +* empty_include FOR TESTING RAISING cx_static_check, +* one_line_include FOR TESTING RAISING cx_static_check, +* one_line_include_2 FOR TESTING RAISING cx_static_check, +* one_line_include_3 FOR TESTING RAISING cx_static_check, +* two_line_include FOR TESTING RAISING cx_static_check, +* two_line_include_2 FOR TESTING RAISING cx_static_check, +* two_line_include_3 FOR TESTING RAISING cx_static_check, +* more_than_two_lines FOR TESTING RAISING cx_static_check, +* +* _given_source_is +* IMPORTING +* i_source TYPE LINE OF zif_abapgit_definitions=>ty_string_tt, +* _given_empty_test_include, +* _when_skip_is_calculated, +* _then_should_be_skipped, +* _then_should_not_be_skipped. +* +* DATA: mo_oo_serializer TYPE REF TO lcl_oo_serializer, +* mt_source TYPE zif_abapgit_definitions=>ty_string_tt, +* mv_skip_testclass TYPE abap_bool. +* +*ENDCLASS. +* +* +*CLASS ltcl_oo_serialize IMPLEMENTATION. +* +* METHOD setup. +* +* CREATE OBJECT mo_oo_serializer. +* +* ENDMETHOD. +* +* METHOD empty_include. +* +* _given_empty_test_include( ). +* +* _when_skip_is_calculated( ). +* +* _then_should_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD one_line_include. +* +* _given_source_is( `*"* use this source file for your ABAP unit test classes` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD one_line_include_2. +* +* _given_source_is( `*` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD one_line_include_3. +* +* _given_source_is( `write: 'This is ABAP'.` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_not_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD two_line_include. +* +* _given_source_is( `*"* use this source file for your ABAP unit test classes` ). +* _given_source_is( `` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD two_line_include_2. +* +* _given_source_is( `*"* use this source file for your ABAP unit test classes` ). +* _given_source_is( `write: 'This is ABAP'.` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_not_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD two_line_include_3. +* +* _given_source_is( ` ` ). +* _given_source_is( `*"* use this source file for your ABAP unit test classes` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_not_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD more_than_two_lines. +* +* _given_source_is( `*"* use this source file for your ABAP unit test classes` ). +* _given_source_is( `CLASS ltcl_test DEFINITION FINAL FOR TESTING` ). +* _given_source_is( ` DURATION SHORT` ). +* _given_source_is( ` RISK LEVEL HARMLESS.` ). +* _given_source_is( ` ` ). +* _given_source_is( ` PRIVATE SECTION.` ). +* _given_source_is( ` METHODS:` ). +* _given_source_is( ` first_test FOR TESTING RAISING cx_static_check.` ). +* _given_source_is( `ENDCLASS.` ). +* _given_source_is( ` ` ). +* _given_source_is( `CLASS ltcl_test IMPLEMENTATION.` ). +* _given_source_is( ` ` ). +* _given_source_is( ` METHOD first_test.` ). +* _given_source_is( ` cl_abap_unit_assert=>fail( 'This is a real test' ).` ). +* _given_source_is( ` ENDMETHOD.` ). +* _given_source_is( ` ` ). +* _given_source_is( `ENDCLASS.` ). +* +* _when_skip_is_calculated( ). +* +* _then_should_not_be_skipped( ). +* +* ENDMETHOD. +* +* METHOD _given_source_is. +* +* INSERT i_source INTO TABLE mt_source. +* +* ENDMETHOD. +* +* METHOD _given_empty_test_include. +* +* ENDMETHOD. +* +* METHOD _when_skip_is_calculated. +* +* mv_skip_testclass = mo_oo_serializer->calculate_skip_testclass( mt_source ). +* +* ENDMETHOD. +* +* METHOD _then_should_be_skipped. +* +* cl_abap_unit_assert=>assert_equals( +* act = mv_skip_testclass +* exp = abap_true +* msg = |Testclass should be skipped| ). +* +* ENDMETHOD. +* +* +* METHOD _then_should_not_be_skipped. +* +* cl_abap_unit_assert=>assert_equals( +* act = mv_skip_testclass +* exp = abap_false +* msg = |Testclass should not be skipped| ). +* +* ENDMETHOD. +* +*ENDCLASS. INCLUDE zabapgit_unit_test_clas_intf. INCLUDE zabapgit_unit_test_transport. diff --git a/src/zabapgit_unit_test_clas_intf.prog.abap b/src/zabapgit_unit_test_clas_intf.prog.abap index 81ffbba15..94f174850 100644 --- a/src/zabapgit_unit_test_clas_intf.prog.abap +++ b/src/zabapgit_unit_test_clas_intf.prog.abap @@ -1,1326 +1,1351 @@ -CLASS ltd_spy_oo_object DEFINITION FOR TESTING. - PUBLIC SECTION. - INTERFACES: lif_oo_object_fnc. - DATA: - mv_package TYPE devclass, - mv_overwrite TYPE seox_boolean, - ms_interface_properties TYPE vseointerf, - ms_class_properties TYPE vseoclass, - ms_locals_key TYPE seoclskey, - mt_local_definitions TYPE rswsourcet, - mt_local_implementations TYPE rswsourcet, - mt_local_macros TYPE rswsourcet, - mt_local_test_classes TYPE rswsourcet, - mv_force TYPE seoflag, - ms_deserialize_key TYPE seoclskey, - mt_source TYPE zif_abapgit_definitions=>ty_string_tt, - ms_item_to_activate TYPE zif_abapgit_definitions=>ty_item, - mt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - ms_description_key TYPE seoclskey, - mv_text_pool_class_name TYPE seoclsname, - mt_text_pool TYPE textpool_table, - mv_text_pool_inserted TYPE abap_bool, - mt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, - mt_sotr_package TYPE devclass, - mv_docu_object_name TYPE dokhl-object, - mv_docu_language TYPE spras, - mt_docu_lines TYPE tlinetab, - mv_get_includes_called TYPE abap_bool, - mv_exists TYPE abap_bool, - mv_exists_called TYPE abap_bool, - ms_serialize_key TYPE seoclskey, - ms_delete_key TYPE seoclskey, - mv_skip_test_classes TYPE abap_bool. - PRIVATE SECTION. - - -ENDCLASS. -CLASS ltd_spy_oo_object IMPLEMENTATION. - METHOD lif_oo_object_fnc~create. - DATA lv_properties_structure_name TYPE string. - lv_properties_structure_name = cl_abap_typedescr=>describe_by_data( is_properties )->absolute_name. - IF lv_properties_structure_name = cl_abap_typedescr=>describe_by_data( ms_interface_properties )->absolute_name. - ms_interface_properties = is_properties. - ELSE. - ms_class_properties = is_properties. - ENDIF. - mv_package = iv_package. - mv_overwrite = iv_overwrite. - ENDMETHOD. - - METHOD lif_oo_object_fnc~generate_locals. - ms_locals_key = is_key. - mt_local_definitions = it_local_definitions. - mt_local_implementations = it_local_implementations. - mt_local_macros = it_local_macros. - mt_local_test_classes = it_local_test_classes. - mv_force = iv_force. - ENDMETHOD. - - METHOD lif_oo_object_fnc~deserialize_source. - ms_deserialize_key = is_key. - mt_source = it_source. - ENDMETHOD. - - METHOD lif_oo_object_fnc~add_to_activation_list. - ms_item_to_activate = is_item. - ENDMETHOD. - - METHOD lif_oo_object_fnc~update_descriptions. - ms_description_key = is_key. - mt_descriptions = it_descriptions. - ENDMETHOD. - - METHOD lif_oo_object_fnc~insert_text_pool. - mv_text_pool_inserted = abap_true. - mv_text_pool_class_name = iv_class_name. - mt_text_pool = it_text_pool. - cl_abap_unit_assert=>assert_equals( - act = iv_language - exp = sy-langu ). - ENDMETHOD. - - METHOD lif_oo_object_fnc~create_sotr. - mt_sotr = it_sotr. - mt_sotr_package = iv_package. - ENDMETHOD. - - METHOD lif_oo_object_fnc~create_documentation. - mv_docu_object_name = iv_object_name. - mv_docu_language = iv_language. - mt_docu_lines = it_lines. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_includes. - APPEND 'dummy' TO rt_includes. - mv_get_includes_called = abap_true. - ENDMETHOD. - - METHOD lif_oo_object_fnc~exists. - mv_exists_called = abap_true. - rv_exists = mv_exists. - ENDMETHOD. - - METHOD lif_oo_object_fnc~serialize_abap. - ms_serialize_key = is_class_key. - CASE iv_type. - WHEN seop_ext_class_locals_def. - rt_source = mt_local_definitions. - WHEN seop_ext_class_locals_imp. - rt_source = mt_local_implementations. - WHEN seop_ext_class_macros. - rt_source = mt_local_macros. - WHEN seop_ext_class_testclasses. - rt_source = mt_local_test_classes. - WHEN OTHERS. - rt_source = mt_source. - ENDCASE. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_class_properties. - rs_class_properties = ms_class_properties. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_interface_properties. - rs_interface_properties = ms_interface_properties. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_text_pool. - rt_text_pool = mt_text_pool. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_sotr. - rt_sotr = mt_sotr. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_documentation. - rt_lines = mt_docu_lines. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_descriptions. - rt_descriptions = mt_descriptions. - ENDMETHOD. - - METHOD lif_oo_object_fnc~get_skip_test_classes. - rv_skip = mv_skip_test_classes. - ENDMETHOD. - - METHOD lif_oo_object_fnc~delete. - ms_delete_key = is_deletion_key. - ENDMETHOD. - - METHOD lif_oo_object_fnc~read_superclass. - RETURN. - ENDMETHOD. - -ENDCLASS. - -CLASS ltd_fake_object_files DEFINITION FOR TESTING - INHERITING FROM zcl_abapgit_objects_files. - - PUBLIC SECTION. - METHODS constructor. - METHODS add_abap REDEFINITION. - METHODS read_abap REDEFINITION. - DATA: - mt_sources TYPE seop_source_string, - mt_local_definitions TYPE seop_source_string, - mt_local_implementations TYPE seop_source_string, - mt_local_macros TYPE seop_source_string, - mt_local_test_classes TYPE seop_source_string. -ENDCLASS. -CLASS ltd_fake_object_files IMPLEMENTATION. - METHOD read_abap. - CASE iv_extra. - WHEN 'locals_def'. - rt_abap = mt_local_definitions. - WHEN 'locals_imp'. - rt_abap = mt_local_implementations. - WHEN 'macros'. - rt_abap = mt_local_macros. - WHEN 'testclasses'. - rt_abap = mt_local_test_classes. - WHEN OTHERS. - rt_abap = mt_sources. - RETURN. - ENDCASE. - - cl_abap_unit_assert=>assert_equals( act = iv_error - exp = abap_false ). - ENDMETHOD. - METHOD constructor. - DATA ls_empty_item TYPE zif_abapgit_definitions=>ty_item. - super->constructor( ls_empty_item ). - APPEND 'source' TO me->mt_sources. - APPEND 'definition' TO me->mt_local_definitions. - APPEND 'implementation' TO me->mt_local_implementations. - APPEND 'macro' TO me->mt_local_macros. - APPEND 'test' TO me->mt_local_test_classes. - ENDMETHOD. - METHOD add_abap. - CASE iv_extra. - WHEN 'locals_def'. - mt_local_definitions = it_abap. - WHEN 'locals_imp'. - mt_local_implementations = it_abap. - WHEN 'macros'. - mt_local_macros = it_abap. - WHEN 'testclasses'. - mt_local_test_classes = it_abap. - WHEN OTHERS. - mt_sources = it_abap. - RETURN. - ENDCASE. - ENDMETHOD. -ENDCLASS. - -CLASS ltc_oo_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. - PROTECTED SECTION. - DATA: - mo_spy_oo_object_functions TYPE REF TO ltd_spy_oo_object, - mo_fake_object_files TYPE REF TO ltd_fake_object_files, - mo_xml_input TYPE REF TO zcl_abapgit_xml_input, - mo_xml_out TYPE REF TO zcl_abapgit_xml_output, - mo_oo_object TYPE REF TO zif_abapgit_object, - ms_item TYPE zif_abapgit_definitions=>ty_item. - - METHODS: when_deserializing - RAISING - zcx_abapgit_exception, - then_should_deserialize_source, - given_the_descriptions - IMPORTING - it_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt - RAISING - zcx_abapgit_exception, - then_shuld_update_descriptions - IMPORTING - it_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - then_it_should_add_activation, - given_documentation_in_xml_as - IMPORTING - it_lines TYPE tlinetab - RAISING - zcx_abapgit_exception, - then_docu_should_be_created - IMPORTING - it_lines TYPE tlinetab, - should_serialize_with_obj_key. - -ENDCLASS. - -CLASS ltc_oo_test IMPLEMENTATION. - - METHOD should_serialize_with_obj_key. - - cl_abap_unit_assert=>assert_equals( - act = me->mo_spy_oo_object_functions->ms_serialize_key - exp = ms_item-obj_name ). - - ENDMETHOD. - - METHOD then_docu_should_be_created. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_docu_lines - exp = it_lines ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_docu_object_name - exp = ms_item-obj_name ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_docu_language - exp = sy-langu ). - ENDMETHOD. - - METHOD given_documentation_in_xml_as. - mo_xml_out->add( - iv_name = 'LINES' - ig_data = it_lines ). - ENDMETHOD. - - METHOD then_it_should_add_activation. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->ms_item_to_activate - exp = ms_item ). - ENDMETHOD. - - METHOD then_shuld_update_descriptions. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_descriptions - exp = it_descriptions ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->ms_description_key - exp = ms_item-obj_name ). - ENDMETHOD. - - METHOD given_the_descriptions. - mo_xml_out->add( - iv_name = 'DESCRIPTIONS' - ig_data = it_descriptions ). - ENDMETHOD. - - METHOD then_should_deserialize_source. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_source - exp = mo_fake_object_files->mt_sources ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->ms_deserialize_key - exp = ms_item-obj_name ). - ENDMETHOD. - - METHOD when_deserializing. - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - mo_oo_object->deserialize( - iv_package = 'package_name' - io_xml = mo_xml_input ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_class_deserialization DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - given_a_class_properties - RAISING - zcx_abapgit_exception, - then_should_create_class, - then_it_should_generate_locals, - should_create_class FOR TESTING RAISING cx_static_check, - should_generate_locals FOR TESTING RAISING cx_static_check, - should_deserialize_source FOR TESTING RAISING cx_static_check, - should_update_descriptions FOR TESTING RAISING cx_static_check, - should_add_to_activation FOR TESTING RAISING cx_static_check, - no_text_pool_no_insert FOR TESTING RAISING cx_static_check, - insert_text_pool FOR TESTING RAISING cx_static_check, - create_stor_from_xml FOR TESTING RAISING cx_static_check, - create_documentation FOR TESTING RAISING cx_static_check. - DATA: - ms_class_properties TYPE vseoclass. -ENDCLASS. - -CLASS ltcl_class_deserialization IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_fake_object_files. - CREATE OBJECT mo_spy_oo_object_functions. - CREATE OBJECT mo_xml_out. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zcl_class'. - ms_item-obj_type = 'CLAS'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_clas - EXPORTING - is_item = ms_item - iv_language = sy-langu. - mo_oo_object->mo_files = mo_fake_object_files. - ENDMETHOD. - - METHOD should_create_class. - ms_class_properties-clsname = ms_item-obj_name. - - given_a_class_properties( ). - - when_deserializing( ). - - then_should_create_class( ). - ENDMETHOD. - - METHOD should_generate_locals. - given_a_class_properties( ). - - when_deserializing( ). - - then_it_should_generate_locals( ). - ENDMETHOD. - - METHOD should_deserialize_source. - given_a_class_properties( ). - - when_deserializing( ). - - then_should_deserialize_source( ). - ENDMETHOD. - - METHOD should_update_descriptions. - DATA: - ls_description TYPE seocompotx, - lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt. - - given_a_class_properties( ). - - ls_description-clsname = ms_item-obj_name. - ls_description-cmpname = 'a_method'. - APPEND ls_description TO lt_descriptions. - given_the_descriptions( lt_descriptions ). - - when_deserializing( ). - - then_shuld_update_descriptions( lt_descriptions ). - ENDMETHOD. - - METHOD should_add_to_activation. - given_a_class_properties( ). - - when_deserializing( ). - - then_it_should_add_activation( ). - ENDMETHOD. - - METHOD given_a_class_properties. - mo_xml_out->add( - iv_name = 'VSEOCLASS' - ig_data = ms_class_properties ). - ENDMETHOD. - - METHOD then_should_create_class. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->ms_class_properties - exp = ms_class_properties ). - - cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_overwrite - exp = abap_true ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_package - exp = 'package_name' ). - ENDMETHOD. - - - METHOD then_it_should_generate_locals. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->ms_locals_key - exp = ms_item-obj_name ). - - cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_force - exp = abap_true ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_local_definitions - exp = mo_fake_object_files->mt_local_definitions ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_local_implementations - exp = mo_fake_object_files->mt_local_implementations ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_local_macros - exp = mo_fake_object_files->mt_local_macros ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_local_test_classes - exp = mo_fake_object_files->mt_local_test_classes ). - ENDMETHOD. - METHOD no_text_pool_no_insert. - given_a_class_properties( ). - - when_deserializing( ). - - cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_text_pool_inserted - exp = abap_false ). - ENDMETHOD. - - METHOD insert_text_pool. - DATA: lt_pool_external TYPE textpool_table, - ls_pool_external TYPE zif_abapgit_definitions=>ty_tpool. - ls_pool_external-id = 'ID'. - ls_pool_external-key = 'KEY'. - APPEND ls_pool_external TO lt_pool_external. - - given_a_class_properties( ). - - mo_xml_out->add( - iv_name = 'TPOOL' - ig_data = lt_pool_external ). - - when_deserializing( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_text_pool - exp = lt_pool_external ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_text_pool_class_name - exp = 'zcl_class' ). - ENDMETHOD. - - METHOD create_stor_from_xml. - DATA: - lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, - ls_sotr LIKE LINE OF lt_sotr. - - given_a_class_properties( ). - - ls_sotr-header-concept = 'HEADER'. - APPEND ls_sotr TO lt_sotr. - mo_xml_out->add( - iv_name = 'SOTR' - ig_data = lt_sotr ). - - when_deserializing( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_sotr - exp = lt_sotr ). - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mt_sotr_package - exp = 'package_name' ). - ENDMETHOD. - - METHOD create_documentation. - DATA: lt_lines TYPE tlinetab, - ls_line TYPE LINE OF tlinetab. - ls_line-tdline = 'Class Line Doc'. - APPEND ls_line TO lt_lines. - - given_a_class_properties( ). - - given_documentation_in_xml_as( lt_lines ). - - when_deserializing( ). - - then_docu_should_be_created( lt_lines ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_interface_deserialization DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - given_an_interface_properties - RAISING - zcx_abapgit_exception, - then_should_create_interface, - create_interface FOR TESTING RAISING cx_static_check, - update_descriptions FOR TESTING RAISING cx_static_check, - add_to_activation FOR TESTING RAISING cx_static_check, - deserialize_source FOR TESTING RAISING cx_static_check, - create_documentation FOR TESTING RAISING cx_static_check. - DATA: - ms_interface_properties TYPE vseointerf. -ENDCLASS. -CLASS ltcl_interface_deserialization IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_fake_object_files. - CREATE OBJECT mo_spy_oo_object_functions. - CREATE OBJECT mo_xml_out. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zif_interface'. - ms_item-obj_type = 'INTF'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_intf - EXPORTING - is_item = ms_item - iv_language = sy-langu. - mo_oo_object->mo_files = mo_fake_object_files. - ENDMETHOD. - - METHOD create_interface. - ms_interface_properties-clsname = ms_item-obj_name. - given_an_interface_properties( ). - - when_deserializing( ). - - then_should_create_interface( ). - ENDMETHOD. - - METHOD update_descriptions. - DATA: - ls_description TYPE seocompotx, - lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt. - - given_an_interface_properties( ). - - ls_description-clsname = ms_item-obj_name. - ls_description-cmpname = 'a_method'. - APPEND ls_description TO lt_descriptions. - given_the_descriptions( lt_descriptions ). - - when_deserializing( ). - - then_shuld_update_descriptions( lt_descriptions ). - ENDMETHOD. - - METHOD add_to_activation. - given_an_interface_properties( ). - - when_deserializing( ). - - then_it_should_add_activation( ). - ENDMETHOD. - - METHOD deserialize_source. - given_an_interface_properties( ). - - when_deserializing( ). - - then_should_deserialize_source( ). - ENDMETHOD. - - METHOD given_an_interface_properties. - mo_xml_out->add( - iv_name = 'VSEOINTERF' - ig_data = ms_interface_properties ). - ENDMETHOD. - - METHOD then_should_create_interface. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->ms_interface_properties - exp = ms_interface_properties ). - - cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_overwrite - exp = abap_true ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_package - exp = 'package_name' ). - ENDMETHOD. - - METHOD create_documentation. - DATA: lt_lines TYPE tlinetab, - ls_line TYPE LINE OF tlinetab. - ls_line-tdline = 'Interface Line Doc'. - APPEND ls_line TO lt_lines. - - given_an_interface_properties( ). - - given_documentation_in_xml_as( lt_lines ). - - when_deserializing( ). - - then_docu_should_be_created( lt_lines ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_class_changed DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - changed_by_call_get_includes FOR TESTING RAISING cx_static_check, - changed_since_call_get_include FOR TESTING RAISING cx_static_check. - -ENDCLASS. -CLASS ltcl_class_changed IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_fake_object_files. - CREATE OBJECT mo_spy_oo_object_functions. - CREATE OBJECT mo_xml_out. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zcl_class'. - ms_item-obj_type = 'CLAS'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_clas - EXPORTING - is_item = ms_item - iv_language = sy-langu. - mo_oo_object->mo_files = mo_fake_object_files. - ENDMETHOD. - METHOD changed_by_call_get_includes. - DATA lv_username TYPE xubname. - lv_username = mo_oo_object->changed_by( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_get_includes_called - exp = abap_true ). - - cl_abap_unit_assert=>assert_equals( - act = lv_username - exp = lcl_objects_super=>c_user_unknown ). - ENDMETHOD. - METHOD changed_since_call_get_include. - DATA lv_timestamp TYPE timestamp. - GET TIME STAMP FIELD lv_timestamp. - mo_oo_object->has_changed_since( lv_timestamp ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_get_includes_called - exp = abap_true ). - ENDMETHOD. -ENDCLASS. -CLASS ltcl_interface_changed DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - changed_by_call_get_includes FOR TESTING RAISING cx_static_check, - changed_since_call_get_include FOR TESTING RAISING cx_static_check. -ENDCLASS. -CLASS ltcl_interface_changed IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_fake_object_files. - CREATE OBJECT mo_spy_oo_object_functions. - CREATE OBJECT mo_xml_out. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zif_interface'. - ms_item-obj_type = 'INTF'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_intf - EXPORTING - is_item = ms_item - iv_language = sy-langu. - mo_oo_object->mo_files = mo_fake_object_files. - ENDMETHOD. - METHOD changed_by_call_get_includes. - DATA lv_username TYPE xubname. - lv_username = mo_oo_object->changed_by( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_get_includes_called - exp = abap_true ). - - cl_abap_unit_assert=>assert_equals( - act = lv_username - exp = lcl_objects_super=>c_user_unknown ). - ENDMETHOD. - METHOD changed_since_call_get_include. - DATA lv_timestamp TYPE timestamp. - GET TIME STAMP FIELD lv_timestamp. - mo_oo_object->has_changed_since( lv_timestamp ). - - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_get_includes_called - exp = abap_true ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_exists_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - class_exists FOR TESTING RAISING cx_static_check, - interface_exists FOR TESTING RAISING cx_static_check. -ENDCLASS. - -CLASS ltcl_exists_test IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_spy_oo_object_functions. - me->mo_spy_oo_object_functions->mv_exists = abap_true. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - ENDMETHOD. - - METHOD class_exists. - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zcl_class'. - ms_item-obj_type = 'CLAS'. - CREATE OBJECT mo_oo_object TYPE lcl_object_clas - EXPORTING - is_item = ms_item - iv_language = sy-langu. - - cl_abap_unit_assert=>assert_equals( - act = mo_oo_object->exists( ) - exp = abap_true ). - cl_abap_unit_assert=>assert_equals( - act = me->mo_spy_oo_object_functions->mv_exists_called - exp = abap_true ). - ENDMETHOD. - - METHOD interface_exists. - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zif_interface'. - ms_item-obj_type = 'INTF'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_intf - EXPORTING - is_item = ms_item - iv_language = sy-langu. - - cl_abap_unit_assert=>assert_equals( - act = mo_oo_object->exists( ) - exp = abap_true ). - cl_abap_unit_assert=>assert_equals( - act = me->mo_spy_oo_object_functions->mv_exists_called - exp = abap_true ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_serialize_class DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - teardown, - serialize_abap FOR TESTING RAISING cx_static_check, - no_existing_no_serialize FOR TESTING RAISING cx_static_check, - serialize_local_definitions FOR TESTING RAISING cx_static_check, - serialize_local_implementation FOR TESTING RAISING cx_static_check, - serialize_local_macros FOR TESTING RAISING cx_static_check, - serialize_test_classes FOR TESTING RAISING cx_static_check, - serialize_properties_to_xml FOR TESTING RAISING cx_static_check, - serialize_skipping_tests_xml FOR TESTING RAISING cx_static_check, - serialize_textpool FOR TESTING RAISING cx_static_check, - read_sotr_if_exception_class FOR TESTING RAISING cx_static_check, - do_not_read_sotr_regular_class FOR TESTING RAISING cx_static_check, - should_serialize_documentation FOR TESTING RAISING cx_static_check, - should_serialize_descriptions FOR TESTING RAISING cx_static_check. -ENDCLASS. - -CLASS ltcl_serialize_class IMPLEMENTATION. - - METHOD setup. - CREATE OBJECT mo_fake_object_files. - CREATE OBJECT mo_spy_oo_object_functions. - me->mo_spy_oo_object_functions->mv_exists = abap_true. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zcl_class'. - ms_item-obj_type = 'CLAS'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_clas - EXPORTING - is_item = ms_item - iv_language = sy-langu. - CREATE OBJECT mo_xml_out. - mo_oo_object->mo_files = mo_fake_object_files. - ENDMETHOD. - - METHOD serialize_abap. - DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. - - APPEND 'a_source_line' TO me->mo_spy_oo_object_functions->mt_source. - - mo_oo_object->serialize( mo_xml_out ). - - should_serialize_with_obj_key( ). - - lt_abap_source = mo_fake_object_files->read_abap( ). - cl_abap_unit_assert=>assert_equals( - act = lt_abap_source - exp = me->mo_spy_oo_object_functions->mt_source ). - ENDMETHOD. - - METHOD serialize_local_definitions. - DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. - - APPEND 'a_local_definition' TO me->mo_spy_oo_object_functions->mt_local_definitions. - - mo_oo_object->serialize( mo_xml_out ). - - should_serialize_with_obj_key( ). - - lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'locals_def' iv_error = abap_false ). - - cl_abap_unit_assert=>assert_equals( - act = lt_abap_source - exp = me->mo_spy_oo_object_functions->mt_local_definitions ). - ENDMETHOD. - - METHOD serialize_local_implementation. - DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. - - APPEND 'a_local_implementation' TO me->mo_spy_oo_object_functions->mt_local_implementations. - - mo_oo_object->serialize( mo_xml_out ). - - should_serialize_with_obj_key( ). - - lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'locals_imp' iv_error = abap_false ). - - cl_abap_unit_assert=>assert_equals( - act = lt_abap_source - exp = me->mo_spy_oo_object_functions->mt_local_implementations ). - ENDMETHOD. - - METHOD serialize_local_macros. - DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. - APPEND 'a_local_macro' TO me->mo_spy_oo_object_functions->mt_local_macros. - - mo_oo_object->serialize( mo_xml_out ). - - should_serialize_with_obj_key( ). - - lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'macros' iv_error = abap_false ). - - cl_abap_unit_assert=>assert_equals( - act = lt_abap_source - exp = me->mo_spy_oo_object_functions->mt_local_macros ). - ENDMETHOD. - - METHOD serialize_test_classes. - DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. - APPEND 'a_local_test' TO me->mo_spy_oo_object_functions->mt_local_test_classes. - - mo_oo_object->serialize( mo_xml_out ). - - should_serialize_with_obj_key( ). - - lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'testclasses' iv_error = abap_false ). - - cl_abap_unit_assert=>assert_equals( - act = lt_abap_source - exp = me->mo_spy_oo_object_functions->mt_local_test_classes ). - ENDMETHOD. - - METHOD no_existing_no_serialize. - me->mo_spy_oo_object_functions->mv_exists = abap_false. - mo_oo_object->serialize( mo_xml_out ). - ENDMETHOD. - - - METHOD serialize_properties_to_xml. - DATA: - ls_expected_properties LIKE me->mo_spy_oo_object_functions->ms_class_properties, - ls_actual_properties LIKE me->mo_spy_oo_object_functions->ms_class_properties. - - me->mo_spy_oo_object_functions->ms_class_properties-clsname = ms_item-obj_name. - me->mo_spy_oo_object_functions->ms_class_properties-uuid = '123'. - me->mo_spy_oo_object_functions->ms_class_properties-author = 'author'. - me->mo_spy_oo_object_functions->ms_class_properties-createdon = '2016'. - me->mo_spy_oo_object_functions->ms_class_properties-changedby = 'other'. - me->mo_spy_oo_object_functions->ms_class_properties-changedon = '2017'. - me->mo_spy_oo_object_functions->ms_class_properties-r3release = '1'. - me->mo_spy_oo_object_functions->ms_class_properties-chgdanyby = 'other'. - me->mo_spy_oo_object_functions->ms_class_properties-chgdanyon = '2017'. - - mo_oo_object->serialize( mo_xml_out ). - - ls_expected_properties = me->mo_spy_oo_object_functions->ms_class_properties. - CLEAR: - ls_expected_properties-uuid, - ls_expected_properties-author, - ls_expected_properties-createdon, - ls_expected_properties-changedby, - ls_expected_properties-changedon, - ls_expected_properties-r3release, - ls_expected_properties-chgdanyby, - ls_expected_properties-chgdanyon. - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'VSEOCLASS' - CHANGING - cg_data = ls_actual_properties ). - cl_abap_unit_assert=>assert_equals( - act = ls_actual_properties - exp = ls_expected_properties ). - ENDMETHOD. - - METHOD serialize_skipping_tests_xml. - DATA: - ls_actual_properties LIKE me->mo_spy_oo_object_functions->ms_class_properties. - APPEND 'a_local_test' TO me->mo_spy_oo_object_functions->mt_local_test_classes. - me->mo_spy_oo_object_functions->mv_skip_test_classes = abap_true. - - me->mo_spy_oo_object_functions->ms_class_properties-clsname = ms_item-obj_name. - me->mo_spy_oo_object_functions->ms_class_properties-with_unit_tests = abap_true. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'VSEOCLASS' - CHANGING - cg_data = ls_actual_properties ). - cl_abap_unit_assert=>assert_equals( - act = ls_actual_properties-with_unit_tests - exp = abap_false ). - ENDMETHOD. - - METHOD serialize_textpool. - DATA: - ls_textpool TYPE textpool, - lt_actual_text_pool TYPE textpool_table. - ls_textpool-id = '1'. - ls_textpool-key = '1'. - APPEND ls_textpool TO mo_spy_oo_object_functions->mt_text_pool. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'TPOOL' - CHANGING - cg_data = lt_actual_text_pool ). - cl_abap_unit_assert=>assert_equals( - act = lt_actual_text_pool - exp = mo_spy_oo_object_functions->mt_text_pool ). - ENDMETHOD. - - METHOD read_sotr_if_exception_class. - DATA: - lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, - lt_actual_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, - ls_sotr LIKE LINE OF lt_sotr. - - me->mo_spy_oo_object_functions->ms_class_properties-category = seoc_category_exception. - - ls_sotr-header-concept = 'HEADER'. - APPEND ls_sotr TO lt_sotr. - - me->mo_spy_oo_object_functions->mt_sotr = lt_sotr. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'SOTR' - CHANGING - cg_data = lt_actual_sotr ). - cl_abap_unit_assert=>assert_equals( - act = lt_actual_sotr - exp = mo_spy_oo_object_functions->mt_sotr ). - ENDMETHOD. - - METHOD do_not_read_sotr_regular_class. - DATA: - lt_actual_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt. - - CLEAR: me->mo_spy_oo_object_functions->ms_class_properties-category. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'SOTR' - CHANGING - cg_data = lt_actual_sotr ). - cl_abap_unit_assert=>assert_initial( lt_actual_sotr ). - ENDMETHOD. - - METHOD should_serialize_documentation. - DATA: - lt_lines TYPE tlinetab, - lt_actual_lines TYPE tlinetab, - ls_line LIKE LINE OF lt_lines. - - ls_line-tdline = 'a_line'. - APPEND ls_line TO lt_lines. - - me->mo_spy_oo_object_functions->mt_docu_lines = lt_lines. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'LINES' - CHANGING - cg_data = lt_actual_lines ). - cl_abap_unit_assert=>assert_equals( - act = lt_actual_lines - exp = me->mo_spy_oo_object_functions->mt_docu_lines ). - ENDMETHOD. - - METHOD should_serialize_descriptions. - DATA: - lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - lt_actual_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - ls_description TYPE LINE OF zif_abapgit_definitions=>ty_seocompotx_tt. - - ls_description-clsname = 'class'. - APPEND ls_description TO lt_descriptions. - - - me->mo_spy_oo_object_functions->mt_descriptions = lt_descriptions. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'DESCRIPTIONS' - CHANGING - cg_data = lt_actual_descriptions ). - cl_abap_unit_assert=>assert_equals( - act = lt_actual_descriptions - exp = me->mo_spy_oo_object_functions->mt_descriptions ). - ENDMETHOD. - - METHOD teardown. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_exists_called - exp = abap_true ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_serialize_interface DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - teardown, - serialize_abap FOR TESTING RAISING cx_static_check, - no_existing_no_serialize FOR TESTING RAISING cx_static_check, - serialize_properties_to_xml FOR TESTING RAISING cx_static_check, - should_serialize_documentation FOR TESTING RAISING cx_static_check, - should_serialize_descriptions FOR TESTING RAISING cx_static_check. -ENDCLASS. - -CLASS ltcl_serialize_interface IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_fake_object_files. - CREATE OBJECT mo_spy_oo_object_functions. - me->mo_spy_oo_object_functions->mv_exists = abap_true. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zif_interface'. - ms_item-obj_type = 'INTF'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_intf - EXPORTING - is_item = ms_item - iv_language = sy-langu. - CREATE OBJECT mo_xml_out. - mo_oo_object->mo_files = mo_fake_object_files. - ENDMETHOD. - - METHOD serialize_abap. - DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. - - APPEND 'a_source_line' TO me->mo_spy_oo_object_functions->mt_source. - - mo_oo_object->serialize( mo_xml_out ). - - should_serialize_with_obj_key( ). - - lt_abap_source = mo_fake_object_files->read_abap( ). - cl_abap_unit_assert=>assert_equals( - act = lt_abap_source - exp = me->mo_spy_oo_object_functions->mt_source ). - ENDMETHOD. - - METHOD no_existing_no_serialize. - me->mo_spy_oo_object_functions->mv_exists = abap_false. - mo_oo_object->serialize( mo_xml_out ). - ENDMETHOD. - - - METHOD serialize_properties_to_xml. - DATA: - ls_expected_properties LIKE me->mo_spy_oo_object_functions->ms_interface_properties, - ls_actual_properties LIKE me->mo_spy_oo_object_functions->ms_interface_properties. - - me->mo_spy_oo_object_functions->ms_interface_properties-clsname = ms_item-obj_name. - me->mo_spy_oo_object_functions->ms_interface_properties-uuid = '123'. - me->mo_spy_oo_object_functions->ms_interface_properties-author = 'author'. - me->mo_spy_oo_object_functions->ms_interface_properties-createdon = '2016'. - me->mo_spy_oo_object_functions->ms_interface_properties-changedby = 'other'. - me->mo_spy_oo_object_functions->ms_interface_properties-changedon = '2017'. - me->mo_spy_oo_object_functions->ms_interface_properties-r3release = '1'. - - mo_oo_object->serialize( mo_xml_out ). - - ls_expected_properties = me->mo_spy_oo_object_functions->ms_interface_properties. - CLEAR: - ls_expected_properties-uuid, - ls_expected_properties-author, - ls_expected_properties-createdon, - ls_expected_properties-changedby, - ls_expected_properties-changedon, - ls_expected_properties-r3release. - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'VSEOINTERF' - CHANGING - cg_data = ls_actual_properties ). - cl_abap_unit_assert=>assert_equals( - act = ls_actual_properties - exp = ls_expected_properties ). - ENDMETHOD. - METHOD should_serialize_documentation. - DATA: - lt_lines TYPE tlinetab, - lt_actual_lines TYPE tlinetab, - ls_line LIKE LINE OF lt_lines. - - ls_line-tdline = 'a_line'. - APPEND ls_line TO lt_lines. - - me->mo_spy_oo_object_functions->mt_docu_lines = lt_lines. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'LINES' - CHANGING - cg_data = lt_actual_lines ). - cl_abap_unit_assert=>assert_equals( - act = lt_actual_lines - exp = me->mo_spy_oo_object_functions->mt_docu_lines ). - ENDMETHOD. - - METHOD should_serialize_descriptions. - DATA: - lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - lt_actual_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, - ls_description TYPE LINE OF zif_abapgit_definitions=>ty_seocompotx_tt. - - ls_description-clsname = 'class'. - APPEND ls_description TO lt_descriptions. - - - me->mo_spy_oo_object_functions->mt_descriptions = lt_descriptions. - - mo_oo_object->serialize( mo_xml_out ). - - CREATE OBJECT mo_xml_input - EXPORTING - iv_xml = mo_xml_out->render( ). - - mo_xml_input->read( - EXPORTING - iv_name = 'DESCRIPTIONS' - CHANGING - cg_data = lt_actual_descriptions ). - cl_abap_unit_assert=>assert_equals( - act = lt_actual_descriptions - exp = me->mo_spy_oo_object_functions->mt_descriptions ). - ENDMETHOD. - METHOD teardown. - cl_abap_unit_assert=>assert_equals( - act = mo_spy_oo_object_functions->mv_exists_called - exp = abap_true ). - ENDMETHOD. -ENDCLASS. - -CLASS ltcl_delete_oo_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT -INHERITING FROM ltc_oo_test. - PRIVATE SECTION. - METHODS: - setup, - class_delete FOR TESTING RAISING cx_static_check, - interface_delete FOR TESTING RAISING cx_static_check. -ENDCLASS. - -CLASS ltcl_delete_oo_test IMPLEMENTATION. - METHOD setup. - CREATE OBJECT mo_spy_oo_object_functions. - me->mo_spy_oo_object_functions->mv_exists = abap_true. - ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). - ENDMETHOD. - - METHOD class_delete. - DATA ls_expected_delete_key TYPE seoclskey. - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zcl_class'. - ms_item-obj_type = 'CLAS'. - CREATE OBJECT mo_oo_object TYPE lcl_object_clas - EXPORTING - is_item = ms_item - iv_language = sy-langu. - - mo_oo_object->delete( ). - - ls_expected_delete_key-clsname = ms_item-obj_name. - - cl_abap_unit_assert=>assert_equals( - act = me->mo_spy_oo_object_functions->ms_delete_key - exp = ls_expected_delete_key ). - ENDMETHOD. - - METHOD interface_delete. - DATA ls_expected_delete_key TYPE seoclskey. - - ms_item-devclass = 'package_name'. - ms_item-obj_name = 'zif_interface'. - ms_item-obj_type = 'INTF'. - - CREATE OBJECT mo_oo_object TYPE lcl_object_intf - EXPORTING - is_item = ms_item - iv_language = sy-langu. - - mo_oo_object->delete( ). - - ls_expected_delete_key-clsname = ms_item-obj_name. - - cl_abap_unit_assert=>assert_equals( - act = me->mo_spy_oo_object_functions->ms_delete_key - exp = ls_expected_delete_key ). - ENDMETHOD. -ENDCLASS. +********************* +********************* +********************* +********************* +********************* +* TODO, move contents of this include to global OO serialization/deserialization classes +********************* +********************* +********************* +********************* + +*CLASS ltcl_oo_factory_injector DEFINITION FOR TESTING. +* PUBLIC SECTION. +* CLASS-METHODS: +* inject +* IMPORTING +* io_object_oriented_object TYPE REF TO zif_abapgit_oo_object_fnc. +*ENDCLASS. +* +*CLASS ltcl_oo_factory_injector IMPLEMENTATION. +* METHOD inject. +* lcl_oo_factory=>go_object_oriented_object = io_object_oriented_object. +* ENDMETHOD. +*ENDCLASS. + +*CLASS ltd_spy_oo_object DEFINITION FOR TESTING. +* PUBLIC SECTION. +* INTERFACES: if_oo_object_fnc. +* DATA: +* mv_package TYPE devclass, +* mv_overwrite TYPE seox_boolean, +* ms_interface_properties TYPE vseointerf, +* ms_class_properties TYPE vseoclass, +* ms_locals_key TYPE seoclskey, +* mt_local_definitions TYPE rswsourcet, +* mt_local_implementations TYPE rswsourcet, +* mt_local_macros TYPE rswsourcet, +* mt_local_test_classes TYPE rswsourcet, +* mv_force TYPE seoflag, +* ms_deserialize_key TYPE seoclskey, +* mt_source TYPE zif_abapgit_definitions=>ty_string_tt, +* ms_item_to_activate TYPE zif_abapgit_definitions=>ty_item, +* mt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, +* ms_description_key TYPE seoclskey, +* mv_text_pool_class_name TYPE seoclsname, +* mt_text_pool TYPE textpool_table, +* mv_text_pool_inserted TYPE abap_bool, +* mt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, +* mt_sotr_package TYPE devclass, +* mv_docu_object_name TYPE dokhl-object, +* mv_docu_language TYPE spras, +* mt_docu_lines TYPE tlinetab, +* mv_get_includes_called TYPE abap_bool, +* mv_exists TYPE abap_bool, +* mv_exists_called TYPE abap_bool, +* ms_serialize_key TYPE seoclskey, +* ms_delete_key TYPE seoclskey, +* mv_skip_test_classes TYPE abap_bool. +* PRIVATE SECTION. +* +* +*ENDCLASS. +*CLASS ltd_spy_oo_object IMPLEMENTATION. +* METHOD lif_oo_object_fnc~create. +* DATA lv_properties_structure_name TYPE string. +* lv_properties_structure_name = cl_abap_typedescr=>describe_by_data( is_properties )->absolute_name. +* IF lv_properties_structure_name = cl_abap_typedescr=>describe_by_data( ms_interface_properties )->absolute_name. +* ms_interface_properties = is_properties. +* ELSE. +* ms_class_properties = is_properties. +* ENDIF. +* mv_package = iv_package. +* mv_overwrite = iv_overwrite. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~generate_locals. +* ms_locals_key = is_key. +* mt_local_definitions = it_local_definitions. +* mt_local_implementations = it_local_implementations. +* mt_local_macros = it_local_macros. +* mt_local_test_classes = it_local_test_classes. +* mv_force = iv_force. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~deserialize_source. +* ms_deserialize_key = is_key. +* mt_source = it_source. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~add_to_activation_list. +* ms_item_to_activate = is_item. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~update_descriptions. +* ms_description_key = is_key. +* mt_descriptions = it_descriptions. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~insert_text_pool. +* mv_text_pool_inserted = abap_true. +* mv_text_pool_class_name = iv_class_name. +* mt_text_pool = it_text_pool. +* cl_abap_unit_assert=>assert_equals( +* act = iv_language +* exp = sy-langu ). +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~create_sotr. +* mt_sotr = it_sotr. +* mt_sotr_package = iv_package. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~create_documentation. +* mv_docu_object_name = iv_object_name. +* mv_docu_language = iv_language. +* mt_docu_lines = it_lines. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~get_includes. +* APPEND 'dummy' TO rt_includes. +* mv_get_includes_called = abap_true. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~exists. +* mv_exists_called = abap_true. +* rv_exists = mv_exists. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~serialize_abap. +* ms_serialize_key = is_class_key. +* CASE iv_type. +* WHEN seop_ext_class_locals_def. +* rt_source = mt_local_definitions. +* WHEN seop_ext_class_locals_imp. +* rt_source = mt_local_implementations. +* WHEN seop_ext_class_macros. +* rt_source = mt_local_macros. +* WHEN seop_ext_class_testclasses. +* rt_source = mt_local_test_classes. +* WHEN OTHERS. +* rt_source = mt_source. +* ENDCASE. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~get_class_properties. +* rs_class_properties = ms_class_properties. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~get_interface_properties. +* rs_interface_properties = ms_interface_properties. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~read_text_pool. +* rt_text_pool = mt_text_pool. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~read_sotr. +* rt_sotr = mt_sotr. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~read_documentation. +* rt_lines = mt_docu_lines. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~read_descriptions. +* rt_descriptions = mt_descriptions. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~get_skip_test_classes. +* rv_skip = mv_skip_test_classes. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~delete. +* ms_delete_key = is_deletion_key. +* ENDMETHOD. +* +* METHOD lif_oo_object_fnc~read_superclass. +* RETURN. +* ENDMETHOD. +* +*ENDCLASS. +* +*CLASS ltd_fake_object_files DEFINITION FOR TESTING +* INHERITING FROM zcl_abapgit_objects_files. +* +* PUBLIC SECTION. +* METHODS constructor. +* METHODS add_abap REDEFINITION. +* METHODS read_abap REDEFINITION. +* DATA: +* mt_sources TYPE seop_source_string, +* mt_local_definitions TYPE seop_source_string, +* mt_local_implementations TYPE seop_source_string, +* mt_local_macros TYPE seop_source_string, +* mt_local_test_classes TYPE seop_source_string. +*ENDCLASS. +*CLASS ltd_fake_object_files IMPLEMENTATION. +* METHOD read_abap. +* CASE iv_extra. +* WHEN 'locals_def'. +* rt_abap = mt_local_definitions. +* WHEN 'locals_imp'. +* rt_abap = mt_local_implementations. +* WHEN 'macros'. +* rt_abap = mt_local_macros. +* WHEN 'testclasses'. +* rt_abap = mt_local_test_classes. +* WHEN OTHERS. +* rt_abap = mt_sources. +* RETURN. +* ENDCASE. +* +* cl_abap_unit_assert=>assert_equals( act = iv_error +* exp = abap_false ). +* ENDMETHOD. +* METHOD constructor. +* DATA ls_empty_item TYPE zif_abapgit_definitions=>ty_item. +* super->constructor( ls_empty_item ). +* APPEND 'source' TO me->mt_sources. +* APPEND 'definition' TO me->mt_local_definitions. +* APPEND 'implementation' TO me->mt_local_implementations. +* APPEND 'macro' TO me->mt_local_macros. +* APPEND 'test' TO me->mt_local_test_classes. +* ENDMETHOD. +* METHOD add_abap. +* CASE iv_extra. +* WHEN 'locals_def'. +* mt_local_definitions = it_abap. +* WHEN 'locals_imp'. +* mt_local_implementations = it_abap. +* WHEN 'macros'. +* mt_local_macros = it_abap. +* WHEN 'testclasses'. +* mt_local_test_classes = it_abap. +* WHEN OTHERS. +* mt_sources = it_abap. +* RETURN. +* ENDCASE. +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltc_oo_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +* PROTECTED SECTION. +* DATA: +* mo_spy_oo_object_functions TYPE REF TO ltd_spy_oo_object, +* mo_fake_object_files TYPE REF TO ltd_fake_object_files, +* mo_xml_input TYPE REF TO zcl_abapgit_xml_input, +* mo_xml_out TYPE REF TO zcl_abapgit_xml_output, +* mo_oo_object TYPE REF TO zif_abapgit_object, +* ms_item TYPE zif_abapgit_definitions=>ty_item. +* +* METHODS: when_deserializing +* RAISING +* zcx_abapgit_exception, +* then_should_deserialize_source, +* given_the_descriptions +* IMPORTING +* it_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt +* RAISING +* zcx_abapgit_exception, +* then_shuld_update_descriptions +* IMPORTING +* it_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, +* then_it_should_add_activation, +* given_documentation_in_xml_as +* IMPORTING +* it_lines TYPE tlinetab +* RAISING +* zcx_abapgit_exception, +* then_docu_should_be_created +* IMPORTING +* it_lines TYPE tlinetab, +* should_serialize_with_obj_key. +* +*ENDCLASS. +* +*CLASS ltc_oo_test IMPLEMENTATION. +* +* METHOD should_serialize_with_obj_key. +* +* cl_abap_unit_assert=>assert_equals( +* act = me->mo_spy_oo_object_functions->ms_serialize_key +* exp = ms_item-obj_name ). +* +* ENDMETHOD. +* +* METHOD then_docu_should_be_created. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_docu_lines +* exp = it_lines ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_docu_object_name +* exp = ms_item-obj_name ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_docu_language +* exp = sy-langu ). +* ENDMETHOD. +* +* METHOD given_documentation_in_xml_as. +* mo_xml_out->add( +* iv_name = 'LINES' +* ig_data = it_lines ). +* ENDMETHOD. +* +* METHOD then_it_should_add_activation. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->ms_item_to_activate +* exp = ms_item ). +* ENDMETHOD. +* +* METHOD then_shuld_update_descriptions. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_descriptions +* exp = it_descriptions ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->ms_description_key +* exp = ms_item-obj_name ). +* ENDMETHOD. +* +* METHOD given_the_descriptions. +* mo_xml_out->add( +* iv_name = 'DESCRIPTIONS' +* ig_data = it_descriptions ). +* ENDMETHOD. +* +* METHOD then_should_deserialize_source. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_source +* exp = mo_fake_object_files->mt_sources ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->ms_deserialize_key +* exp = ms_item-obj_name ). +* ENDMETHOD. +* +* METHOD when_deserializing. +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* mo_oo_object->deserialize( +* iv_package = 'package_name' +* io_xml = mo_xml_input ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_class_deserialization DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* given_a_class_properties +* RAISING +* zcx_abapgit_exception, +* then_should_create_class, +* then_it_should_generate_locals, +* should_create_class FOR TESTING RAISING cx_static_check, +* should_generate_locals FOR TESTING RAISING cx_static_check, +* should_deserialize_source FOR TESTING RAISING cx_static_check, +* should_update_descriptions FOR TESTING RAISING cx_static_check, +* should_add_to_activation FOR TESTING RAISING cx_static_check, +* no_text_pool_no_insert FOR TESTING RAISING cx_static_check, +* insert_text_pool FOR TESTING RAISING cx_static_check, +* create_stor_from_xml FOR TESTING RAISING cx_static_check, +* create_documentation FOR TESTING RAISING cx_static_check. +* DATA: +* ms_class_properties TYPE vseoclass. +*ENDCLASS. +* +*CLASS ltcl_class_deserialization IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_fake_object_files. +* CREATE OBJECT mo_spy_oo_object_functions. +* CREATE OBJECT mo_xml_out. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zcl_class'. +* ms_item-obj_type = 'CLAS'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_clas +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* mo_oo_object->mo_files = mo_fake_object_files. +* ENDMETHOD. +* +* METHOD should_create_class. +* ms_class_properties-clsname = ms_item-obj_name. +* +* given_a_class_properties( ). +* +* when_deserializing( ). +* +* then_should_create_class( ). +* ENDMETHOD. +* +* METHOD should_generate_locals. +* given_a_class_properties( ). +* +* when_deserializing( ). +* +* then_it_should_generate_locals( ). +* ENDMETHOD. +* +* METHOD should_deserialize_source. +* given_a_class_properties( ). +* +* when_deserializing( ). +* +* then_should_deserialize_source( ). +* ENDMETHOD. +* +* METHOD should_update_descriptions. +* DATA: +* ls_description TYPE seocompotx, +* lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt. +* +* given_a_class_properties( ). +* +* ls_description-clsname = ms_item-obj_name. +* ls_description-cmpname = 'a_method'. +* APPEND ls_description TO lt_descriptions. +* given_the_descriptions( lt_descriptions ). +* +* when_deserializing( ). +* +* then_shuld_update_descriptions( lt_descriptions ). +* ENDMETHOD. +* +* METHOD should_add_to_activation. +* given_a_class_properties( ). +* +* when_deserializing( ). +* +* then_it_should_add_activation( ). +* ENDMETHOD. +* +* METHOD given_a_class_properties. +* mo_xml_out->add( +* iv_name = 'VSEOCLASS' +* ig_data = ms_class_properties ). +* ENDMETHOD. +* +* METHOD then_should_create_class. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->ms_class_properties +* exp = ms_class_properties ). +* +* cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_overwrite +* exp = abap_true ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_package +* exp = 'package_name' ). +* ENDMETHOD. +* +* +* METHOD then_it_should_generate_locals. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->ms_locals_key +* exp = ms_item-obj_name ). +* +* cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_force +* exp = abap_true ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_local_definitions +* exp = mo_fake_object_files->mt_local_definitions ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_local_implementations +* exp = mo_fake_object_files->mt_local_implementations ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_local_macros +* exp = mo_fake_object_files->mt_local_macros ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_local_test_classes +* exp = mo_fake_object_files->mt_local_test_classes ). +* ENDMETHOD. +* METHOD no_text_pool_no_insert. +* given_a_class_properties( ). +* +* when_deserializing( ). +* +* cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_text_pool_inserted +* exp = abap_false ). +* ENDMETHOD. +* +* METHOD insert_text_pool. +* DATA: lt_pool_external TYPE textpool_table, +* ls_pool_external TYPE zif_abapgit_definitions=>ty_tpool. +* ls_pool_external-id = 'ID'. +* ls_pool_external-key = 'KEY'. +* APPEND ls_pool_external TO lt_pool_external. +* +* given_a_class_properties( ). +* +* mo_xml_out->add( +* iv_name = 'TPOOL' +* ig_data = lt_pool_external ). +* +* when_deserializing( ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_text_pool +* exp = lt_pool_external ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_text_pool_class_name +* exp = 'zcl_class' ). +* ENDMETHOD. +* +* METHOD create_stor_from_xml. +* DATA: +* lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, +* ls_sotr LIKE LINE OF lt_sotr. +* +* given_a_class_properties( ). +* +* ls_sotr-header-concept = 'HEADER'. +* APPEND ls_sotr TO lt_sotr. +* mo_xml_out->add( +* iv_name = 'SOTR' +* ig_data = lt_sotr ). +* +* when_deserializing( ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_sotr +* exp = lt_sotr ). +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mt_sotr_package +* exp = 'package_name' ). +* ENDMETHOD. +* +* METHOD create_documentation. +* DATA: lt_lines TYPE tlinetab, +* ls_line TYPE LINE OF tlinetab. +* ls_line-tdline = 'Class Line Doc'. +* APPEND ls_line TO lt_lines. +* +* given_a_class_properties( ). +* +* given_documentation_in_xml_as( lt_lines ). +* +* when_deserializing( ). +* +* then_docu_should_be_created( lt_lines ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_interface_deserialization DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* given_an_interface_properties +* RAISING +* zcx_abapgit_exception, +* then_should_create_interface, +* create_interface FOR TESTING RAISING cx_static_check, +* update_descriptions FOR TESTING RAISING cx_static_check, +* add_to_activation FOR TESTING RAISING cx_static_check, +* deserialize_source FOR TESTING RAISING cx_static_check, +* create_documentation FOR TESTING RAISING cx_static_check. +* DATA: +* ms_interface_properties TYPE vseointerf. +*ENDCLASS. +*CLASS ltcl_interface_deserialization IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_fake_object_files. +* CREATE OBJECT mo_spy_oo_object_functions. +* CREATE OBJECT mo_xml_out. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zif_interface'. +* ms_item-obj_type = 'INTF'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_intf +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* mo_oo_object->mo_files = mo_fake_object_files. +* ENDMETHOD. +* +* METHOD create_interface. +* ms_interface_properties-clsname = ms_item-obj_name. +* given_an_interface_properties( ). +* +* when_deserializing( ). +* +* then_should_create_interface( ). +* ENDMETHOD. +* +* METHOD update_descriptions. +* DATA: +* ls_description TYPE seocompotx, +* lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt. +* +* given_an_interface_properties( ). +* +* ls_description-clsname = ms_item-obj_name. +* ls_description-cmpname = 'a_method'. +* APPEND ls_description TO lt_descriptions. +* given_the_descriptions( lt_descriptions ). +* +* when_deserializing( ). +* +* then_shuld_update_descriptions( lt_descriptions ). +* ENDMETHOD. +* +* METHOD add_to_activation. +* given_an_interface_properties( ). +* +* when_deserializing( ). +* +* then_it_should_add_activation( ). +* ENDMETHOD. +* +* METHOD deserialize_source. +* given_an_interface_properties( ). +* +* when_deserializing( ). +* +* then_should_deserialize_source( ). +* ENDMETHOD. +* +* METHOD given_an_interface_properties. +* mo_xml_out->add( +* iv_name = 'VSEOINTERF' +* ig_data = ms_interface_properties ). +* ENDMETHOD. +* +* METHOD then_should_create_interface. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->ms_interface_properties +* exp = ms_interface_properties ). +* +* cl_abap_unit_assert=>assert_equals( act = mo_spy_oo_object_functions->mv_overwrite +* exp = abap_true ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_package +* exp = 'package_name' ). +* ENDMETHOD. +* +* METHOD create_documentation. +* DATA: lt_lines TYPE tlinetab, +* ls_line TYPE LINE OF tlinetab. +* ls_line-tdline = 'Interface Line Doc'. +* APPEND ls_line TO lt_lines. +* +* given_an_interface_properties( ). +* +* given_documentation_in_xml_as( lt_lines ). +* +* when_deserializing( ). +* +* then_docu_should_be_created( lt_lines ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_class_changed DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* changed_by_call_get_includes FOR TESTING RAISING cx_static_check, +* changed_since_call_get_include FOR TESTING RAISING cx_static_check. +* +*ENDCLASS. +*CLASS ltcl_class_changed IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_fake_object_files. +* CREATE OBJECT mo_spy_oo_object_functions. +* CREATE OBJECT mo_xml_out. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zcl_class'. +* ms_item-obj_type = 'CLAS'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_clas +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* mo_oo_object->mo_files = mo_fake_object_files. +* ENDMETHOD. +* METHOD changed_by_call_get_includes. +* DATA lv_username TYPE xubname. +* lv_username = mo_oo_object->changed_by( ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_get_includes_called +* exp = abap_true ). +* +* cl_abap_unit_assert=>assert_equals( +* act = lv_username +* exp = lcl_objects_super=>c_user_unknown ). +* ENDMETHOD. +* METHOD changed_since_call_get_include. +* DATA lv_timestamp TYPE timestamp. +* GET TIME STAMP FIELD lv_timestamp. +* mo_oo_object->has_changed_since( lv_timestamp ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_get_includes_called +* exp = abap_true ). +* ENDMETHOD. +*ENDCLASS. +*CLASS ltcl_interface_changed DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* changed_by_call_get_includes FOR TESTING RAISING cx_static_check, +* changed_since_call_get_include FOR TESTING RAISING cx_static_check. +*ENDCLASS. +*CLASS ltcl_interface_changed IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_fake_object_files. +* CREATE OBJECT mo_spy_oo_object_functions. +* CREATE OBJECT mo_xml_out. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zif_interface'. +* ms_item-obj_type = 'INTF'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_intf +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* mo_oo_object->mo_files = mo_fake_object_files. +* ENDMETHOD. +* METHOD changed_by_call_get_includes. +* DATA lv_username TYPE xubname. +* lv_username = mo_oo_object->changed_by( ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_get_includes_called +* exp = abap_true ). +* +* cl_abap_unit_assert=>assert_equals( +* act = lv_username +* exp = lcl_objects_super=>c_user_unknown ). +* ENDMETHOD. +* METHOD changed_since_call_get_include. +* DATA lv_timestamp TYPE timestamp. +* GET TIME STAMP FIELD lv_timestamp. +* mo_oo_object->has_changed_since( lv_timestamp ). +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_get_includes_called +* exp = abap_true ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_exists_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* class_exists FOR TESTING RAISING cx_static_check, +* interface_exists FOR TESTING RAISING cx_static_check. +*ENDCLASS. +* +*CLASS ltcl_exists_test IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_spy_oo_object_functions. +* me->mo_spy_oo_object_functions->mv_exists = abap_true. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* ENDMETHOD. +* +* METHOD class_exists. +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zcl_class'. +* ms_item-obj_type = 'CLAS'. +* CREATE OBJECT mo_oo_object TYPE lcl_object_clas +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_oo_object->exists( ) +* exp = abap_true ). +* cl_abap_unit_assert=>assert_equals( +* act = me->mo_spy_oo_object_functions->mv_exists_called +* exp = abap_true ). +* ENDMETHOD. +* +* METHOD interface_exists. +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zif_interface'. +* ms_item-obj_type = 'INTF'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_intf +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* +* cl_abap_unit_assert=>assert_equals( +* act = mo_oo_object->exists( ) +* exp = abap_true ). +* cl_abap_unit_assert=>assert_equals( +* act = me->mo_spy_oo_object_functions->mv_exists_called +* exp = abap_true ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_serialize_class DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* teardown, +* serialize_abap FOR TESTING RAISING cx_static_check, +* no_existing_no_serialize FOR TESTING RAISING cx_static_check, +* serialize_local_definitions FOR TESTING RAISING cx_static_check, +* serialize_local_implementation FOR TESTING RAISING cx_static_check, +* serialize_local_macros FOR TESTING RAISING cx_static_check, +* serialize_test_classes FOR TESTING RAISING cx_static_check, +* serialize_properties_to_xml FOR TESTING RAISING cx_static_check, +* serialize_skipping_tests_xml FOR TESTING RAISING cx_static_check, +* serialize_textpool FOR TESTING RAISING cx_static_check, +* read_sotr_if_exception_class FOR TESTING RAISING cx_static_check, +* do_not_read_sotr_regular_class FOR TESTING RAISING cx_static_check, +* should_serialize_documentation FOR TESTING RAISING cx_static_check, +* should_serialize_descriptions FOR TESTING RAISING cx_static_check. +*ENDCLASS. +* +*CLASS ltcl_serialize_class IMPLEMENTATION. +* +* METHOD setup. +* CREATE OBJECT mo_fake_object_files. +* CREATE OBJECT mo_spy_oo_object_functions. +* me->mo_spy_oo_object_functions->mv_exists = abap_true. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zcl_class'. +* ms_item-obj_type = 'CLAS'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_clas +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* CREATE OBJECT mo_xml_out. +* mo_oo_object->mo_files = mo_fake_object_files. +* ENDMETHOD. +* +* METHOD serialize_abap. +* DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. +* +* APPEND 'a_source_line' TO me->mo_spy_oo_object_functions->mt_source. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* should_serialize_with_obj_key( ). +* +* lt_abap_source = mo_fake_object_files->read_abap( ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_abap_source +* exp = me->mo_spy_oo_object_functions->mt_source ). +* ENDMETHOD. +* +* METHOD serialize_local_definitions. +* DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. +* +* APPEND 'a_local_definition' TO me->mo_spy_oo_object_functions->mt_local_definitions. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* should_serialize_with_obj_key( ). +* +* lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'locals_def' iv_error = abap_false ). +* +* cl_abap_unit_assert=>assert_equals( +* act = lt_abap_source +* exp = me->mo_spy_oo_object_functions->mt_local_definitions ). +* ENDMETHOD. +* +* METHOD serialize_local_implementation. +* DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. +* +* APPEND 'a_local_implementation' TO me->mo_spy_oo_object_functions->mt_local_implementations. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* should_serialize_with_obj_key( ). +* +* lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'locals_imp' iv_error = abap_false ). +* +* cl_abap_unit_assert=>assert_equals( +* act = lt_abap_source +* exp = me->mo_spy_oo_object_functions->mt_local_implementations ). +* ENDMETHOD. +* +* METHOD serialize_local_macros. +* DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. +* APPEND 'a_local_macro' TO me->mo_spy_oo_object_functions->mt_local_macros. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* should_serialize_with_obj_key( ). +* +* lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'macros' iv_error = abap_false ). +* +* cl_abap_unit_assert=>assert_equals( +* act = lt_abap_source +* exp = me->mo_spy_oo_object_functions->mt_local_macros ). +* ENDMETHOD. +* +* METHOD serialize_test_classes. +* DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. +* APPEND 'a_local_test' TO me->mo_spy_oo_object_functions->mt_local_test_classes. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* should_serialize_with_obj_key( ). +* +* lt_abap_source = mo_fake_object_files->read_abap( iv_extra = 'testclasses' iv_error = abap_false ). +* +* cl_abap_unit_assert=>assert_equals( +* act = lt_abap_source +* exp = me->mo_spy_oo_object_functions->mt_local_test_classes ). +* ENDMETHOD. +* +* METHOD no_existing_no_serialize. +* me->mo_spy_oo_object_functions->mv_exists = abap_false. +* mo_oo_object->serialize( mo_xml_out ). +* ENDMETHOD. +* +* +* METHOD serialize_properties_to_xml. +* DATA: +* ls_expected_properties LIKE me->mo_spy_oo_object_functions->ms_class_properties, +* ls_actual_properties LIKE me->mo_spy_oo_object_functions->ms_class_properties. +* +* me->mo_spy_oo_object_functions->ms_class_properties-clsname = ms_item-obj_name. +* me->mo_spy_oo_object_functions->ms_class_properties-uuid = '123'. +* me->mo_spy_oo_object_functions->ms_class_properties-author = 'author'. +* me->mo_spy_oo_object_functions->ms_class_properties-createdon = '2016'. +* me->mo_spy_oo_object_functions->ms_class_properties-changedby = 'other'. +* me->mo_spy_oo_object_functions->ms_class_properties-changedon = '2017'. +* me->mo_spy_oo_object_functions->ms_class_properties-r3release = '1'. +* me->mo_spy_oo_object_functions->ms_class_properties-chgdanyby = 'other'. +* me->mo_spy_oo_object_functions->ms_class_properties-chgdanyon = '2017'. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* ls_expected_properties = me->mo_spy_oo_object_functions->ms_class_properties. +* CLEAR: +* ls_expected_properties-uuid, +* ls_expected_properties-author, +* ls_expected_properties-createdon, +* ls_expected_properties-changedby, +* ls_expected_properties-changedon, +* ls_expected_properties-r3release, +* ls_expected_properties-chgdanyby, +* ls_expected_properties-chgdanyon. +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'VSEOCLASS' +* CHANGING +* cg_data = ls_actual_properties ). +* cl_abap_unit_assert=>assert_equals( +* act = ls_actual_properties +* exp = ls_expected_properties ). +* ENDMETHOD. +* +* METHOD serialize_skipping_tests_xml. +* DATA: +* ls_actual_properties LIKE me->mo_spy_oo_object_functions->ms_class_properties. +* APPEND 'a_local_test' TO me->mo_spy_oo_object_functions->mt_local_test_classes. +* me->mo_spy_oo_object_functions->mv_skip_test_classes = abap_true. +* +* me->mo_spy_oo_object_functions->ms_class_properties-clsname = ms_item-obj_name. +* me->mo_spy_oo_object_functions->ms_class_properties-with_unit_tests = abap_true. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'VSEOCLASS' +* CHANGING +* cg_data = ls_actual_properties ). +* cl_abap_unit_assert=>assert_equals( +* act = ls_actual_properties-with_unit_tests +* exp = abap_false ). +* ENDMETHOD. +* +* METHOD serialize_textpool. +* DATA: +* ls_textpool TYPE textpool, +* lt_actual_text_pool TYPE textpool_table. +* ls_textpool-id = '1'. +* ls_textpool-key = '1'. +* APPEND ls_textpool TO mo_spy_oo_object_functions->mt_text_pool. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'TPOOL' +* CHANGING +* cg_data = lt_actual_text_pool ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_actual_text_pool +* exp = mo_spy_oo_object_functions->mt_text_pool ). +* ENDMETHOD. +* +* METHOD read_sotr_if_exception_class. +* DATA: +* lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, +* lt_actual_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt, +* ls_sotr LIKE LINE OF lt_sotr. +* +* me->mo_spy_oo_object_functions->ms_class_properties-category = seoc_category_exception. +* +* ls_sotr-header-concept = 'HEADER'. +* APPEND ls_sotr TO lt_sotr. +* +* me->mo_spy_oo_object_functions->mt_sotr = lt_sotr. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'SOTR' +* CHANGING +* cg_data = lt_actual_sotr ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_actual_sotr +* exp = mo_spy_oo_object_functions->mt_sotr ). +* ENDMETHOD. +* +* METHOD do_not_read_sotr_regular_class. +* DATA: +* lt_actual_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt. +* +* CLEAR: me->mo_spy_oo_object_functions->ms_class_properties-category. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'SOTR' +* CHANGING +* cg_data = lt_actual_sotr ). +* cl_abap_unit_assert=>assert_initial( lt_actual_sotr ). +* ENDMETHOD. +* +* METHOD should_serialize_documentation. +* DATA: +* lt_lines TYPE tlinetab, +* lt_actual_lines TYPE tlinetab, +* ls_line LIKE LINE OF lt_lines. +* +* ls_line-tdline = 'a_line'. +* APPEND ls_line TO lt_lines. +* +* me->mo_spy_oo_object_functions->mt_docu_lines = lt_lines. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'LINES' +* CHANGING +* cg_data = lt_actual_lines ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_actual_lines +* exp = me->mo_spy_oo_object_functions->mt_docu_lines ). +* ENDMETHOD. +* +* METHOD should_serialize_descriptions. +* DATA: +* lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, +* lt_actual_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, +* ls_description TYPE LINE OF zif_abapgit_definitions=>ty_seocompotx_tt. +* +* ls_description-clsname = 'class'. +* APPEND ls_description TO lt_descriptions. +* +* +* me->mo_spy_oo_object_functions->mt_descriptions = lt_descriptions. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'DESCRIPTIONS' +* CHANGING +* cg_data = lt_actual_descriptions ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_actual_descriptions +* exp = me->mo_spy_oo_object_functions->mt_descriptions ). +* ENDMETHOD. +* +* METHOD teardown. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_exists_called +* exp = abap_true ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_serialize_interface DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* teardown, +* serialize_abap FOR TESTING RAISING cx_static_check, +* no_existing_no_serialize FOR TESTING RAISING cx_static_check, +* serialize_properties_to_xml FOR TESTING RAISING cx_static_check, +* should_serialize_documentation FOR TESTING RAISING cx_static_check, +* should_serialize_descriptions FOR TESTING RAISING cx_static_check. +*ENDCLASS. +* +*CLASS ltcl_serialize_interface IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_fake_object_files. +* CREATE OBJECT mo_spy_oo_object_functions. +* me->mo_spy_oo_object_functions->mv_exists = abap_true. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zif_interface'. +* ms_item-obj_type = 'INTF'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_intf +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* CREATE OBJECT mo_xml_out. +* mo_oo_object->mo_files = mo_fake_object_files. +* ENDMETHOD. +* +* METHOD serialize_abap. +* DATA lt_abap_source TYPE zif_abapgit_definitions=>ty_string_tt. +* +* APPEND 'a_source_line' TO me->mo_spy_oo_object_functions->mt_source. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* should_serialize_with_obj_key( ). +* +* lt_abap_source = mo_fake_object_files->read_abap( ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_abap_source +* exp = me->mo_spy_oo_object_functions->mt_source ). +* ENDMETHOD. +* +* METHOD no_existing_no_serialize. +* me->mo_spy_oo_object_functions->mv_exists = abap_false. +* mo_oo_object->serialize( mo_xml_out ). +* ENDMETHOD. +* +* +* METHOD serialize_properties_to_xml. +* DATA: +* ls_expected_properties LIKE me->mo_spy_oo_object_functions->ms_interface_properties, +* ls_actual_properties LIKE me->mo_spy_oo_object_functions->ms_interface_properties. +* +* me->mo_spy_oo_object_functions->ms_interface_properties-clsname = ms_item-obj_name. +* me->mo_spy_oo_object_functions->ms_interface_properties-uuid = '123'. +* me->mo_spy_oo_object_functions->ms_interface_properties-author = 'author'. +* me->mo_spy_oo_object_functions->ms_interface_properties-createdon = '2016'. +* me->mo_spy_oo_object_functions->ms_interface_properties-changedby = 'other'. +* me->mo_spy_oo_object_functions->ms_interface_properties-changedon = '2017'. +* me->mo_spy_oo_object_functions->ms_interface_properties-r3release = '1'. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* ls_expected_properties = me->mo_spy_oo_object_functions->ms_interface_properties. +* CLEAR: +* ls_expected_properties-uuid, +* ls_expected_properties-author, +* ls_expected_properties-createdon, +* ls_expected_properties-changedby, +* ls_expected_properties-changedon, +* ls_expected_properties-r3release. +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'VSEOINTERF' +* CHANGING +* cg_data = ls_actual_properties ). +* cl_abap_unit_assert=>assert_equals( +* act = ls_actual_properties +* exp = ls_expected_properties ). +* ENDMETHOD. +* METHOD should_serialize_documentation. +* DATA: +* lt_lines TYPE tlinetab, +* lt_actual_lines TYPE tlinetab, +* ls_line LIKE LINE OF lt_lines. +* +* ls_line-tdline = 'a_line'. +* APPEND ls_line TO lt_lines. +* +* me->mo_spy_oo_object_functions->mt_docu_lines = lt_lines. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'LINES' +* CHANGING +* cg_data = lt_actual_lines ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_actual_lines +* exp = me->mo_spy_oo_object_functions->mt_docu_lines ). +* ENDMETHOD. +* +* METHOD should_serialize_descriptions. +* DATA: +* lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, +* lt_actual_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt, +* ls_description TYPE LINE OF zif_abapgit_definitions=>ty_seocompotx_tt. +* +* ls_description-clsname = 'class'. +* APPEND ls_description TO lt_descriptions. +* +* +* me->mo_spy_oo_object_functions->mt_descriptions = lt_descriptions. +* +* mo_oo_object->serialize( mo_xml_out ). +* +* CREATE OBJECT mo_xml_input +* EXPORTING +* iv_xml = mo_xml_out->render( ). +* +* mo_xml_input->read( +* EXPORTING +* iv_name = 'DESCRIPTIONS' +* CHANGING +* cg_data = lt_actual_descriptions ). +* cl_abap_unit_assert=>assert_equals( +* act = lt_actual_descriptions +* exp = me->mo_spy_oo_object_functions->mt_descriptions ). +* ENDMETHOD. +* METHOD teardown. +* cl_abap_unit_assert=>assert_equals( +* act = mo_spy_oo_object_functions->mv_exists_called +* exp = abap_true ). +* ENDMETHOD. +*ENDCLASS. +* +*CLASS ltcl_delete_oo_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT +*INHERITING FROM ltc_oo_test. +* PRIVATE SECTION. +* METHODS: +* setup, +* class_delete FOR TESTING RAISING cx_static_check, +* interface_delete FOR TESTING RAISING cx_static_check. +*ENDCLASS. +* +*CLASS ltcl_delete_oo_test IMPLEMENTATION. +* METHOD setup. +* CREATE OBJECT mo_spy_oo_object_functions. +* me->mo_spy_oo_object_functions->mv_exists = abap_true. +* ltcl_oo_factory_injector=>inject( mo_spy_oo_object_functions ). +* ENDMETHOD. +* +* METHOD class_delete. +* DATA ls_expected_delete_key TYPE seoclskey. +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zcl_class'. +* ms_item-obj_type = 'CLAS'. +* CREATE OBJECT mo_oo_object TYPE lcl_object_clas +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* +* mo_oo_object->delete( ). +* +* ls_expected_delete_key-clsname = ms_item-obj_name. +* +* cl_abap_unit_assert=>assert_equals( +* act = me->mo_spy_oo_object_functions->ms_delete_key +* exp = ls_expected_delete_key ). +* ENDMETHOD. +* +* METHOD interface_delete. +* DATA ls_expected_delete_key TYPE seoclskey. +* +* ms_item-devclass = 'package_name'. +* ms_item-obj_name = 'zif_interface'. +* ms_item-obj_type = 'INTF'. +* +* CREATE OBJECT mo_oo_object TYPE lcl_object_intf +* EXPORTING +* is_item = ms_item +* iv_language = sy-langu. +* +* mo_oo_object->delete( ). +* +* ls_expected_delete_key-clsname = ms_item-obj_name. +* +* cl_abap_unit_assert=>assert_equals( +* act = me->mo_spy_oo_object_functions->ms_delete_key +* exp = ls_expected_delete_key ). +* ENDMETHOD. +*ENDCLASS.