From 5b6cc04159cfa9dcac4ddbd4c1349de0df293339 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sat, 16 Mar 2019 03:33:17 -0700 Subject: [PATCH] use RETURNING instead of EXPORTING (#2533) * READ_FILE use returning instead of exporting * PARSE_LINE, use returning instead of exporting --- .../zcl_abapgit_objects_files.clas.abap | 51 +++++++------ src/syntax/zcl_abapgit_syntax_abap.clas.abap | 9 +-- .../zcl_abapgit_syntax_highlighter.clas.abap | 73 ++++++++++--------- ...t_syntax_highlighter.clas.testclasses.abap | 3 +- 4 files changed, 67 insertions(+), 69 deletions(-) diff --git a/src/objects/zcl_abapgit_objects_files.clas.abap b/src/objects/zcl_abapgit_objects_files.clas.abap index b945fc64a..4664fcda7 100644 --- a/src/objects/zcl_abapgit_objects_files.clas.abap +++ b/src/objects/zcl_abapgit_objects_files.clas.abap @@ -80,23 +80,27 @@ CLASS zcl_abapgit_objects_files DEFINITION RETURNING VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_file_signatures_tt . PROTECTED SECTION. + + METHODS read_file + IMPORTING + !iv_filename TYPE string + !iv_error TYPE abap_bool DEFAULT abap_true + RETURNING + VALUE(rv_data) TYPE xstring + RAISING + zcx_abapgit_exception . + METHODS filename + IMPORTING + !iv_extra TYPE clike OPTIONAL + !iv_ext TYPE string + RETURNING + VALUE(rv_filename) TYPE string . PRIVATE SECTION. - DATA: ms_item TYPE zif_abapgit_definitions=>ty_item, - mt_accessed_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt, - mt_files TYPE zif_abapgit_definitions=>ty_files_tt, - mv_path TYPE string. - - METHODS: - read_file - IMPORTING iv_filename TYPE string - iv_error TYPE abap_bool DEFAULT abap_true - EXPORTING ev_data TYPE xstring - RAISING zcx_abapgit_exception, - filename - IMPORTING iv_extra TYPE clike OPTIONAL - iv_ext TYPE string - RETURNING VALUE(rv_filename) TYPE string. + DATA ms_item TYPE zif_abapgit_definitions=>ty_item . + DATA mt_accessed_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt . + DATA mt_files TYPE zif_abapgit_definitions=>ty_files_tt . + DATA mv_path TYPE string . ENDCLASS. @@ -243,9 +247,8 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION. lv_filename = filename( iv_extra = iv_extra iv_ext = 'abap' ). "#EC NOTEXT - read_file( EXPORTING iv_filename = lv_filename - iv_error = iv_error - IMPORTING ev_data = lv_data ). + lv_data = read_file( iv_filename = lv_filename + iv_error = iv_error ). IF lv_data IS INITIAL. " Post-handling of iv_error = false RETURN. @@ -263,7 +266,6 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION. FIELD-SYMBOLS: LIKE LINE OF mt_files, LIKE LINE OF mt_accessed_files. - CLEAR ev_data. IF mv_path IS NOT INITIAL. READ TABLE mt_files ASSIGNING WITH KEY path = mv_path @@ -288,7 +290,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION. MOVE-CORRESPONDING TO . ENDIF. - ev_data = -data. + rv_data = -data. ENDMETHOD. @@ -300,8 +302,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION. lv_filename = filename( iv_extra = iv_extra iv_ext = iv_ext ). - read_file( EXPORTING iv_filename = lv_filename - IMPORTING ev_data = rv_data ). + rv_data = read_file( lv_filename ). ENDMETHOD. @@ -314,8 +315,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION. lv_filename = filename( iv_extra = iv_extra iv_ext = iv_ext ). "#EC NOTEXT - read_file( EXPORTING iv_filename = lv_filename - IMPORTING ev_data = lv_data ). + lv_data = read_file( lv_filename ). rv_string = zcl_abapgit_convert=>xstring_to_string_utf8( lv_data ). @@ -331,8 +331,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_FILES IMPLEMENTATION. lv_filename = filename( iv_extra = iv_extra iv_ext = 'xml' ). "#EC NOTEXT - read_file( EXPORTING iv_filename = lv_filename - IMPORTING ev_data = lv_data ). + lv_data = read_file( lv_filename ). lv_xml = zcl_abapgit_convert=>xstring_to_string_utf8( lv_data ). diff --git a/src/syntax/zcl_abapgit_syntax_abap.clas.abap b/src/syntax/zcl_abapgit_syntax_abap.clas.abap index bed91cf49..4a04475c8 100644 --- a/src/syntax/zcl_abapgit_syntax_abap.clas.abap +++ b/src/syntax/zcl_abapgit_syntax_abap.clas.abap @@ -268,18 +268,17 @@ CLASS ZCL_ABAPGIT_SYNTAX_ABAP IMPLEMENTATION. DATA lv_index TYPE i. - FIELD-SYMBOLS LIKE LINE OF et_matches. + FIELD-SYMBOLS LIKE LINE OF rt_matches. - super->parse_line( EXPORTING iv_line = iv_line - IMPORTING et_matches = et_matches ). + rt_matches = super->parse_line( iv_line ). " Remove non-keywords - LOOP AT et_matches ASSIGNING WHERE token = c_token-keyword. + LOOP AT rt_matches ASSIGNING WHERE token = c_token-keyword. lv_index = sy-tabix. IF abap_false = is_keyword( substring( val = iv_line off = -offset len = -length ) ). - DELETE et_matches INDEX lv_index. + DELETE rt_matches INDEX lv_index. ENDIF. ENDLOOP. diff --git a/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap b/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap index 0d09ba92e..dc8bdb8b6 100644 --- a/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap +++ b/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap @@ -23,51 +23,55 @@ CLASS zcl_abapgit_syntax_highlighter DEFINITION offset TYPE i, " Beginning position of the string that should be formatted length TYPE i, " Length of the string that should be formatted text_tag TYPE string, " Type of text tag - END OF ty_match. - + END OF ty_match . TYPES: - ty_match_tt TYPE STANDARD TABLE OF ty_match WITH DEFAULT KEY. - + ty_match_tt TYPE STANDARD TABLE OF ty_match WITH DEFAULT KEY . TYPES: BEGIN OF ty_rule, regex TYPE REF TO cl_abap_regex, token TYPE char1, style TYPE string, relevant_submatch TYPE i, - END OF ty_rule. + END OF ty_rule . - CONSTANTS c_token_none TYPE c VALUE '.'. - - DATA mt_rules TYPE STANDARD TABLE OF ty_rule. + CONSTANTS c_token_none TYPE c VALUE '.' ##NO_TEXT. + DATA: + mt_rules TYPE STANDARD TABLE OF ty_rule . METHODS add_rule IMPORTING - iv_regex TYPE string - iv_token TYPE c - iv_style TYPE string - iv_submatch TYPE i OPTIONAL. - + !iv_regex TYPE string + !iv_token TYPE c + !iv_style TYPE string + !iv_submatch TYPE i OPTIONAL . METHODS parse_line - IMPORTING iv_line TYPE string - EXPORTING et_matches TYPE ty_match_tt. - - METHODS order_matches ABSTRACT - IMPORTING iv_line TYPE string - CHANGING ct_matches TYPE ty_match_tt. - + IMPORTING + !iv_line TYPE string + RETURNING + VALUE(rt_matches) TYPE ty_match_tt . + METHODS order_matches + ABSTRACT + IMPORTING + !iv_line TYPE string + CHANGING + !ct_matches TYPE ty_match_tt . METHODS extend_matches - IMPORTING iv_line TYPE string - CHANGING ct_matches TYPE ty_match_tt. - + IMPORTING + !iv_line TYPE string + CHANGING + !ct_matches TYPE ty_match_tt . METHODS format_line - IMPORTING iv_line TYPE string - it_matches TYPE ty_match_tt - RETURNING VALUE(rv_line) TYPE string. - + IMPORTING + !iv_line TYPE string + !it_matches TYPE ty_match_tt + RETURNING + VALUE(rv_line) TYPE string . METHODS apply_style - IMPORTING iv_line TYPE string - iv_class TYPE string - RETURNING VALUE(rv_line) TYPE string. + IMPORTING + !iv_line TYPE string + !iv_class TYPE string + RETURNING + VALUE(rv_line) TYPE string . ENDCLASS. @@ -194,8 +198,6 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION. LIKE LINE OF -submatches. - CLEAR et_matches. - " Process syntax-dependent regex table and find all matches LOOP AT mt_rules ASSIGNING . lo_regex = -regex. @@ -209,7 +211,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION. ls_match-token = -token. ls_match-offset = -offset. ls_match-length = -length. - APPEND ls_match TO et_matches. + APPEND ls_match TO rt_matches. ELSE. READ TABLE -submatches ASSIGNING INDEX -relevant_submatch. "submatch might be empty if only discarted parts matched @@ -217,7 +219,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION. ls_match-token = -token. ls_match-offset = -offset. ls_match-length = -length. - APPEND ls_match TO et_matches. + APPEND ls_match TO rt_matches. ENDIF. ENDIF. ENDLOOP. @@ -234,8 +236,7 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION. RETURN. ENDIF. - me->parse_line( EXPORTING iv_line = iv_line - IMPORTING et_matches = lt_matches ). + lt_matches = me->parse_line( iv_line ). me->order_matches( EXPORTING iv_line = iv_line CHANGING ct_matches = lt_matches ). diff --git a/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap b/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap index 45c5b17d7..82b626b40 100644 --- a/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap +++ b/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap @@ -71,8 +71,7 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. lo_syntax = zcl_abapgit_syntax_highlighter=>create( iv_filename ). - lo_syntax->parse_line( EXPORTING iv_line = iv_line - IMPORTING et_matches = lt_matches_act ). + lt_matches_act = lo_syntax->parse_line( iv_line ). SORT lt_matches_act BY offset.