abapGit/src/zcl_abapgit_environment.clas.abap
Jaime Rodriguez Capote 543114963f
abapOpenCheck - Naming Conventions revision #3239 (#3240)
* abapOpenChecks config file

* Ignore SCI config folder

* checks revision

* Revert "checks revision"

This reverts commit 56a12289df.

* Renaming non-constants

Pending:

* Remove SCI configuration

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-03-09 17:34:26 +01:00

90 lines
2.5 KiB
ABAP

CLASS zcl_abapgit_environment DEFINITION
PUBLIC
FINAL
CREATE PRIVATE
GLOBAL FRIENDS zcl_abapgit_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_environment .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_cloud TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
DATA mv_is_merged TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
DATA mv_client_modifiable TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
ENDCLASS.
CLASS ZCL_ABAPGIT_ENVIRONMENT IMPLEMENTATION.
METHOD zif_abapgit_environment~compare_with_inactive.
rv_result = zif_abapgit_environment~is_sap_cloud_platform( ).
ENDMETHOD.
METHOD zif_abapgit_environment~is_merged.
DATA lr_marker TYPE REF TO data ##NEEDED.
IF mv_is_merged = abap_undefined.
TRY.
CREATE DATA lr_marker TYPE REF TO ('LIF_ABAPMERGE_MARKER') ##no_text.
"No exception --> marker found
mv_is_merged = abap_true.
CATCH cx_sy_create_data_error.
mv_is_merged = abap_false.
ENDTRY.
ENDIF.
rv_result = mv_is_merged.
ENDMETHOD.
METHOD zif_abapgit_environment~is_repo_object_changes_allowed.
DATA lv_ind TYPE t000-ccnocliind.
IF mv_client_modifiable = abap_undefined.
SELECT SINGLE ccnocliind FROM t000 INTO lv_ind
WHERE mandt = sy-mandt.
IF sy-subrc = 0
AND ( lv_ind = ' ' OR lv_ind = '1' ). "check changes allowed
mv_client_modifiable = abap_true.
ELSE.
mv_client_modifiable = abap_false.
ENDIF.
ENDIF.
rv_result = mv_client_modifiable.
ENDMETHOD.
METHOD zif_abapgit_environment~is_restart_required.
" This method will be used in the context of SAP Cloud Platform:
" Pull/Push operations are executed in background jobs.
" In case of the respective application server needs to be restarted,
" it is required to terminae the background job and reschedule again.
rv_result = abap_false.
TRY.
CALL METHOD ('CL_APJ_SCP_TOOLS')=>('IS_RESTART_REQUIRED')
RECEIVING
restart_required = rv_result.
CATCH cx_sy_dyn_call_illegal_method cx_sy_dyn_call_illegal_class.
rv_result = abap_false.
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_environment~is_sap_cloud_platform.
IF mv_cloud = abap_undefined.
TRY.
CALL METHOD ('CL_COS_UTILITIES')=>('IS_SAP_CLOUD_PLATFORM')
RECEIVING
rv_is_sap_cloud_platform = mv_cloud.
CATCH cx_sy_dyn_call_illegal_method.
mv_cloud = abap_false.
ENDTRY.
ENDIF.
rv_result = mv_cloud.
ENDMETHOD.
ENDCLASS.