From f582225bf87983e121bbd3eeb4e921ced3126d8c Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 26 Aug 2020 06:50:47 +0200 Subject: [PATCH] start refactoring to use XML interfaces (#3796) * start refactoring to use XML interfaces #3531 * TABL + TRAN + UDMO + UENO start using the interfaces for xml instead of class references --- src/objects/zcl_abapgit_object_tabl.clas.abap | 8 +- src/objects/zcl_abapgit_object_tran.clas.abap | 6 +- src/objects/zcl_abapgit_object_udmo.clas.abap | 16 +-- src/objects/zcl_abapgit_object_ueno.clas.abap | 100 ++++++++++-------- .../zcl_abapgit_objects_generic.clas.abap | 10 +- .../zcl_abapgit_sotr_handler.clas.abap | 4 +- 6 files changed, 77 insertions(+), 67 deletions(-) diff --git a/src/objects/zcl_abapgit_object_tabl.clas.abap b/src/objects/zcl_abapgit_object_tabl.clas.abap index 0856e6501..8a5d78640 100644 --- a/src/objects/zcl_abapgit_object_tabl.clas.abap +++ b/src/objects/zcl_abapgit_object_tabl.clas.abap @@ -33,7 +33,7 @@ CLASS zcl_abapgit_object_tabl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje "! Serialize IDoc Segment type/definition if exits "! @parameter io_xml | XML writer "! @raising zcx_abapgit_exception | Exceptions - METHODS serialize_idoc_segment IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output + METHODS serialize_idoc_segment IMPORTING io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception. "! Deserialize IDoc Segment type/definition if exits @@ -41,7 +41,7 @@ CLASS zcl_abapgit_object_tabl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje "! @parameter iv_package | Target package "! @parameter rv_deserialized | It's a segment and was desserialized "! @raising zcx_abapgit_exception | Exceptions - METHODS deserialize_idoc_segment IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input + METHODS deserialize_idoc_segment IMPORTING io_xml TYPE REF TO zif_abapgit_xml_input iv_package TYPE devclass RETURNING VALUE(rv_deserialized) TYPE abap_bool RAISING zcx_abapgit_exception. @@ -87,10 +87,10 @@ CLASS zcl_abapgit_object_tabl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje METHODS: serialize_texts - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output + IMPORTING io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception, deserialize_texts - IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input + IMPORTING io_xml TYPE REF TO zif_abapgit_xml_input is_dd02v TYPE dd02v RAISING zcx_abapgit_exception. diff --git a/src/objects/zcl_abapgit_object_tran.clas.abap b/src/objects/zcl_abapgit_object_tran.clas.abap index c6217f51d..6e9e0bf8f 100644 --- a/src/objects/zcl_abapgit_object_tran.clas.abap +++ b/src/objects/zcl_abapgit_object_tran.clas.abap @@ -79,12 +79,12 @@ CLASS zcl_abapgit_object_tran DEFINITION !cg_value TYPE any . METHODS serialize_texts IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . METHODS deserialize_texts IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS deserialize_oo_transaction @@ -109,7 +109,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_tran IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_TRAN IMPLEMENTATION. METHOD add_data. diff --git a/src/objects/zcl_abapgit_object_udmo.clas.abap b/src/objects/zcl_abapgit_object_udmo.clas.abap index c8d1d2747..288f3918e 100644 --- a/src/objects/zcl_abapgit_object_udmo.clas.abap +++ b/src/objects/zcl_abapgit_object_udmo.clas.abap @@ -44,32 +44,32 @@ CLASS zcl_abapgit_object_udmo DEFINITION METHODS update_tree . METHODS serialize_short_texts IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . METHODS deserialize_short_texts IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS serialize_long_texts IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . METHODS deserialize_long_texts IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS serialize_entities IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . METHODS deserialize_entities IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS access_modify @@ -84,12 +84,12 @@ CLASS zcl_abapgit_object_udmo DEFINITION zcx_abapgit_exception . METHODS deserialize_model IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS serialize_model IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_ueno.clas.abap b/src/objects/zcl_abapgit_object_ueno.clas.abap index c7ace58d0..42ff61bcc 100644 --- a/src/objects/zcl_abapgit_object_ueno.clas.abap +++ b/src/objects/zcl_abapgit_object_ueno.clas.abap @@ -54,19 +54,19 @@ CLASS zcl_abapgit_object_ueno DEFINITION METHODS deserialize_docu_uen IMPORTING - io_xml TYPE REF TO zcl_abapgit_xml_input + io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception. METHODS deserialize_docu_url IMPORTING - io_xml TYPE REF TO zcl_abapgit_xml_input + io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception. METHODS deserialize_docu_usp IMPORTING - io_xml TYPE REF TO zcl_abapgit_xml_input + io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception. @@ -74,13 +74,13 @@ CLASS zcl_abapgit_object_ueno DEFINITION METHODS serialize_docu_uen IMPORTING - io_xml TYPE REF TO zcl_abapgit_xml_output + io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception. METHODS serialize_docu_url IMPORTING - io_xml TYPE REF TO zcl_abapgit_xml_output + io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception. @@ -90,7 +90,7 @@ CLASS zcl_abapgit_object_ueno DEFINITION METHODS serialize_docu_usp IMPORTING - io_xml TYPE REF TO zcl_abapgit_xml_output + io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception. @@ -105,7 +105,8 @@ ENDCLASS. -CLASS zcl_abapgit_object_ueno IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_UENO IMPLEMENTATION. + METHOD build_text_name. @@ -135,6 +136,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD delete_docu_uen. DATA lt_dm02l TYPE STANDARD TABLE OF dm02l WITH DEFAULT KEY. @@ -181,6 +183,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD delete_docu_url. DATA lt_dm42s TYPE STANDARD TABLE OF dm42s WITH DEFAULT KEY. @@ -231,6 +234,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD delete_docu_usp. DATA lt_dm45l TYPE STANDARD TABLE OF dm45l WITH DEFAULT KEY. @@ -259,43 +263,6 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. - METHOD deserialize_docu_xxxx. - - DATA ls_docu LIKE LINE OF it_docu. - DATA lv_objname TYPE lxeobjname. - DATA lv_change_flag TYPE char1. - DATA lv_error_status TYPE lxestatprc. - - LOOP AT it_docu INTO ls_docu. - - ls_docu-header-tdfuser = sy-uname. - ls_docu-header-tdfdate = sy-datum. - ls_docu-header-tdftime = sy-uzeit. - - ls_docu-header-tdluser = sy-uname. - ls_docu-header-tdldate = sy-datum. - ls_docu-header-tdltime = sy-uzeit. - - lv_objname = ls_docu-header-tdname. - - CALL FUNCTION 'LXE_OBJ_DOKU_PUT_XSTRING' - EXPORTING - slang = me->mv_language - tlang = ls_docu-language - objtype = ls_docu-header-tdid - objname = lv_objname - header = ls_docu-header - content = ls_docu-content - IMPORTING - change_flag = lv_change_flag - pstatus = lv_error_status. - - ENDLOOP. - - - ENDMETHOD. - - METHOD deserialize_docu_uen. DATA lt_docu TYPE ty_docu_lines. @@ -342,6 +309,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD deserialize_docu_usp. DATA lt_docu TYPE ty_docu_lines. @@ -353,6 +321,44 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + + METHOD deserialize_docu_xxxx. + + DATA ls_docu LIKE LINE OF it_docu. + DATA lv_objname TYPE lxeobjname. + DATA lv_change_flag TYPE char1. + DATA lv_error_status TYPE lxestatprc. + + LOOP AT it_docu INTO ls_docu. + + ls_docu-header-tdfuser = sy-uname. + ls_docu-header-tdfdate = sy-datum. + ls_docu-header-tdftime = sy-uzeit. + + ls_docu-header-tdluser = sy-uname. + ls_docu-header-tdldate = sy-datum. + ls_docu-header-tdltime = sy-uzeit. + + lv_objname = ls_docu-header-tdname. + + CALL FUNCTION 'LXE_OBJ_DOKU_PUT_XSTRING' + EXPORTING + slang = me->mv_language + tlang = ls_docu-language + objtype = ls_docu-header-tdid + objname = lv_objname + header = ls_docu-header + content = ls_docu-content + IMPORTING + change_flag = lv_change_flag + pstatus = lv_error_status. + + ENDLOOP. + + + ENDMETHOD. + + METHOD is_name_permitted. " It is unlikely that a serialized entity will have a name that is not permitted. However @@ -372,6 +378,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD serialize_docu_uen. DATA lt_docu TYPE ty_docu_lines. @@ -393,6 +400,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ig_data = lt_docu ). ENDMETHOD. + METHOD serialize_docu_url. @@ -413,6 +421,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD serialize_docu_usp. DATA lt_docu TYPE ty_docu_lines. @@ -425,6 +434,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD serialize_docu_xxxx. DATA ls_docu TYPE ty_docu. @@ -477,6 +487,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. ENDMETHOD. + METHOD zif_abapgit_object~changed_by. SELECT SINGLE lstuser INTO rv_user @@ -638,5 +649,4 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION. serialize_docu_usp( io_xml ). ENDMETHOD. - ENDCLASS. diff --git a/src/objects/zcl_abapgit_objects_generic.clas.abap b/src/objects/zcl_abapgit_objects_generic.clas.abap index 44016352f..f6407cd5f 100644 --- a/src/objects/zcl_abapgit_objects_generic.clas.abap +++ b/src/objects/zcl_abapgit_objects_generic.clas.abap @@ -15,7 +15,7 @@ CLASS zcl_abapgit_objects_generic DEFINITION METHODS deserialize IMPORTING !iv_package TYPE devclass - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS exists @@ -25,7 +25,7 @@ CLASS zcl_abapgit_objects_generic DEFINITION zcx_abapgit_exception . METHODS serialize IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . PROTECTED SECTION. @@ -54,7 +54,7 @@ CLASS zcl_abapgit_objects_generic DEFINITION zcx_abapgit_exception . METHODS deserialize_data IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . METHODS distribute_name_to_components @@ -85,7 +85,7 @@ CLASS zcl_abapgit_objects_generic DEFINITION zcx_abapgit_exception . METHODS serialize_data IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_output + !io_xml TYPE REF TO zif_abapgit_xml_output RAISING zcx_abapgit_exception . METHODS split_value_to_keys @@ -97,7 +97,7 @@ CLASS zcl_abapgit_objects_generic DEFINITION !cv_non_value_pos TYPE numc3 . METHODS validate IMPORTING - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . PRIVATE SECTION. diff --git a/src/objects/zcl_abapgit_sotr_handler.clas.abap b/src/objects/zcl_abapgit_sotr_handler.clas.abap index 695ef8ada..19c69aa59 100644 --- a/src/objects/zcl_abapgit_sotr_handler.clas.abap +++ b/src/objects/zcl_abapgit_sotr_handler.clas.abap @@ -15,7 +15,7 @@ CLASS zcl_abapgit_sotr_handler DEFINITION !iv_pgmid TYPE pgmid !iv_object TYPE trobjtype !iv_obj_name TYPE csequence - !io_xml TYPE REF TO zcl_abapgit_xml_output OPTIONAL + !io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL EXPORTING !et_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt !et_sotr_use TYPE zif_abapgit_definitions=>ty_sotr_use_tt @@ -24,7 +24,7 @@ CLASS zcl_abapgit_sotr_handler DEFINITION CLASS-METHODS create_sotr IMPORTING !iv_package TYPE devclass - !io_xml TYPE REF TO zcl_abapgit_xml_input + !io_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception . PROTECTED SECTION.