diff --git a/src/zabapgit_object_cmpt.prog.abap b/src/zabapgit_object_cmpt.prog.abap new file mode 100644 index 000000000..63b7ebb77 --- /dev/null +++ b/src/zabapgit_object_cmpt.prog.abap @@ -0,0 +1,213 @@ +*&---------------------------------------------------------------------* +*& Include ZABAPGIT_OBJECT_CMPT +*&---------------------------------------------------------------------* + +CLASS lcl_object_cmpt DEFINITION INHERITING FROM lcl_objects_super FINAL. + + PUBLIC SECTION. + METHODS: + constructor + IMPORTING + is_item TYPE lif_defs=>ty_item + iv_language TYPE spras. + + INTERFACES lif_object. + + PRIVATE SECTION. + DATA: mo_cmp_db TYPE REF TO object. + +ENDCLASS. + +CLASS lcl_object_cmpt IMPLEMENTATION. + + METHOD constructor. + + super->constructor( is_item = is_item + iv_language = iv_language ). + + TRY. + CALL METHOD ('CL_CMP_TEMPLATE')=>('S_GET_DB_ACCESS') + RECEIVING + r_ref_db_access = mo_cmp_db. + + CATCH cx_root. + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~has_changed_since. + + rv_changed = abap_true. + + ENDMETHOD. + + METHOD lif_object~changed_by. + + DATA: mi_cmp_template TYPE REF TO object. + + TRY. + CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB') + EXPORTING + i_name = |{ ms_item-obj_name }| + i_version = 'A' + RECEIVING + r_ref_template = mi_cmp_template. + + CALL METHOD mi_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER') + RECEIVING + r_user = rv_user. + + CATCH cx_root. + lcx_exception=>raise( 'CMPT not supported' ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~get_metadata. + + rs_metadata = get_metadata( ). + rs_metadata-delete_tadir = abap_true. + + ENDMETHOD. + + METHOD lif_object~exists. + + DATA: name TYPE c LENGTH 30. + + name = ms_item-obj_name. + + TRY. + CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS') + EXPORTING + i_name = name + i_version = 'A' + RECEIVING + r_flg_exists = rv_bool. + + CATCH cx_root. + lcx_exception=>raise( 'CMPT not supported' ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~serialize. + + DATA: lr_template TYPE REF TO data. + FIELD-SYMBOLS: