mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
CLAS: Refactor skip of SADL classes (#6198)
This commit is contained in:
parent
99bdf3a1b9
commit
af3e47527d
|
@ -1,74 +0,0 @@
|
||||||
CLASS zcl_abapgit_skip_objects DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS:
|
|
||||||
skip_sadl_generated_objects
|
|
||||||
IMPORTING
|
|
||||||
it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
|
||||||
ii_log TYPE REF TO zif_abapgit_log OPTIONAL
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
METHODS:
|
|
||||||
has_sadl_superclass
|
|
||||||
IMPORTING
|
|
||||||
is_class TYPE zif_abapgit_definitions=>ty_tadir
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_return) TYPE abap_bool.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_SKIP_OBJECTS IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD has_sadl_superclass.
|
|
||||||
|
|
||||||
DATA: li_oo_functions TYPE REF TO zif_abapgit_oo_object_fnc,
|
|
||||||
lv_class_name TYPE seoclsname,
|
|
||||||
lv_superclass TYPE seoclsname.
|
|
||||||
|
|
||||||
|
|
||||||
li_oo_functions = zcl_abapgit_oo_factory=>make( is_class-object ).
|
|
||||||
lv_class_name = is_class-obj_name.
|
|
||||||
lv_superclass = li_oo_functions->read_superclass( lv_class_name ).
|
|
||||||
IF lv_superclass = 'CL_SADL_GTK_EXPOSURE_MPC'.
|
|
||||||
rv_return = abap_true.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD skip_sadl_generated_objects.
|
|
||||||
|
|
||||||
DATA: ls_tadir_class LIKE LINE OF rt_tadir,
|
|
||||||
ls_tadir LIKE LINE OF rt_tadir,
|
|
||||||
lt_candidates LIKE rt_tadir,
|
|
||||||
lt_lines_to_delete TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
|
||||||
|
|
||||||
lt_candidates = it_tadir.
|
|
||||||
DELETE lt_candidates WHERE object <> 'CLAS' OR genflag = abap_false.
|
|
||||||
|
|
||||||
LOOP AT it_tadir INTO ls_tadir WHERE object = 'DDLS'.
|
|
||||||
LOOP AT lt_candidates INTO ls_tadir_class
|
|
||||||
WHERE object = 'CLAS' AND obj_name CS ls_tadir-obj_name.
|
|
||||||
IF has_sadl_superclass( ls_tadir_class ) = abap_true.
|
|
||||||
APPEND ls_tadir_class TO lt_lines_to_delete.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
rt_tadir = it_tadir.
|
|
||||||
DELETE ADJACENT DUPLICATES FROM lt_lines_to_delete.
|
|
||||||
LOOP AT lt_lines_to_delete INTO ls_tadir_class.
|
|
||||||
DELETE TABLE rt_tadir FROM ls_tadir_class.
|
|
||||||
IF ii_log IS BOUND.
|
|
||||||
ii_log->add(
|
|
||||||
iv_msg = |{ ls_tadir_class-obj_name } skipped: generated by SADL|
|
|
||||||
iv_type = 'W' ).
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<VSEOCLASS>
|
|
||||||
<CLSNAME>ZCL_ABAPGIT_SKIP_OBJECTS</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - Skip Objects</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -38,15 +38,6 @@ CLASS zcl_abapgit_tadir DEFINITION
|
||||||
!et_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
!et_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS skip_objects
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE tadir-devclass
|
|
||||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
|
|
||||||
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
|
|
||||||
CHANGING
|
|
||||||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception ##NEEDED.
|
|
||||||
METHODS add_local_packages
|
METHODS add_local_packages
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!it_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt
|
!it_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt
|
||||||
|
@ -203,14 +194,6 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
||||||
et_tadir = rt_tadir
|
et_tadir = rt_tadir
|
||||||
et_packages = lt_packages ).
|
et_packages = lt_packages ).
|
||||||
|
|
||||||
skip_objects(
|
|
||||||
EXPORTING
|
|
||||||
iv_package = iv_package
|
|
||||||
io_dot = io_dot
|
|
||||||
ii_log = ii_log
|
|
||||||
CHANGING
|
|
||||||
ct_tadir = rt_tadir ).
|
|
||||||
|
|
||||||
add_local_packages(
|
add_local_packages(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
it_packages = lt_packages
|
it_packages = lt_packages
|
||||||
|
@ -394,21 +377,6 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD skip_objects.
|
|
||||||
|
|
||||||
" Todo, replace with solution that will work with any object type (might depend on iv_package and io_dot)
|
|
||||||
|
|
||||||
DATA lo_skip_objects TYPE REF TO zcl_abapgit_skip_objects.
|
|
||||||
|
|
||||||
CREATE OBJECT lo_skip_objects.
|
|
||||||
|
|
||||||
ct_tadir = lo_skip_objects->skip_sadl_generated_objects(
|
|
||||||
it_tadir = ct_tadir
|
|
||||||
ii_log = ii_log ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_tadir~get_object_package.
|
METHOD zif_abapgit_tadir~get_object_package.
|
||||||
|
|
||||||
DATA: ls_tadir TYPE zif_abapgit_definitions=>ty_tadir,
|
DATA: ls_tadir TYPE zif_abapgit_definitions=>ty_tadir,
|
||||||
|
|
|
@ -102,7 +102,6 @@ CLASS zcl_abapgit_object_clas DEFINITION
|
||||||
events TYPE string VALUE 'LONGTEXTS_CE',
|
events TYPE string VALUE 'LONGTEXTS_CE',
|
||||||
types TYPE string VALUE 'LONGTEXTS_CT',
|
types TYPE string VALUE 'LONGTEXTS_CT',
|
||||||
END OF c_longtext_name.
|
END OF c_longtext_name.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF c_longtext_id,
|
BEGIN OF c_longtext_id,
|
||||||
class TYPE dokil-id VALUE 'CL',
|
class TYPE dokil-id VALUE 'CL',
|
||||||
|
@ -114,25 +113,29 @@ CLASS zcl_abapgit_object_clas DEFINITION
|
||||||
|
|
||||||
METHODS deserialize_pre_ddic
|
METHODS deserialize_pre_ddic
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ii_xml TYPE REF TO zif_abapgit_xml_input
|
!ii_xml TYPE REF TO zif_abapgit_xml_input
|
||||||
iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
METHODS:
|
|
||||||
is_class_locked
|
METHODS is_class_locked
|
||||||
RETURNING VALUE(rv_is_class_locked) TYPE abap_bool
|
RETURNING
|
||||||
RAISING zcx_abapgit_exception.
|
VALUE(rv_is_class_locked) TYPE abap_bool
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS interface_replacement
|
METHODS interface_replacement
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_from_interface TYPE seoclsname
|
!iv_from_interface TYPE seoclsname
|
||||||
!iv_to_interface TYPE seoclsname
|
!iv_to_interface TYPE seoclsname
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_source TYPE seop_source_string.
|
!ct_source TYPE seop_source_string.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -848,10 +851,19 @@ CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~exists.
|
METHOD zif_abapgit_object~exists.
|
||||||
DATA: ls_class_key TYPE seoclskey.
|
|
||||||
|
DATA ls_class_key TYPE seoclskey.
|
||||||
|
|
||||||
ls_class_key-clsname = ms_item-obj_name.
|
ls_class_key-clsname = ms_item-obj_name.
|
||||||
|
|
||||||
rv_bool = mi_object_oriented_object_fct->exists( ls_class_key ).
|
rv_bool = mi_object_oriented_object_fct->exists( ls_class_key ).
|
||||||
|
|
||||||
|
" Skip classes generated by DDLS (SADL)
|
||||||
|
IF rv_bool = abap_true AND
|
||||||
|
mi_object_oriented_object_fct->read_superclass( ls_class_key-clsname ) = 'CL_SADL_GTK_EXPOSURE_MPC'.
|
||||||
|
rv_bool = abap_false.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user