"! <p class="shorttext synchronized" lang="en">Objects documentation</p>
INTERFACE zif_conflu_obj_documentation
  PUBLIC.

  TYPES:
    BEGIN OF ts_filter,
      object_type TYPE trobjtype,
      object_name TYPE sobj_name,
    END OF ts_filter,
    tt_filter TYPE STANDARD TABLE OF zif_conflu_obj_documentation=>ts_filter WITH DEFAULT KEY.

  TYPES:
    BEGIN OF ts_space_info,
      id   TYPE i,
      key  TYPE string,
      name TYPE string,
      type TYPE string,
      url  TYPE string,
      BEGIN OF homepage,
        id     TYPE string,
        type   TYPE string,
        status TYPE string,
        title  TYPE string,
      END OF homepage,
    END OF ts_space_info.

  TYPES:
    BEGIN OF ts_page_info,
      id      TYPE i,
      type    TYPE string,
      status  TYPE string,
      title   TYPE string,
      version TYPE i,
      url     TYPE string,
    END OF ts_page_info,
    tt_page_info TYPE SORTED TABLE OF ts_page_info WITH UNIQUE KEY id.

  TYPES:
    BEGIN OF ts_documentation_level,
      level           TYPE i,
      name            TYPE string,
      default_content TYPE string,
      page_info       TYPE zif_conflu_obj_documentation=>ts_page_info,
    END OF ts_documentation_level,
    tt_documentation_level TYPE SORTED TABLE OF ts_documentation_level WITH UNIQUE KEY level.

  TYPES:
    BEGIN OF ts_label,
      name TYPE string,
    END OF ts_label,
    tt_labels TYPE STANDARD TABLE OF ts_label WITH DEFAULT KEY.

  TYPES:
    BEGIN OF ts_json_documentation,
      object_type TYPE trobjtype,
      object_name TYPE sobj_name,
      package     TYPE devclass,
      content     TYPE string,
    END OF ts_json_documentation,
    tt_json_documentation TYPE HASHED TABLE OF ts_json_documentation WITH UNIQUE KEY object_type object_name.

  METHODS        get_space_info
    RETURNING
      VALUE(information) TYPE zif_conflu_obj_documentation=>ts_space_info
    RAISING
      zcx_conflu_docu
      zcx_conflu_rest.

  METHODS get_page_info
    IMPORTING
      object_type        TYPE string
      object_name        TYPE string
    RETURNING
      VALUE(information) TYPE zif_conflu_obj_documentation=>ts_page_info
    RAISING
      zcx_conflu_docu
      zcx_conflu_rest.

  METHODS get_documentation_levels
    IMPORTING
      object_type   TYPE string
    RETURNING
      VALUE(levels) TYPE zif_conflu_obj_documentation=>tt_documentation_level
    RAISING
      zcx_conflu_docu
      zcx_conflu_rest.

  METHODS export
    IMPORTING
      filter TYPE zif_conflu_obj_documentation=>tt_filter OPTIONAL
    RAISING
      zcx_conflu_export
      zcx_conflu_docu
      zcx_conflu_rest.

  METHODS generate_json
    IMPORTING
      filter        TYPE zif_conflu_obj_documentation=>tt_filter OPTIONAL
      antecesor     TYPE p OPTIONAL
      title_prefix  TYPE string OPTIONAL
    RETURNING
      VALUE(result) TYPE tt_json_documentation
    RAISING
      zcx_conflu_export
      zcx_conflu_docu
      zcx_conflu_rest.

ENDINTERFACE.
