abapGit/src/objects/zcl_abapgit_object_styl.clas.abap
2018-06-18 14:18:58 +02:00

196 lines
4.8 KiB
ABAP

CLASS zcl_abapgit_object_styl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
PRIVATE SECTION.
TYPES: BEGIN OF ty_style,
header TYPE itcda,
paragraphs TYPE STANDARD TABLE OF itcdp WITH DEFAULT KEY,
strings TYPE STANDARD TABLE OF itcds WITH DEFAULT KEY,
tabs TYPE STANDARD TABLE OF itcdq WITH DEFAULT KEY,
END OF ty_style.
ENDCLASS.
CLASS zcl_abapgit_object_styl IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~changed_by.
DATA: ls_style TYPE ty_style,
lv_name TYPE itcda-tdstyle.
lv_name = ms_item-obj_name.
CALL FUNCTION 'READ_STYLE'
EXPORTING
style = lv_name
IMPORTING
style_header = ls_style-header
TABLES
paragraphs = ls_style-paragraphs
strings = ls_style-strings
tabs = ls_style-tabs.
rv_user = ls_style-header-tdluser.
ENDMETHOD.
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
rs_metadata-delete_tadir = abap_true.
ENDMETHOD. "zif_abapgit_object~get_metadata
METHOD zif_abapgit_object~exists.
DATA: ls_style TYPE ty_style,
lv_name TYPE itcda-tdstyle,
lv_found TYPE abap_bool.
lv_name = ms_item-obj_name.
CALL FUNCTION 'READ_STYLE'
EXPORTING
style = lv_name
IMPORTING
found = lv_found
TABLES
paragraphs = ls_style-paragraphs
strings = ls_style-strings
tabs = ls_style-tabs.
rv_bool = boolc( lv_found = abap_true ).
ENDMETHOD. "zif_abapgit_object~exists
METHOD zif_abapgit_object~jump.
DATA: ls_bcdata TYPE bdcdata,
lt_bcdata TYPE STANDARD TABLE OF bdcdata.
ls_bcdata-program = 'SAPMSSCS'.
ls_bcdata-dynpro = '1100'.
ls_bcdata-dynbegin = 'X'.
APPEND ls_bcdata TO lt_bcdata.
CLEAR ls_bcdata.
ls_bcdata-fnam = 'RSSCS-TDSTYLE'.
ls_bcdata-fval = ms_item-obj_name.
APPEND ls_bcdata TO lt_bcdata.
CLEAR ls_bcdata.
ls_bcdata-fnam = 'RSSCS-TDSPRAS'.
ls_bcdata-fval = sy-langu.
APPEND ls_bcdata TO lt_bcdata.
CLEAR ls_bcdata.
ls_bcdata-fnam = 'RSSCS-TDHEADEROB'.
ls_bcdata-fval = 'X'.
APPEND ls_bcdata TO lt_bcdata.
CLEAR ls_bcdata.
ls_bcdata-fnam = 'BDC_OKCODE'.
ls_bcdata-fval = '=SHOW'.
APPEND ls_bcdata TO lt_bcdata.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
STARTING NEW TASK 'GIT'
EXPORTING
tcode = 'SE72'
mode_val = 'E'
TABLES
using_tab = lt_bcdata
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from ABAP4_CALL_TRANSACTION, STYL' ).
ENDIF.
ENDMETHOD. "jump
METHOD zif_abapgit_object~delete.
DATA: lv_style TYPE itcda-tdstyle.
lv_style = ms_item-obj_name.
CALL FUNCTION 'DELETE_STYLE'
EXPORTING
style = lv_style
language = '*'.
ENDMETHOD. "delete
METHOD zif_abapgit_object~deserialize.
DATA: ls_style TYPE ty_style.
io_xml->read( EXPORTING iv_name = 'STYLE'
CHANGING cg_data = ls_style ).
CALL FUNCTION 'SAVE_STYLE'
EXPORTING
style_header = ls_style-header
TABLES
paragraphs = ls_style-paragraphs
strings = ls_style-strings
tabs = ls_style-tabs.
tadir_insert( iv_package ).
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~serialize.
DATA: ls_style TYPE ty_style,
lv_name TYPE itcda-tdstyle.
lv_name = ms_item-obj_name.
CALL FUNCTION 'READ_STYLE'
EXPORTING
style = lv_name
IMPORTING
style_header = ls_style-header
TABLES
paragraphs = ls_style-paragraphs
strings = ls_style-strings
tabs = ls_style-tabs.
CLEAR: ls_style-header-tdfuser,
ls_style-header-tdfdate,
ls_style-header-tdftime,
ls_style-header-tdfreles,
ls_style-header-tdluser,
ls_style-header-tdldate,
ls_style-header-tdltime,
ls_style-header-tdlreles.
io_xml->add( iv_name = 'STYLE'
ig_data = ls_style ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_styl IMPLEMENTATION