mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
FUGR: Better maintenance view auto comments cleanups (#5622)
This commit is contained in:
parent
20e15a19c2
commit
380508d72c
|
@ -142,7 +142,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECT_FUGR IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD check_rfc_parameters.
|
METHOD check_rfc_parameters.
|
||||||
|
@ -853,10 +853,12 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
APPEND ls_function TO rt_functions.
|
APPEND ls_function TO rt_functions.
|
||||||
|
|
||||||
IF NOT lt_new_source IS INITIAL.
|
IF NOT lt_new_source IS INITIAL.
|
||||||
|
strip_generation_comments( CHANGING ct_source = lt_new_source ).
|
||||||
zif_abapgit_object~mo_files->add_abap(
|
zif_abapgit_object~mo_files->add_abap(
|
||||||
iv_extra = <ls_func>-funcname
|
iv_extra = <ls_func>-funcname
|
||||||
it_abap = lt_new_source ).
|
it_abap = lt_new_source ).
|
||||||
ELSE.
|
ELSE.
|
||||||
|
strip_generation_comments( CHANGING ct_source = lt_source ).
|
||||||
zif_abapgit_object~mo_files->add_abap(
|
zif_abapgit_object~mo_files->add_abap(
|
||||||
iv_extra = <ls_func>-funcname
|
iv_extra = <ls_func>-funcname
|
||||||
it_abap = lt_source ).
|
it_abap = lt_source ).
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
CLASS zcl_abapgit_objects_program DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super.
|
CLASS zcl_abapgit_objects_program DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
INHERITING FROM zcl_abapgit_objects_super
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
TYPES: BEGIN OF ty_progdir,
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_progdir,
|
||||||
name TYPE progdir-name,
|
name TYPE progdir-name,
|
||||||
state TYPE progdir-state,
|
state TYPE progdir-state,
|
||||||
sqlx TYPE progdir-sqlx,
|
sqlx TYPE progdir-sqlx,
|
||||||
|
@ -35,24 +40,27 @@ CLASS zcl_abapgit_objects_program DEFINITION PUBLIC INHERITING FROM zcl_abapgit_
|
||||||
END OF ty_progdir.
|
END OF ty_progdir.
|
||||||
|
|
||||||
METHODS serialize_program
|
METHODS serialize_program
|
||||||
IMPORTING io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
|
IMPORTING
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
|
||||||
io_files TYPE REF TO zcl_abapgit_objects_files
|
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
iv_program TYPE programm OPTIONAL
|
!io_files TYPE REF TO zcl_abapgit_objects_files
|
||||||
iv_extra TYPE clike OPTIONAL
|
!iv_program TYPE programm OPTIONAL
|
||||||
RAISING zcx_abapgit_exception.
|
!iv_extra TYPE clike OPTIONAL
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
METHODS read_progdir
|
METHODS read_progdir
|
||||||
IMPORTING iv_program TYPE programm
|
IMPORTING
|
||||||
RETURNING VALUE(rs_progdir) TYPE ty_progdir.
|
!iv_program TYPE programm
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_progdir) TYPE ty_progdir.
|
||||||
METHODS deserialize_program
|
METHODS deserialize_program
|
||||||
IMPORTING is_progdir TYPE ty_progdir
|
IMPORTING
|
||||||
it_source TYPE abaptxt255_tab
|
!is_progdir TYPE ty_progdir
|
||||||
it_tpool TYPE textpool_table
|
!it_source TYPE abaptxt255_tab
|
||||||
iv_package TYPE devclass
|
!it_tpool TYPE textpool_table
|
||||||
RAISING zcx_abapgit_exception.
|
!iv_package TYPE devclass
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
|
@ -85,7 +93,7 @@ CLASS zcl_abapgit_objects_program DEFINITION PUBLIC INHERITING FROM zcl_abapgit_
|
||||||
|
|
||||||
METHODS strip_generation_comments
|
METHODS strip_generation_comments
|
||||||
CHANGING
|
CHANGING
|
||||||
ct_source TYPE abaptxt255_tab.
|
ct_source TYPE STANDARD TABLE. " tab of string or charX
|
||||||
METHODS serialize_dynpros
|
METHODS serialize_dynpros
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_program_name TYPE programm
|
!iv_program_name TYPE programm
|
||||||
|
@ -192,7 +200,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECTS_PROGRAM IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_tpool.
|
METHOD add_tpool.
|
||||||
|
@ -965,12 +973,20 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD strip_generation_comments.
|
METHOD strip_generation_comments.
|
||||||
|
|
||||||
FIELD-SYMBOLS <lv_line> LIKE LINE OF ct_source.
|
FIELD-SYMBOLS <lv_line> TYPE any. " Assuming CHAR (e.g. abaptxt255_tab) or string (FUGR)
|
||||||
|
|
||||||
IF ms_item-obj_type <> 'FUGR'.
|
IF ms_item-obj_type <> 'FUGR'.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
" Case 1: MV FM main prog and TOPs
|
||||||
|
READ TABLE ct_source INDEX 1 ASSIGNING <lv_line>.
|
||||||
|
IF sy-subrc = 0 AND <lv_line> CP '#**regenerated at *'.
|
||||||
|
DELETE ct_source INDEX 1.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" Case 2: MV FM includes
|
||||||
IF lines( ct_source ) < 5. " Generation header length
|
IF lines( ct_source ) < 5. " Generation header length
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
122
src/objects/zcl_abapgit_objects_program.clas.testclasses.abap
Normal file
122
src/objects/zcl_abapgit_objects_program.clas.testclasses.abap
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
CLASS ltcl_test DEFINITION FINAL
|
||||||
|
FOR TESTING
|
||||||
|
RISK LEVEL HARMLESS
|
||||||
|
DURATION SHORT.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS strip_generation_comments_1 FOR TESTING.
|
||||||
|
METHODS strip_generation_comments_2 FOR TESTING.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_objects_program DEFINITION LOCAL FRIENDS ltcl_test.
|
||||||
|
|
||||||
|
CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
METHOD strip_generation_comments_1.
|
||||||
|
|
||||||
|
DATA lo_cut TYPE REF TO zcl_abapgit_objects_program.
|
||||||
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
DATA lt_src_orig TYPE abaptxt255_tab.
|
||||||
|
DATA lt_src_act TYPE abaptxt255_tab.
|
||||||
|
DATA lt_src_exp TYPE abaptxt255_tab.
|
||||||
|
|
||||||
|
|
||||||
|
APPEND '*---------------------------------------------------------------------*' TO lt_src_orig.
|
||||||
|
APPEND '* view related data declarations' TO lt_src_orig.
|
||||||
|
APPEND '* generation date: 03.02.2022 at 13:19:02' TO lt_src_orig.
|
||||||
|
APPEND '* view maintenance generator version: #001407#' TO lt_src_orig.
|
||||||
|
APPEND '*---------------------------------------------------------------------*' TO lt_src_orig.
|
||||||
|
APPEND 'some code starts here' TO lt_src_orig.
|
||||||
|
|
||||||
|
APPEND '*---------------------------------------------------------------------*' TO lt_src_exp.
|
||||||
|
APPEND '* view related data declarations' TO lt_src_exp.
|
||||||
|
APPEND '*---------------------------------------------------------------------*' TO lt_src_exp.
|
||||||
|
APPEND 'some code starts here' TO lt_src_exp.
|
||||||
|
|
||||||
|
" case 1, not FUGR, should skip
|
||||||
|
ls_item-obj_type = 'PROG'.
|
||||||
|
CREATE OBJECT lo_cut
|
||||||
|
EXPORTING
|
||||||
|
iv_language = 'E'
|
||||||
|
is_item = ls_item.
|
||||||
|
|
||||||
|
lt_src_act = lt_src_orig.
|
||||||
|
lo_cut->strip_generation_comments( CHANGING ct_source = lt_src_act ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_src_act
|
||||||
|
exp = lt_src_orig ).
|
||||||
|
|
||||||
|
" case 2, FUGR
|
||||||
|
ls_item-obj_type = 'FUGR'.
|
||||||
|
CREATE OBJECT lo_cut
|
||||||
|
EXPORTING
|
||||||
|
iv_language = 'E'
|
||||||
|
is_item = ls_item.
|
||||||
|
|
||||||
|
lt_src_act = lt_src_orig.
|
||||||
|
lo_cut->strip_generation_comments( CHANGING ct_source = lt_src_act ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_src_act
|
||||||
|
exp = lt_src_exp ).
|
||||||
|
|
||||||
|
" case 3, wrong pattern
|
||||||
|
|
||||||
|
CLEAR lt_src_orig.
|
||||||
|
APPEND '*---------------------------------------------------------------------*' TO lt_src_orig.
|
||||||
|
APPEND '* extra line' TO lt_src_orig.
|
||||||
|
APPEND '* view related data declarations' TO lt_src_orig.
|
||||||
|
APPEND '* generation date: 03.02.2022 at 13:19:02' TO lt_src_orig.
|
||||||
|
APPEND '* view maintenance generator version: #001407#' TO lt_src_orig.
|
||||||
|
APPEND '*---------------------------------------------------------------------*' TO lt_src_orig.
|
||||||
|
APPEND 'some code starts here' TO lt_src_orig.
|
||||||
|
|
||||||
|
ls_item-obj_type = 'FUGR'.
|
||||||
|
CREATE OBJECT lo_cut
|
||||||
|
EXPORTING
|
||||||
|
iv_language = 'E'
|
||||||
|
is_item = ls_item.
|
||||||
|
|
||||||
|
lt_src_act = lt_src_orig.
|
||||||
|
lo_cut->strip_generation_comments( CHANGING ct_source = lt_src_act ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_src_act
|
||||||
|
exp = lt_src_orig ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD strip_generation_comments_2.
|
||||||
|
|
||||||
|
DATA lo_cut TYPE REF TO zcl_abapgit_objects_program.
|
||||||
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
DATA lt_src_orig TYPE abaptxt255_tab.
|
||||||
|
DATA lt_src_act TYPE abaptxt255_tab.
|
||||||
|
DATA lt_src_exp TYPE abaptxt255_tab.
|
||||||
|
|
||||||
|
|
||||||
|
APPEND '* regenerated at 06.06.2022 10:47:40' TO lt_src_orig.
|
||||||
|
APPEND 'some code 1' TO lt_src_orig.
|
||||||
|
APPEND 'some code 2' TO lt_src_orig.
|
||||||
|
APPEND 'some code 3' TO lt_src_orig.
|
||||||
|
APPEND 'some code 4' TO lt_src_orig.
|
||||||
|
APPEND 'some code 5' TO lt_src_orig.
|
||||||
|
|
||||||
|
APPEND 'some code 1' TO lt_src_exp.
|
||||||
|
APPEND 'some code 2' TO lt_src_exp.
|
||||||
|
APPEND 'some code 3' TO lt_src_exp.
|
||||||
|
APPEND 'some code 4' TO lt_src_exp.
|
||||||
|
APPEND 'some code 5' TO lt_src_exp.
|
||||||
|
|
||||||
|
" case 1, not FUGR, should skip
|
||||||
|
ls_item-obj_type = 'FUGR'.
|
||||||
|
CREATE OBJECT lo_cut
|
||||||
|
EXPORTING
|
||||||
|
iv_language = 'E'
|
||||||
|
is_item = ls_item.
|
||||||
|
|
||||||
|
lt_src_act = lt_src_orig.
|
||||||
|
lo_cut->strip_generation_comments( CHANGING ct_source = lt_src_act ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_src_act
|
||||||
|
exp = lt_src_exp ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
|
@ -133,7 +133,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcx_abapgit_exception IMPLEMENTATION.
|
CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||||
|
@ -382,6 +382,16 @@ CLASS zcx_abapgit_exception IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD remove_newlines_from_string.
|
||||||
|
rv_result = iv_string.
|
||||||
|
|
||||||
|
REPLACE ALL OCCURRENCES OF ` ` && cl_abap_char_utilities=>cr_lf IN rv_result WITH ` `.
|
||||||
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf IN rv_result WITH ` `.
|
||||||
|
REPLACE ALL OCCURRENCES OF ` ` && cl_abap_char_utilities=>newline IN rv_result WITH ` `.
|
||||||
|
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>newline IN rv_result WITH ` `.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD replace_section_head_with_text.
|
METHOD replace_section_head_with_text.
|
||||||
|
|
||||||
CASE cs_itf-tdline.
|
CASE cs_itf-tdline.
|
||||||
|
@ -483,13 +493,4 @@ CLASS zcx_abapgit_exception IMPLEMENTATION.
|
||||||
rs_msg = ls_msg.
|
rs_msg = ls_msg.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD remove_newlines_from_string.
|
|
||||||
rv_result = iv_string.
|
|
||||||
|
|
||||||
REPLACE ALL OCCURRENCES OF ` ` && cl_abap_char_utilities=>cr_lf IN rv_result WITH ` `.
|
|
||||||
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf IN rv_result WITH ` `.
|
|
||||||
REPLACE ALL OCCURRENCES OF ` ` && cl_abap_char_utilities=>newline IN rv_result WITH ` `.
|
|
||||||
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>newline IN rv_result WITH ` `.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user