mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Small performance improvement in folder logic (#6941)
This commit is contained in:
parent
376a7d8be8
commit
4bf6e07235
|
@ -95,6 +95,14 @@ CLASS zcl_abapgit_folder_logic IMPLEMENTATION.
|
|||
lv_parentcl TYPE tdevc-parentcl,
|
||||
lv_folder_logic TYPE string.
|
||||
|
||||
rv_path = lcl_package_to_path=>get(
|
||||
iv_top = iv_top
|
||||
io_dot = io_dot
|
||||
iv_package = iv_package ).
|
||||
IF rv_path IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF iv_top = iv_package.
|
||||
rv_path = io_dot->get_starting_folder( ).
|
||||
ELSE.
|
||||
|
@ -163,6 +171,12 @@ CLASS zcl_abapgit_folder_logic IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
lcl_package_to_path=>add(
|
||||
iv_top = iv_top
|
||||
io_dot = io_dot
|
||||
iv_package = iv_package
|
||||
iv_path = rv_path ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -183,6 +197,14 @@ CLASS zcl_abapgit_folder_logic IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
rv_package = lcl_path_to_package=>get(
|
||||
iv_top = iv_top
|
||||
io_dot = io_dot
|
||||
iv_path = iv_path ).
|
||||
IF rv_package IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lv_path = iv_path+lv_length.
|
||||
lv_parent = iv_top.
|
||||
rv_package = iv_top.
|
||||
|
@ -245,5 +267,11 @@ CLASS zcl_abapgit_folder_logic IMPLEMENTATION.
|
|||
lv_parent = rv_package.
|
||||
ENDWHILE.
|
||||
|
||||
lcl_path_to_package=>add(
|
||||
iv_top = iv_top
|
||||
io_dot = io_dot
|
||||
iv_path = iv_path
|
||||
iv_package = rv_package ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
138
src/objects/core/zcl_abapgit_folder_logic.clas.locals_imp.abap
Normal file
138
src/objects/core/zcl_abapgit_folder_logic.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,138 @@
|
|||
CLASS lcl_package_to_path DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS get
|
||||
IMPORTING
|
||||
!iv_top TYPE devclass
|
||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
|
||||
!iv_package TYPE devclass
|
||||
RETURNING
|
||||
VALUE(rv_path) TYPE string.
|
||||
|
||||
CLASS-METHODS add
|
||||
IMPORTING
|
||||
!iv_top TYPE devclass
|
||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
|
||||
!iv_package TYPE devclass
|
||||
!iv_path TYPE string.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_buffer,
|
||||
top TYPE devclass,
|
||||
starting_folder TYPE string,
|
||||
folder_logic TYPE string,
|
||||
package TYPE devclass,
|
||||
path TYPE string,
|
||||
END OF ty_buffer.
|
||||
|
||||
CLASS-DATA gt_buffer
|
||||
TYPE HASHED TABLE OF ty_buffer
|
||||
WITH UNIQUE KEY top starting_folder folder_logic package.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_package_to_path IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
FIELD-SYMBOLS <ls_buffer> LIKE LINE OF gt_buffer.
|
||||
|
||||
READ TABLE gt_buffer ASSIGNING <ls_buffer> WITH TABLE KEY
|
||||
top = iv_top
|
||||
starting_folder = io_dot->get_starting_folder( )
|
||||
folder_logic = io_dot->get_folder_logic( )
|
||||
package = iv_package.
|
||||
IF sy-subrc = 0.
|
||||
rv_path = <ls_buffer>-path.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add.
|
||||
|
||||
DATA ls_buffer LIKE LINE OF gt_buffer.
|
||||
|
||||
CLEAR ls_buffer.
|
||||
ls_buffer-top = iv_top.
|
||||
ls_buffer-starting_folder = io_dot->get_starting_folder( ).
|
||||
ls_buffer-folder_logic = io_dot->get_folder_logic( ).
|
||||
ls_buffer-package = iv_package.
|
||||
ls_buffer-path = iv_path.
|
||||
INSERT ls_buffer INTO TABLE gt_buffer.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_path_to_package DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS get
|
||||
IMPORTING
|
||||
!iv_top TYPE devclass
|
||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
|
||||
!iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_package) TYPE devclass.
|
||||
|
||||
CLASS-METHODS add
|
||||
IMPORTING
|
||||
!iv_top TYPE devclass
|
||||
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
|
||||
!iv_path TYPE string
|
||||
!iv_package TYPE devclass.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_buffer,
|
||||
top TYPE devclass,
|
||||
starting_folder TYPE string,
|
||||
folder_logic TYPE string,
|
||||
path TYPE string,
|
||||
package TYPE devclass,
|
||||
END OF ty_buffer.
|
||||
|
||||
CLASS-DATA gt_buffer
|
||||
TYPE HASHED TABLE OF ty_buffer
|
||||
WITH UNIQUE KEY top starting_folder folder_logic path.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_path_to_package IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
FIELD-SYMBOLS <ls_buffer> LIKE LINE OF gt_buffer.
|
||||
|
||||
READ TABLE gt_buffer ASSIGNING <ls_buffer> WITH TABLE KEY
|
||||
top = iv_top
|
||||
starting_folder = io_dot->get_starting_folder( )
|
||||
folder_logic = io_dot->get_folder_logic( )
|
||||
path = iv_path.
|
||||
IF sy-subrc = 0.
|
||||
rv_package = <ls_buffer>-package.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add.
|
||||
|
||||
DATA ls_buffer LIKE LINE OF gt_buffer.
|
||||
|
||||
CLEAR ls_buffer.
|
||||
ls_buffer-top = iv_top.
|
||||
ls_buffer-starting_folder = io_dot->get_starting_folder( ).
|
||||
ls_buffer-folder_logic = io_dot->get_folder_logic( ).
|
||||
ls_buffer-path = iv_path.
|
||||
ls_buffer-package = iv_package.
|
||||
INSERT ls_buffer INTO TABLE gt_buffer.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
Loading…
Reference in New Issue
Block a user