mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
first dependency injection #1390
* extract public methods of ZCL_ABAPGIT_TADIR to new interface * create factory ZCL_ABAPGIT_FACTORY * refactor existing calls
This commit is contained in:
parent
fbadb3537b
commit
4e67e884de
|
@ -721,7 +721,7 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
|||
TRANSLATE <ls_field>-value TO UPPER CASE.
|
||||
rs_tadir-obj_name = <ls_field>-value.
|
||||
|
||||
rs_tadir = zcl_abapgit_tadir=>read_single(
|
||||
rs_tadir = zcl_abapgit_factory=>get_tadir( )->read_single(
|
||||
iv_object = rs_tadir-object
|
||||
iv_obj_name = rs_tadir-obj_name ).
|
||||
|
||||
|
|
|
@ -288,7 +288,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
|
|||
lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
|
||||
lv_package = lo_repo->get_package( ).
|
||||
lt_tadir = zcl_abapgit_tadir=>read( lv_package ).
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( lv_package ).
|
||||
|
||||
IF lines( lt_tadir ) > 0.
|
||||
|
||||
|
|
30
src/zcl_abapgit_factory.clas.abap
Normal file
30
src/zcl_abapgit_factory.clas.abap
Normal file
|
@ -0,0 +1,30 @@
|
|||
CLASS zcl_abapgit_factory DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-DATA gi_tadir TYPE REF TO zif_abapgit_tadir .
|
||||
|
||||
CLASS-METHODS get_tadir
|
||||
RETURNING
|
||||
VALUE(ri_tadir) TYPE REF TO zif_abapgit_tadir .
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_FACTORY IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD get_tadir.
|
||||
|
||||
IF gi_tadir IS INITIAL.
|
||||
CREATE OBJECT gi_tadir TYPE zcl_abapgit_tadir.
|
||||
ENDIF.
|
||||
|
||||
ri_tadir = gi_tadir.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
18
src/zcl_abapgit_factory.clas.xml
Normal file
18
src/zcl_abapgit_factory.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?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_FACTORY</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Factory</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -236,7 +236,7 @@ CLASS ZCL_ABAPGIT_FILE_STATUS IMPLEMENTATION.
|
|||
|
||||
CHECK lv_is_xml = abap_true. " Skip all but obj definitions
|
||||
|
||||
ls_item-devclass = zcl_abapgit_tadir=>get_object_package(
|
||||
ls_item-devclass = zcl_abapgit_factory=>get_tadir( )->get_object_package(
|
||||
iv_object = ls_item-obj_type
|
||||
iv_obj_name = ls_item-obj_name ).
|
||||
|
||||
|
|
|
@ -893,7 +893,7 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
|
|||
io_dot = io_repo->get_dot_abapgit( )
|
||||
iv_path = <ls_result>-path ).
|
||||
|
||||
ls_tadir = zcl_abapgit_tadir=>read_single(
|
||||
ls_tadir = zcl_abapgit_factory=>get_tadir( )->read_single(
|
||||
iv_object = <ls_result>-obj_type
|
||||
iv_obj_name = <ls_result>-obj_name ).
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ CLASS ltcl_dangerous IMPLEMENTATION.
|
|||
lo_repo->status( ).
|
||||
lo_repo->deserialize( ls_checks ).
|
||||
|
||||
lt_tadir = zcl_abapgit_tadir=>read( c_package ).
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( c_package ).
|
||||
LOOP AT lt_types ASSIGNING <lv_type>.
|
||||
READ TABLE lt_tadir WITH KEY object = <lv_type> TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc <> 0.
|
||||
|
@ -85,7 +85,7 @@ CLASS ltcl_dangerous IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
zcl_abapgit_objects=>delete( lt_tadir ).
|
||||
lt_tadir = zcl_abapgit_tadir=>read( c_package ).
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( c_package ).
|
||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||
lv_msg = |Not deleted properly { <ls_tadir>-object } { <ls_tadir>-obj_name }|.
|
||||
cl_abap_unit_assert=>fail(
|
||||
|
|
|
@ -125,7 +125,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -262,7 +262,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
|
|||
iv_data = <ls_return>-file-data ).
|
||||
|
||||
lt_cache = mt_local.
|
||||
lt_tadir = zcl_abapgit_tadir=>read(
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
|
||||
iv_package = get_package( )
|
||||
iv_ignore_subpackages = get_local_settings( )-ignore_subpackages
|
||||
iv_only_local_objects = get_local_settings( )-only_local_objects
|
||||
|
@ -609,5 +609,4 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
|
|||
set( it_checksums = lt_checksums ).
|
||||
|
||||
ENDMETHOD. " update_local_checksums
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -108,7 +108,7 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
|
|||
<ls_tadir> LIKE LINE OF lt_tadir.
|
||||
|
||||
|
||||
lt_tadir = zcl_abapgit_tadir=>read(
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
|
||||
iv_package = mo_repo->get_package( )
|
||||
io_dot = mo_repo->get_dot_abapgit( ) ).
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_repo_online IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD actualize_head_branch.
|
||||
|
@ -215,8 +215,8 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
|
|||
lt_remote = get_files_remote( ).
|
||||
lt_status = status( ).
|
||||
|
||||
lv_package = me->get_package( ).
|
||||
lt_tadir = zcl_abapgit_tadir=>read( lv_package ).
|
||||
lv_package = get_package( ).
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( lv_package ).
|
||||
SORT lt_tadir BY pgmid ASCENDING object ASCENDING obj_name ASCENDING devclass ASCENDING.
|
||||
|
||||
LOOP AT lt_status ASSIGNING <ls_status>
|
||||
|
|
|
@ -290,7 +290,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( 'Not authorized' ).
|
||||
ENDIF.
|
||||
|
||||
lt_tadir = zcl_abapgit_tadir=>read( io_repo->get_package( ) ).
|
||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( io_repo->get_package( ) ).
|
||||
|
||||
zcl_abapgit_objects=>delete( lt_tadir ).
|
||||
|
||||
|
|
|
@ -1,55 +1,28 @@
|
|||
CLASS zcl_abapgit_tadir DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
CREATE PUBLIC
|
||||
|
||||
GLOBAL FRIENDS zcl_abapgit_factory .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS read
|
||||
IMPORTING
|
||||
!iv_package TYPE tadir-devclass
|
||||
!iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
||||
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
|
||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
|
||||
!io_log TYPE REF TO zcl_abapgit_log OPTIONAL
|
||||
RETURNING
|
||||
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
CLASS-METHODS read_single
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE tadir-object
|
||||
!iv_obj_name TYPE tadir-obj_name
|
||||
RETURNING
|
||||
VALUE(rs_tadir) TYPE tadir
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
CLASS-METHODS get_object_package
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE tadir-object
|
||||
!iv_obj_name TYPE tadir-obj_name
|
||||
RETURNING
|
||||
VALUE(rv_devclass) TYPE tadir-devclass
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
INTERFACES zif_abapgit_tadir .
|
||||
PRIVATE SECTION.
|
||||
|
||||
CLASS-METHODS exists
|
||||
METHODS exists
|
||||
IMPORTING
|
||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
RETURNING
|
||||
VALUE(rv_exists) TYPE abap_bool .
|
||||
CLASS-METHODS check_exists
|
||||
METHODS check_exists
|
||||
IMPORTING
|
||||
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RETURNING
|
||||
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
CLASS-METHODS build
|
||||
METHODS build
|
||||
IMPORTING
|
||||
!iv_package TYPE tadir-devclass
|
||||
!iv_top TYPE tadir-devclass
|
||||
|
@ -65,7 +38,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_TADIR IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD build.
|
||||
|
@ -211,12 +184,13 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_object_package.
|
||||
METHOD zif_abapgit_tadir~get_object_package.
|
||||
|
||||
DATA: ls_tadir TYPE tadir,
|
||||
ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||
|
||||
ls_tadir = read_single( iv_pgmid = iv_pgmid
|
||||
ls_tadir = zif_abapgit_tadir~read_single(
|
||||
iv_pgmid = iv_pgmid
|
||||
iv_object = iv_object
|
||||
iv_obj_name = iv_obj_name ).
|
||||
|
||||
|
@ -233,10 +207,10 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
|
||||
rv_devclass = ls_tadir-devclass.
|
||||
|
||||
ENDMETHOD. "get_object_package.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read.
|
||||
METHOD zif_abapgit_tadir~read.
|
||||
|
||||
* start recursion
|
||||
* hmm, some problems here, should TADIR also build path?
|
||||
|
@ -255,10 +229,10 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
|
||||
rt_tadir = check_exists( rt_tadir ).
|
||||
|
||||
ENDMETHOD. "read
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read_single.
|
||||
METHOD zif_abapgit_tadir~read_single.
|
||||
|
||||
IF iv_object = 'SICF'.
|
||||
rs_tadir = zcl_abapgit_object_sicf=>read_tadir_sicf(
|
||||
|
@ -271,5 +245,5 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
AND obj_name = iv_obj_name. "#EC CI_SUBRC
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "read_single
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -115,7 +115,7 @@ CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
|
|||
lv_obj_name = <ls_object>-obj_name.
|
||||
ENDIF.
|
||||
|
||||
ls_tadir = zcl_abapgit_tadir=>read_single(
|
||||
ls_tadir = zcl_abapgit_factory=>get_tadir( )->read_single(
|
||||
iv_object = lv_object
|
||||
iv_obj_name = lv_obj_name ).
|
||||
|
||||
|
|
34
src/zif_abapgit_tadir.intf.abap
Normal file
34
src/zif_abapgit_tadir.intf.abap
Normal file
|
@ -0,0 +1,34 @@
|
|||
INTERFACE zif_abapgit_tadir
|
||||
PUBLIC .
|
||||
|
||||
|
||||
METHODS get_object_package
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE tadir-object
|
||||
!iv_obj_name TYPE tadir-obj_name
|
||||
RETURNING
|
||||
VALUE(rv_devclass) TYPE tadir-devclass
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS read
|
||||
IMPORTING
|
||||
!iv_package TYPE tadir-devclass
|
||||
!iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
||||
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
|
||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
|
||||
!io_log TYPE REF TO zcl_abapgit_log OPTIONAL
|
||||
RETURNING
|
||||
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS read_single
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE tadir-object
|
||||
!iv_obj_name TYPE tadir-obj_name
|
||||
RETURNING
|
||||
VALUE(rs_tadir) TYPE tadir
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
ENDINTERFACE.
|
16
src/zif_abapgit_tadir.intf.xml
Normal file
16
src/zif_abapgit_tadir.intf.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_TADIR</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>TADIR access</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user