mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +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.
|
||||
|
@ -853,10 +853,12 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
APPEND ls_function TO rt_functions.
|
||||
|
||||
IF NOT lt_new_source IS INITIAL.
|
||||
strip_generation_comments( CHANGING ct_source = lt_new_source ).
|
||||
zif_abapgit_object~mo_files->add_abap(
|
||||
iv_extra = <ls_func>-funcname
|
||||
it_abap = lt_new_source ).
|
||||
ELSE.
|
||||
strip_generation_comments( CHANGING ct_source = lt_source ).
|
||||
zif_abapgit_object~mo_files->add_abap(
|
||||
iv_extra = <ls_func>-funcname
|
||||
it_abap = lt_source ).
|
||||
|
|
|
@ -1,58 +1,66 @@
|
|||
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.
|
||||
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.
|
||||
|
||||
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 zif_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.
|
||||
|
||||
IMPORTING
|
||||
!io_xml TYPE REF TO zif_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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
@ -85,7 +93,7 @@ CLASS zcl_abapgit_objects_program DEFINITION PUBLIC INHERITING FROM zcl_abapgit_
|
|||
|
||||
METHODS strip_generation_comments
|
||||
CHANGING
|
||||
ct_source TYPE abaptxt255_tab.
|
||||
ct_source TYPE STANDARD TABLE. " tab of string or charX
|
||||
METHODS serialize_dynpros
|
||||
IMPORTING
|
||||
!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.
|
||||
|
@ -965,12 +973,20 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
|
||||
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'.
|
||||
RETURN.
|
||||
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
|
||||
RETURN.
|
||||
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>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
|
@ -133,7 +133,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcx_abapgit_exception IMPLEMENTATION.
|
||||
CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||
|
@ -382,6 +382,16 @@ CLASS zcx_abapgit_exception IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
CASE cs_itf-tdline.
|
||||
|
@ -483,13 +493,4 @@ CLASS zcx_abapgit_exception IMPLEMENTATION.
|
|||
rs_msg = ls_msg.
|
||||
|
||||
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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user