From 374e69146c692b17fe5df2c81bf2392818a89b4e Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 12 Sep 2017 19:45:37 +0000 Subject: [PATCH] more syntax check #911 --- src/zcl_abapgit_syntax_check.clas.abap | 144 ++++++++++++++++++++----- 1 file changed, 118 insertions(+), 26 deletions(-) diff --git a/src/zcl_abapgit_syntax_check.clas.abap b/src/zcl_abapgit_syntax_check.clas.abap index 0749a8e35..ddddd56c8 100644 --- a/src/zcl_abapgit_syntax_check.clas.abap +++ b/src/zcl_abapgit_syntax_check.clas.abap @@ -6,14 +6,30 @@ public section. class-methods RUN importing - !IV_PACKAGE type DEVCLASS . + !IV_PACKAGE type DEVCLASS + returning + value(RT_LIST) type SCIT_ALVLIST . protected section. + class-methods CREATE_INSPECTION + importing + !IO_SET type ref to CL_CI_OBJECTSET + !IO_VARIANT type ref to CL_CI_CHECKVARIANT + returning + value(RO_INSPECTION) type ref to CL_CI_INSPECTION . class-methods CREATE_OBJECTSET importing !IV_PACKAGE type DEVCLASS returning value(RO_SET) type ref to CL_CI_OBJECTSET . + class-methods CREATE_VARIANT + returning + value(RO_VARIANT) type ref to CL_CI_CHECKVARIANT . + class-methods RUN_INSPECTION + importing + !IO_INSPECTION type ref to CL_CI_INSPECTION + returning + value(RT_LIST) type SCIT_ALVLIST . private section. ENDCLASS. @@ -22,45 +38,121 @@ ENDCLASS. CLASS ZCL_ABAPGIT_SYNTAX_CHECK IMPLEMENTATION. + METHOD create_inspection. + + cl_ci_inspection=>create( + EXPORTING + p_user = sy-uname + p_name = '' + RECEIVING + p_ref = ro_inspection + EXCEPTIONS + locked = 1 + error_in_enqueue = 2 + not_authorized = 3 + OTHERS = 4 ). + ASSERT sy-subrc = 0. + + ro_inspection->set( + p_chkv = io_variant + p_objs = io_set +* p_deldate = CONV sci_deldat( sy-datum + 1 ) + ). + + ENDMETHOD. + + METHOD create_objectset. - CONSTANTS: lc_anonymous TYPE sci_objs VALUE ''. - - DATA: lt_objects TYPE scistadir, - ls_flags TYPE sci_flgl. - - FIELD-SYMBOLS: LIKE LINE OF lt_objects-sodevc. + DATA: lt_objs TYPE scit_objs, + lt_packages TYPE cl_pak_package_queries=>tt_subpackage_info, + ls_package LIKE LINE OF lt_packages, + ls_obj LIKE LINE OF lt_objs. - ro_set = cl_ci_objectset=>create( - p_user = sy-uname - p_name = lc_anonymous ). + cl_pak_package_queries=>get_all_subpackages( + EXPORTING + im_package = iv_package + im_also_local_packages = abap_true + IMPORTING + et_subpackages = lt_packages ). - APPEND INITIAL LINE TO lt_objects-sodevc ASSIGNING . - -sign = 'I'. - -option = 'CP'. - CONCATENATE iv_package '*' INTO -low. -* todo, find all subpackages + ls_package-package = iv_package. + INSERT ls_package INTO TABLE lt_packages. - ls_flags-class = abap_true. - ls_flags-fugrs = abap_true. - ls_flags-repos = abap_true. - ls_flags-wdyns = abap_true. - ls_flags-ddics = abap_true. - ls_flags-typps = abap_true. +* todo + ls_obj-objtype = 'PROG'. + ls_obj-objname = 'ZABAPGIT'. + INSERT ls_obj INTO TABLE lt_objs. - ro_set->save_objectset( - p_tadir = lt_objects - p_sel_flags = ls_flags ). + ro_set = cl_ci_objectset=>save_from_list( lt_objs ). + + ENDMETHOD. + + + METHOD create_variant. + + DATA: lt_variant TYPE sci_tstvar, + ls_variant LIKE LINE OF lt_variant. + + + cl_ci_checkvariant=>create( + EXPORTING + p_user = sy-uname + RECEIVING + p_ref = ro_variant + EXCEPTIONS + chkv_already_exists = 1 + locked = 2 + error_in_enqueue = 3 + not_authorized = 4 + OTHERS = 5 ). + ASSERT sy-subrc = 0. + + ls_variant-testname = 'CL_CI_TEST_SYNTAX_CHECK'. + INSERT ls_variant INTO TABLE lt_variant. + + ro_variant->set_variant( + EXPORTING + p_variant = lt_variant + EXCEPTIONS + not_enqueued = 1 + OTHERS = 2 ). + ASSERT sy-subrc = 0. ENDMETHOD. METHOD run. - create_objectset( iv_package ). + DATA: lo_set TYPE REF TO cl_ci_objectset, + lo_inspection TYPE REF TO cl_ci_inspection, + lo_variant TYPE REF TO cl_ci_checkvariant. -* todo: add returning parameter + + lo_set = create_objectset( iv_package ). + lo_variant = create_variant( ). + + lo_inspection = create_inspection( + io_set = lo_set + io_variant = lo_variant ). + + rt_list = run_inspection( lo_inspection ). + + ENDMETHOD. + + + METHOD run_inspection. + + io_inspection->run( + EXCEPTIONS + invalid_check_version = 1 + OTHERS = 2 ). + ASSERT sy-subrc = 0. + + io_inspection->plain_list( + IMPORTING + p_list = rt_list ). ENDMETHOD. ENDCLASS.