CLASS zcl_abapgit_oo_base DEFINITION PUBLIC ABSTRACT CREATE PUBLIC . PUBLIC SECTION. INTERFACES zif_abapgit_oo_object_fnc . PROTECTED SECTION. CLASS-METHODS: convert_attrib_to_vseoattrib IMPORTING iv_clsname TYPE seoclsname it_attributes TYPE zif_abapgit_definitions=>ty_obj_attribute_tt RETURNING VALUE(rt_vseoattrib) TYPE seoo_attributes_r. PRIVATE SECTION. DATA mv_skip_test_classes TYPE abap_bool . ENDCLASS. CLASS zcl_abapgit_oo_base IMPLEMENTATION. METHOD convert_attrib_to_vseoattrib. FIELD-SYMBOLS: LIKE LINE OF it_attributes, LIKE LINE OF rt_vseoattrib. LOOP AT it_attributes ASSIGNING . INSERT INITIAL LINE INTO TABLE rt_vseoattrib ASSIGNING . MOVE-CORRESPONDING TO . -clsname = iv_clsname. UNASSIGN . ENDLOOP. UNASSIGN . ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~add_to_activation_list. zcl_abapgit_objects_activation=>add_item( is_item ). ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~create. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~create_documentation. CALL FUNCTION 'DOCU_UPD' EXPORTING id = 'CL' langu = iv_language object = iv_object_name no_masterlang = iv_no_masterlang TABLES line = it_lines EXCEPTIONS ret_code = 1 OTHERS = 2. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). ENDIF. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~create_sotr. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~delete. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~deserialize_source. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~exists. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~generate_locals. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~get_class_properties. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~get_includes. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~get_interface_properties. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~get_skip_test_classes. rv_skip = mv_skip_test_classes. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~insert_text_pool. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~read_attributes. SELECT cmpname attbusobj attkeyfld FROM seocompodf INTO CORRESPONDING FIELDS OF TABLE rt_attributes WHERE clsname = iv_object_name AND ( attbusobj <> space OR attkeyfld <> space ) AND version = '1' ORDER BY PRIMARY KEY. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~read_descriptions. IF iv_language IS INITIAL. " load all languages SELECT * FROM seocompotx INTO TABLE rt_descriptions WHERE clsname = iv_obejct_name AND descript <> '' ORDER BY PRIMARY KEY. "#EC CI_SUBRC ELSE. " load main language SELECT * FROM seocompotx INTO TABLE rt_descriptions WHERE clsname = iv_obejct_name AND langu = iv_language AND descript <> '' ORDER BY PRIMARY KEY. "#EC CI_SUBRC ENDIF. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~read_documentation. DATA: lv_state TYPE dokstate, lv_object TYPE dokhl-object, lt_lines TYPE tlinetab. lv_object = iv_class_name. CALL FUNCTION 'DOCU_GET' EXPORTING id = 'CL' langu = iv_language object = lv_object IMPORTING dokstate = lv_state TABLES line = lt_lines EXCEPTIONS no_docu_on_screen = 1 no_docu_self_def = 2 no_docu_temp = 3 ret_code = 4 OTHERS = 5. IF sy-subrc = 0 AND lv_state = 'R'. rt_lines = lt_lines. ELSE. CLEAR rt_lines. ENDIF. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~read_sotr. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~read_superclass. SELECT SINGLE refclsname FROM vseoextend INTO rv_superclass WHERE clsname = iv_classname. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~read_text_pool. ASSERT 0 = 1. "Subclass responsibility ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~serialize_abap. DATA lo_oo_serializer TYPE REF TO zcl_abapgit_oo_serializer. CREATE OBJECT lo_oo_serializer. CASE iv_type. WHEN seop_ext_class_locals_def. rt_source = lo_oo_serializer->serialize_locals_def( is_class_key ). WHEN seop_ext_class_locals_imp. rt_source = lo_oo_serializer->serialize_locals_imp( is_class_key ). WHEN seop_ext_class_macros. rt_source = lo_oo_serializer->serialize_macros( is_class_key ). WHEN seop_ext_class_testclasses. rt_source = lo_oo_serializer->serialize_testclasses( is_class_key ). mv_skip_test_classes = lo_oo_serializer->are_test_classes_skipped( ). WHEN OTHERS. rt_source = lo_oo_serializer->serialize_abap_clif_source( is_class_key ). ENDCASE. ENDMETHOD. METHOD zif_abapgit_oo_object_fnc~update_descriptions. DELETE FROM seocompotx WHERE clsname = is_key-clsname. "#EC CI_SUBRC INSERT seocompotx FROM TABLE it_descriptions. "#EC CI_SUBRC ENDMETHOD. ENDCLASS.