add metadata

This commit is contained in:
larshp 2016-03-06 19:53:56 +00:00
parent bfca54b92b
commit 16e48c46f1
2 changed files with 18 additions and 11 deletions

View File

@ -55,6 +55,11 @@ TYPES: BEGIN OF ty_item,
obj_name TYPE tadir-obj_name,
END OF ty_item.
TYPES: BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
END OF ty_metadata.
CONSTANTS: BEGIN OF gc_type,
commit TYPE ty_type VALUE 'commit', "#EC NOTEXT
tree TYPE ty_type VALUE 'tree', "#EC NOTEXT
@ -1209,6 +1214,7 @@ CLASS lcl_xml_output DEFINITION FINAL INHERITING FROM lcl_xml CREATE PUBLIC.
IMPORTING ii_raw TYPE REF TO if_ixml_element,
render
IMPORTING iv_normalize TYPE sap_bool DEFAULT abap_true
is_metadata TYPE ty_metadata OPTIONAL
RETURNING VALUE(rv_xml) TYPE string.
PRIVATE SECTION.
@ -1268,6 +1274,10 @@ CLASS lcl_xml_output IMPLEMENTATION.
li_git = mi_xml_doc->create_element( c_abapgit_tag ).
li_git->set_attribute( name = 'version' value = gc_xml_version ). "#EC NOTEXT
IF NOT is_metadata IS INITIAL.
li_git->set_attribute( name = 'serializer' value = is_metadata-class ). "#EC NOTEXT
li_git->set_attribute( name = 'serializer_version' value = is_metadata-version ). "#EC NOTEXT
ENDIF.
li_git->append_child( li_abap ).
mi_xml_doc->get_root( )->append_child( li_git ).
@ -2084,6 +2094,7 @@ CLASS lcl_objects_files DEFINITION FINAL.
IMPORTING iv_extra TYPE clike OPTIONAL
io_xml TYPE REF TO lcl_xml_output
iv_normalize TYPE sap_bool DEFAULT abap_true
is_metadata TYPE ty_metadata OPTIONAL
RAISING lcx_exception,
* needed since type-check during dynamic call fails even if the object is compatible
add_xml_from_plugin
@ -2125,11 +2136,6 @@ ENDCLASS.
INTERFACE lif_object.
TYPES: BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
END OF ty_metadata.
METHODS:
serialize
IMPORTING io_xml TYPE REF TO lcl_xml_output
@ -2250,7 +2256,8 @@ CLASS lcl_objects_files IMPLEMENTATION.
ls_file TYPE ty_file.
lv_xml = io_xml->render( iv_normalize = iv_normalize ).
lv_xml = io_xml->render( iv_normalize = iv_normalize
is_metadata = is_metadata ).
ls_file-path = '/'.
ls_file-filename = filename( iv_extra = iv_extra
@ -2352,7 +2359,7 @@ CLASS lcl_objects_super DEFINITION ABSTRACT.
METHODS:
get_metadata
RETURNING VALUE(rs_metadata) TYPE lif_object=>ty_metadata,
RETURNING VALUE(rs_metadata) TYPE ty_metadata,
corr_insert
IMPORTING iv_package TYPE devclass
RAISING lcx_exception,
@ -3011,7 +3018,7 @@ CLASS lcl_objects_super IMPLEMENTATION.
ENDMETHOD. "jump_se11
METHOD get_metadata.
rs_metadata-class = cl_abap_classdescr=>describe_by_object_ref( me )->absolute_name.
rs_metadata-class = cl_abap_classdescr=>describe_by_object_ref( me )->get_relative_name( ).
rs_metadata-version = 'v1.0.0' ##NO_TEXT.
ENDMETHOD.
@ -11314,8 +11321,8 @@ CLASS lcl_objects IMPLEMENTATION.
li_obj->mo_files = lo_files.
CREATE OBJECT lo_xml.
li_obj->serialize( lo_xml ).
* todo, metadata can be added to the xml here:
lo_files->add_xml( lo_xml ).
lo_files->add_xml( io_xml = lo_xml
is_metadata = li_obj->get_metadata( ) ).
rt_files = lo_files->get_files( ).

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0">
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>