Merge pull request #2 from larshp/master

pull from origin master
This commit is contained in:
apex8 2017-09-12 08:53:29 +02:00 committed by GitHub
commit 30794b77e8
13 changed files with 590 additions and 120 deletions

View File

@ -8,6 +8,14 @@ Legend
+ : added
- : removed
2017-09-11 v1.41.2
------------------
* FUGR table maintenance, namespaces
* SICF show error message when deleting root node
* DDLS better error messages
* ENHS allow transport popup
+ experimental, optional opt-in: CLAS deserialization performance
2017-09-03 v1.41.1
------------------
* DDLS changed_by

View File

@ -31,9 +31,12 @@ Example: abapGit own .abapgit.xml
# Description
## Location
The `.abapgit.xml` file must be located in the root folder of the git repository.
## Master Language
The language in which all documentation and dictionary elements texts will be created. Follows SAP `sy-langu` values.
The language in which all documentation and dictionary elements texts will be created. Follows SAP `sy-langu` values. Note that this implies that all objects in a repository will/should have the same master language.
## Starting Folder

View File

@ -7,7 +7,7 @@ TYPE-POOLS seop.
INTERFACE lif_defs.
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.41.1'. "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.41.2'. "#EC NOTEXT
TYPES: ty_type TYPE c LENGTH 6,
ty_bitbyte TYPE c LENGTH 8,

View File

@ -18,33 +18,28 @@ CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_objects_program.
iv_language TYPE spras.
PROTECTED SECTION.
METHODS deserialize_abap
DATA: mo_object_oriented_object_fct TYPE REF TO lif_oo_object_fnc,
mv_skip_testclass TYPE abap_bool.
METHODS:
deserialize_abap
IMPORTING io_xml TYPE REF TO lcl_xml_input
iv_package TYPE devclass
RAISING lcx_exception.
METHODS deserialize_docu
RAISING lcx_exception,
deserialize_docu
IMPORTING io_xml TYPE REF TO lcl_xml_input
RAISING lcx_exception.
DATA mo_object_oriented_object_fct TYPE REF TO lif_oo_object_fnc.
PRIVATE SECTION.
DATA mv_skip_testclass TYPE abap_bool.
METHODS deserialize_tpool
RAISING lcx_exception,
deserialize_tpool
IMPORTING io_xml TYPE REF TO lcl_xml_input
RAISING lcx_exception.
METHODS deserialize_sotr
RAISING lcx_exception,
deserialize_sotr
IMPORTING io_xml TYPE REF TO lcl_xml_input
iv_package TYPE devclass
RAISING lcx_exception.
METHODS serialize_xml
RAISING lcx_exception,
serialize_xml
IMPORTING io_xml TYPE REF TO lcl_xml_output
RAISING lcx_exception.
ENDCLASS. "lcl_object_dtel DEFINITION
*----------------------------------------------------------------------*
@ -366,6 +361,7 @@ CLASS lcl_object_clas IMPLEMENTATION.
iv_package = iv_package
CHANGING
is_properties = ls_vseoclass ).
mo_object_oriented_object_fct->generate_locals(
is_key = ls_class_key
iv_force = seox_true
@ -385,7 +381,7 @@ CLASS lcl_object_clas IMPLEMENTATION.
is_key = ls_class_key
it_descriptions = lt_descriptions ).
mo_object_oriented_object_fct->add_to_activation_list( is_item = ms_item ).
mo_object_oriented_object_fct->add_to_activation_list( ms_item ).
ENDMETHOD. "deserialize
METHOD lif_object~compare_to_remote_version.
@ -396,7 +392,7 @@ CLASS lcl_object_clas IMPLEMENTATION.
super->constructor(
is_item = is_item
iv_language = iv_language ).
mo_object_oriented_object_fct = lcl_oo_factory=>make( iv_object_type = ms_item-obj_type ).
mo_object_oriented_object_fct = lcl_oo_factory=>make( ms_item-obj_type ).
ENDMETHOD.
ENDCLASS. "lcl_object_CLAS IMPLEMENTATION
@ -457,6 +453,7 @@ CLASS lcl_oo_class IMPLEMENTATION.
lcx_exception=>raise( 'error from generate_locals' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~insert_text_pool.
DATA: lv_cp TYPE program.

View File

@ -0,0 +1,406 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_CLAS_NEW
*&---------------------------------------------------------------------*
* todo: refactoring
* todo: testing, possible from master branch via experimental switch
CLASS lcl_oo_class_new DEFINITION INHERITING FROM lcl_oo_class.
PUBLIC SECTION.
METHODS:
lif_oo_object_fnc~create REDEFINITION,
lif_oo_object_fnc~generate_locals REDEFINITION,
lif_oo_object_fnc~deserialize_source REDEFINITION.
PRIVATE SECTION.
CLASS-METHODS:
update_report
IMPORTING
iv_program TYPE programm
it_source TYPE string_table
RETURNING
VALUE(rv_updated) TYPE abap_bool,
generate_classpool
IMPORTING
iv_name TYPE seoclsname
RAISING
lcx_exception,
update_meta
IMPORTING
iv_name TYPE seoclsname
iv_exposure TYPE seoexpose
it_source TYPE rswsourcet
RAISING
lcx_exception,
determine_method_include
IMPORTING
iv_name TYPE seoclsname
iv_method TYPE seocpdname
RETURNING
VALUE(rv_program) TYPE programm
RAISING
lcx_exception,
init_scanner
IMPORTING
it_source TYPE lif_defs=>ty_string_tt
iv_name TYPE seoclsname
RETURNING
VALUE(ro_scanner) TYPE REF TO cl_oo_source_scanner_class.
ENDCLASS.
CLASS lcl_oo_class_new IMPLEMENTATION.
METHOD determine_method_include.
DATA: ls_mtdkey TYPE seocpdkey.
ls_mtdkey-clsname = iv_name.
ls_mtdkey-cpdname = iv_method.
cl_oo_classname_service=>get_method_include(
EXPORTING
mtdkey = ls_mtdkey
RECEIVING
result = rv_program
EXCEPTIONS
method_not_existing = 1 ).
IF sy-subrc = 0.
RETURN.
ENDIF.
CALL FUNCTION 'SEO_METHOD_GENERATE_INCLUDE'
EXPORTING
suppress_mtdkey_check = seox_true
mtdkey = ls_mtdkey
EXCEPTIONS
not_existing = 1
model_only = 2
include_existing = 3
method_imp_not_generated = 4
method_imp_not_initialised = 5
_internal_class_not_existing = 6
_internal_method_overflow = 7
cancelled = 8
method_is_abstract_implemented = 9
method_is_final_implemented = 10
internal_error_insert_report = 11
OTHERS = 12.
IF sy-subrc <> 0.
lcx_exception=>raise( 'error from SEO_METHOD_GENERATE_INCLUDE' ).
ENDIF.
rv_program = cl_oo_classname_service=>get_method_include( ls_mtdkey ).
ENDMETHOD.
METHOD lif_oo_object_fnc~create.
* same as in super class, but with "version = seoc_version_active"
CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE'
EXPORTING
devclass = iv_package
overwrite = iv_overwrite
version = seoc_version_active
CHANGING
class = is_properties
EXCEPTIONS
existing = 1
is_interface = 2
db_error = 3
component_error = 4
no_access = 5
other = 6
OTHERS = 7.
IF sy-subrc <> 0.
lcx_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ).
ENDIF.
ENDMETHOD.
METHOD init_scanner.
ro_scanner = cl_oo_source_scanner_class=>create_class_scanner(
clif_name = iv_name
source = it_source ).
ro_scanner->scan( ).
ENDMETHOD.
METHOD update_report.
DATA: lt_old TYPE string_table.
READ REPORT iv_program INTO lt_old.
ASSERT sy-subrc = 0. " include should have been created previously
IF lt_old <> it_source.
INSERT REPORT iv_program FROM it_source.
ASSERT sy-subrc = 0.
rv_updated = abap_true.
ELSE.
rv_updated = abap_false.
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~generate_locals.
DATA: lv_program TYPE programm.
lv_program = cl_oo_classname_service=>get_ccdef_name( is_key-clsname ).
update_report( iv_program = lv_program
it_source = it_local_definitions ).
lv_program = cl_oo_classname_service=>get_ccimp_name( is_key-clsname ).
update_report( iv_program = lv_program
it_source = it_local_implementations ).
lv_program = cl_oo_classname_service=>get_ccmac_name( is_key-clsname ).
update_report( iv_program = lv_program
it_source = it_local_macros ).
IF lines( it_local_test_classes ) > 0.
lv_program = cl_oo_classname_service=>get_ccau_name( is_key-clsname ).
update_report( iv_program = lv_program
it_source = it_local_test_classes ).
ENDIF.
ENDMETHOD.
METHOD update_meta.
DATA: lo_update TYPE REF TO cl_oo_class_section_source,
ls_clskey TYPE seoclskey,
lv_scan_error TYPE seox_boolean.
ls_clskey-clsname = iv_name.
CREATE OBJECT lo_update
EXPORTING
clskey = ls_clskey
exposure = iv_exposure
state = 'A'
source = it_source
suppress_constrctr_generation = seox_true
EXCEPTIONS
class_not_existing = 1
read_source_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
lcx_exception=>raise( 'error instantiating CL_OO_CLASS_SECTION_SOURCE' ).
ENDIF.
lo_update->set_dark_mode( seox_true ).
lo_update->set_amdp_support( abap_true ).
lo_update->scan_section_source(
RECEIVING
scan_error = lv_scan_error
EXCEPTIONS
scan_abap_source_error = 1
OTHERS = 2 ).
IF sy-subrc <> 0 OR lv_scan_error = abap_true.
lcx_exception=>raise( 'CLAS, error while scanning source' ).
ENDIF.
* this will update the SEO* database tables
lo_update->revert_scan_result( ).
IF iv_exposure = seoc_exposure_public.
generate_classpool( iv_name ).
ENDIF.
ENDMETHOD.
METHOD generate_classpool.
DATA: ls_clskey TYPE seoclskey.
ls_clskey-clsname = iv_name.
CALL FUNCTION 'SEO_CLASS_GENERATE_CLASSPOOL'
EXPORTING
clskey = ls_clskey
suppress_corr = seox_true
EXCEPTIONS
not_existing = 1
model_only = 2
class_pool_not_generated = 3
class_stment_not_generated = 4
locals_not_generated = 5
macros_not_generated = 6
public_sec_not_generated = 7
protected_sec_not_generated = 8
private_sec_not_generated = 9
typeref_not_generated = 10
class_pool_not_initialised = 11
class_stment_not_initialised = 12
locals_not_initialised = 13
macros_not_initialised = 14
public_sec_not_initialised = 15
protected_sec_not_initialised = 16
private_sec_not_initialised = 17
typeref_not_initialised = 18
_internal_class_overflow = 19
OTHERS = 20.
IF sy-subrc <> 0.
lcx_exception=>raise( 'error from SEO_CLASS_GENERATE_CLASSPOOL' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~deserialize_source.
DATA: lv_updated TYPE abap_bool,
lv_program TYPE program,
lo_scanner TYPE REF TO cl_oo_source_scanner_class,
lt_methods TYPE cl_oo_source_scanner_class=>type_method_implementations,
lv_method LIKE LINE OF lt_methods,
lt_source TYPE seop_source_string.
lo_scanner = init_scanner(
it_source = it_source
iv_name = is_key-clsname ).
* public
lt_source = lo_scanner->get_public_section_source( ).
lv_program = cl_oo_classname_service=>get_pubsec_name( is_key-clsname ).
lv_updated = update_report( iv_program = lv_program
it_source = lt_source ).
IF lv_updated = abap_true.
update_meta( iv_name = is_key-clsname
iv_exposure = seoc_exposure_public
it_source = lt_source ).
ENDIF.
* protected
lt_source = lo_scanner->get_protected_section_source( ).
lv_program = cl_oo_classname_service=>get_prosec_name( is_key-clsname ).
lv_updated = update_report( iv_program = lv_program
it_source = lt_source ).
IF lv_updated = abap_true.
update_meta( iv_name = is_key-clsname
iv_exposure = seoc_exposure_protected
it_source = lt_source ).
ENDIF.
* private
lt_source = lo_scanner->get_private_section_source( ).
lv_program = cl_oo_classname_service=>get_prisec_name( is_key-clsname ).
lv_updated = update_report( iv_program = lv_program
it_source = lt_source ).
IF lv_updated = abap_true.
update_meta( iv_name = is_key-clsname
iv_exposure = seoc_exposure_private
it_source = lt_source ).
ENDIF.
* methods
lt_methods = lo_scanner->get_method_implementations( ).
LOOP AT lt_methods INTO lv_method.
TRY.
lt_source = lo_scanner->get_method_impl_source( lv_method ).
CATCH cx_oo_clif_component.
lcx_exception=>raise( 'error from GET_METHOD_IMPL_SOURCE' ).
ENDTRY.
lv_program = determine_method_include(
iv_name = is_key-clsname
iv_method = lv_method ).
update_report(
iv_program = lv_program
it_source = lt_source ).
ENDLOOP.
ENDMETHOD.
ENDCLASS.
CLASS lcl_object_clas_new DEFINITION INHERITING FROM lcl_object_clas.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE lif_defs=>ty_item
iv_language TYPE spras.
PROTECTED SECTION.
METHODS:
deserialize_abap REDEFINITION.
ENDCLASS.
CLASS lcl_object_clas_new IMPLEMENTATION.
METHOD constructor.
super->constructor( is_item = is_item
iv_language = iv_language ).
CREATE OBJECT mo_object_oriented_object_fct TYPE lcl_oo_class_new.
ENDMETHOD.
METHOD deserialize_abap.
* same as in lcl_object_clas, but without "mo_object_oriented_object_fct->add_to_activation_list"
DATA: ls_vseoclass TYPE vseoclass,
lt_source TYPE seop_source_string,
lt_local_definitions TYPE seop_source_string,
lt_local_implementations TYPE seop_source_string,
lt_local_macros TYPE seop_source_string,
lt_test_classes TYPE seop_source_string,
lt_descriptions TYPE lif_defs=>ty_seocompotx_tt,
ls_class_key TYPE seoclskey.
lt_source = mo_files->read_abap( ).
lt_local_definitions = mo_files->read_abap( iv_extra = 'locals_def'
iv_error = abap_false ). "#EC NOTEXT
lt_local_implementations = mo_files->read_abap( iv_extra = 'locals_imp'
iv_error = abap_false ). "#EC NOTEXT
lt_local_macros = mo_files->read_abap( iv_extra = 'macros'
iv_error = abap_false ). "#EC NOTEXT
lt_test_classes = mo_files->read_abap( iv_extra = 'testclasses'
iv_error = abap_false ). "#EC NOTEXT
ls_class_key-clsname = ms_item-obj_name.
io_xml->read( EXPORTING iv_name = 'VSEOCLASS'
CHANGING cg_data = ls_vseoclass ).
mo_object_oriented_object_fct->create(
EXPORTING
iv_package = iv_package
CHANGING
is_properties = ls_vseoclass ).
mo_object_oriented_object_fct->generate_locals(
is_key = ls_class_key
iv_force = seox_true
it_local_definitions = lt_local_definitions
it_local_implementations = lt_local_implementations
it_local_macros = lt_local_macros
it_local_test_classes = lt_test_classes ).
mo_object_oriented_object_fct->deserialize_source(
is_key = ls_class_key
it_source = lt_source ).
io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS'
CHANGING cg_data = lt_descriptions ).
mo_object_oriented_object_fct->update_descriptions(
is_key = ls_class_key
it_descriptions = lt_descriptions ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<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>
<NAME>ZABAPGIT_OBJECT_CLAS_NEW</NAME>
<STATE>A</STATE>
<VARCL>X</VARCL>
<SUBC>I</SUBC>
<RLOAD>E</RLOAD>
<UCCHECK>X</UCCHECK>
</PROGDIR>
<TPOOL>
<item>
<ID>R</ID>
<ENTRY>Include ZABAPGIT_OBJECT_CLAS_NEW</ENTRY>
<LENGTH>32</LENGTH>
</item>
</TPOOL>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -142,7 +142,7 @@ CLASS lcl_object_ddls IMPLEMENTATION.
EXPORTING
name = ms_item-obj_name.
CATCH cx_root.
lcx_exception=>raise( 'DDLS error' ).
lcx_exception=>raise( 'DDLS error deleting' ).
ENDTRY.
ENDMETHOD. "delete
@ -171,7 +171,7 @@ CLASS lcl_object_ddls IMPLEMENTATION.
IMPORTING
ddddlsrcv_wa = <ls_data>.
CATCH cx_root.
lcx_exception=>raise( 'DDLS error' ).
lcx_exception=>raise( 'DDLS error reading' ).
ENDTRY.
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <ls_data> TO <lv_field>.
@ -233,7 +233,7 @@ CLASS lcl_object_ddls IMPLEMENTATION.
devclass = iv_package
prid = 0.
CATCH cx_root.
lcx_exception=>raise( 'DDLS error' ).
lcx_exception=>raise( 'DDLS error writing TADIR' ).
ENDTRY.
lcl_objects_activation=>add_item( ms_item ).

View File

@ -433,6 +433,7 @@ CLASS lcl_object_fugr IMPLEMENTATION.
DATA: lt_reposrc TYPE STANDARD TABLE OF ty_reposrc WITH DEFAULT KEY,
ls_reposrc LIKE LINE OF lt_reposrc,
lv_program TYPE program,
lv_offset_ns TYPE i,
lv_tabix LIKE sy-tabix,
lt_functab TYPE ty_rs38l_incl_tt.
@ -464,15 +465,15 @@ CLASS lcl_object_fugr IMPLEMENTATION.
* handle generated maintenance views
APPEND INITIAL LINE TO rt_includes ASSIGNING <lv_include>.
if ms_item-obj_name(1) <> '/'.
IF ms_item-obj_name(1) <> '/'.
"FGroup name does not contain a namespace
<lv_include> = |L{ ms_item-obj_name }T00|.
else.
ELSE.
"FGroup name contains a namespace
lv_offset_ns = find( val = ms_item-obj_name+1 sub = '/' ).
lv_offset_ns = lv_offset_ns + 2.
<lv_include> = |{ ms_item-obj_name(lv_offset_ns) }L{ ms_item-obj_name+lv_offset_ns }T00|.
endif.
ENDIF.
IF lines( rt_includes ) > 0.
SELECT progname cnam FROM reposrc

View File

@ -8,6 +8,7 @@ INCLUDE zabapgit_object_acid.
INCLUDE zabapgit_object_auth.
INCLUDE zabapgit_object_oo_functions.
INCLUDE zabapgit_object_clas.
INCLUDE zabapgit_object_clas_new.
INCLUDE zabapgit_object_cmpt.
INCLUDE zabapgit_object_dcls.
INCLUDE zabapgit_object_ddls.

View File

@ -407,6 +407,11 @@ CLASS lcl_object_sicf IMPLEMENTATION.
RETURN.
ENDIF.
IF ls_icfservice-icfparguid CO '0'.
* not supported by the SAP standard API
lcx_exception=>raise( 'SICF - cannot delete root node, delete node manually' ).
ENDIF.
cl_icf_tree=>if_icf_tree~delete_node(
EXPORTING
icfparguid = ls_icfservice-icfparguid

View File

@ -133,6 +133,11 @@ CLASS lcl_objects IMPLEMENTATION.
lv_class_name = class_name( is_item ).
ENDIF.
IF lcl_app=>settings( )->read( )->get_experimental_features( ) = abap_true
AND is_item-obj_type = 'CLAS'.
lv_class_name = 'LCL_OBJECT_CLAS_NEW'.
ENDIF.
TRY.
CREATE OBJECT ri_obj TYPE (lv_class_name)
EXPORTING
@ -232,29 +237,22 @@ CLASS lcl_objects IMPLEMENTATION.
METHOD jump.
DATA: li_obj TYPE REF TO lif_object,
adt_jump_enabled TYPE abap_bool.
lv_adt_jump_enabled TYPE abap_bool.
li_obj = create_object( is_item = is_item
iv_language = lif_defs=>gc_english ).
adt_jump_enabled = lcl_app=>settings( )->read( )->get_adt_jump_enabled( ).
IF adt_jump_enabled = abap_true.
lv_adt_jump_enabled = lcl_app=>settings( )->read( )->get_adt_jump_enabled( ).
IF lv_adt_jump_enabled = abap_true.
TRY.
lcl_objects_super=>jump_adt( i_obj_name = is_item-obj_name
i_obj_type = is_item-obj_type ).
CATCH lcx_exception.
li_obj->jump( ).
ENDTRY.
ELSE.
li_obj->jump( ).
ENDIF.
ENDMETHOD. "jump
@ -589,9 +587,7 @@ CLASS lcl_objects IMPLEMENTATION.
lt_remote = io_repo->get_files_remote( ).
lt_results = lcl_file_status=>status( io_repo ).
DELETE lt_results WHERE
match = abap_true. " Full match
* OR rstate IS INITIAL. " no remote changes, only local
DELETE lt_results WHERE match = abap_true. " Full match
SORT lt_results BY obj_type ASCENDING obj_name ASCENDING.
DELETE ADJACENT DUPLICATES FROM lt_results COMPARING obj_type obj_name.

View File

@ -164,6 +164,13 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
mo_settings->set_run_critical_tests( abap_false ).
ENDIF.
READ TABLE it_post_fields ASSIGNING <ls_post_field> WITH KEY name = 'experimental_features'.
IF sy-subrc = 0.
mo_settings->set_experimental_features( abap_true ).
ELSE.
mo_settings->set_experimental_features( abap_false ).
ENDIF.
READ TABLE it_post_fields ASSIGNING <ls_post_field> WITH KEY name = 'max_lines'.
IF sy-subrc = 0.
lv_i_param_value = <ls_post_field>-value.
@ -263,16 +270,24 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
METHOD render_development_internals.
DATA lv_checked TYPE string.
DATA: lv_critical_tests TYPE string,
lv_experimental TYPE string.
IF mo_settings->get_run_critical_tests( ) = abap_true.
lv_checked = 'checked'.
lv_critical_tests = 'checked'.
ENDIF.
IF mo_settings->get_experimental_features( ) = abap_true.
lv_experimental = 'checked'.
ENDIF.
CREATE OBJECT ro_html.
ro_html->add( |<h2>abapGit Development Internals settings</h2>| ).
ro_html->add( `<input type="checkbox" name="critical_tests" value="X" `
&& lv_checked && ` > Enable critical unit tests (see LTCL_DANGEROUS)` ).
ro_html->add( `<input type="checkbox" name="critical_tests" `
&& lv_critical_tests && ` > Enable critical unit tests (see LTCL_DANGEROUS)` ).
ro_html->add( |<br>| ).
ro_html->add( `<input type="checkbox" name="experimental_features" `
&& lv_experimental && ` > Enable experimental features` ).
ro_html->add( |<br>| ).
ro_html->add( |<br>| ).

View File

@ -284,59 +284,70 @@ CLASS lcl_settings DEFINITION FINAL.
CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72.
CONSTANTS: c_dbtype_settings TYPE lcl_persistence_db=>ty_type VALUE 'SETTINGS' ##NO_TEXT.
METHODS set_proxy_url
METHODS: set_proxy_url
IMPORTING
iv_url TYPE string.
METHODS set_proxy_port
iv_url TYPE string,
set_proxy_port
IMPORTING
iv_port TYPE string.
METHODS set_proxy_authentication
iv_port TYPE string,
set_proxy_authentication
IMPORTING
iv_auth TYPE abap_bool.
METHODS get_proxy_url
iv_auth TYPE abap_bool,
get_proxy_url
RETURNING
VALUE(rv_proxy_url) TYPE string.
METHODS get_proxy_port
VALUE(rv_proxy_url) TYPE string,
get_proxy_port
RETURNING
VALUE(rv_port) TYPE string.
METHODS get_proxy_authentication
VALUE(rv_port) TYPE string,
get_proxy_authentication
RETURNING
VALUE(rv_auth) TYPE abap_bool.
METHODS set_run_critical_tests
VALUE(rv_auth) TYPE abap_bool,
set_run_critical_tests
IMPORTING
iv_run TYPE abap_bool.
METHODS
iv_run TYPE abap_bool,
get_run_critical_tests
RETURNING VALUE(rv_run) TYPE abap_bool.
METHODS set_max_lines
IMPORTING iv_lines TYPE i.
METHODS get_max_lines
RETURNING
VALUE(rv_lines) TYPE i.
METHODS set_adt_jump_enanbled
IMPORTING iv_adt_jump_enabled TYPE abap_bool.
METHODS get_adt_jump_enabled
VALUE(rv_run) TYPE abap_bool,
set_experimental_features
IMPORTING
iv_run TYPE abap_bool,
get_experimental_features
RETURNING
VALUE(rv_adt_jump_enabled) TYPE abap_bool.
METHODS set_commitmsg_comment_length
IMPORTING iv_length TYPE i.
METHODS get_commitmsg_comment_length
VALUE(rv_run) TYPE abap_bool,
set_max_lines
IMPORTING iv_lines TYPE i,
get_max_lines
RETURNING
VALUE(rv_length) TYPE i.
METHODS set_commitmsg_body_size
IMPORTING iv_length TYPE i.
METHODS get_commitmsg_body_size
VALUE(rv_lines) TYPE i,
set_adt_jump_enanbled
IMPORTING
iv_adt_jump_enabled TYPE abap_bool,
get_adt_jump_enabled
RETURNING
VALUE(rv_length) TYPE i.
METHODS get_settings_xml
RETURNING VALUE(ev_settings_xml) TYPE string
RAISING lcx_exception.
METHODS set_xml_settings
IMPORTING iv_settings_xml TYPE string
RAISING lcx_exception.
METHODS set_defaults.
VALUE(rv_adt_jump_enabled) TYPE abap_bool,
set_commitmsg_comment_length
IMPORTING
iv_length TYPE i,
get_commitmsg_comment_length
RETURNING
VALUE(rv_length) TYPE i,
set_commitmsg_body_size
IMPORTING
iv_length TYPE i,
get_commitmsg_body_size
RETURNING
VALUE(rv_length) TYPE i,
get_settings_xml
RETURNING
VALUE(ev_settings_xml) TYPE string
RAISING
lcx_exception,
set_xml_settings
IMPORTING
iv_settings_xml TYPE string
RAISING
lcx_exception,
set_defaults.
PRIVATE SECTION.
TYPES: BEGIN OF ty_s_settings,
@ -344,6 +355,7 @@ CLASS lcl_settings DEFINITION FINAL.
proxy_port TYPE string,
proxy_auth TYPE string,
run_critical_tests TYPE abap_bool,
experimental_features TYPE abap_bool,
max_lines TYPE i,
adt_jump_enabled TYPE abap_bool,
commitmsg_comment_length TYPE i,
@ -1828,6 +1840,14 @@ CLASS lcl_settings IMPLEMENTATION.
rv_run = ms_settings-run_critical_tests.
ENDMETHOD.
METHOD set_experimental_features.
ms_settings-experimental_features = iv_run.
ENDMETHOD.
METHOD get_experimental_features.
rv_run = ms_settings-experimental_features.
ENDMETHOD.
METHOD get_max_lines.
rv_lines = ms_settings-max_lines.
ENDMETHOD.
@ -1891,15 +1911,11 @@ CLASS lcl_settings IMPLEMENTATION.
CLEAR ms_settings.
set_proxy_authentication( abap_false ).
set_run_critical_tests( abap_false ).
set_experimental_features( abap_false ).
set_max_lines( 500 ).
set_adt_jump_enanbled( abap_false ).
set_commitmsg_comment_length( lcl_settings=>c_commitmsg_comment_length_dft ).
set_commitmsg_body_size( lcl_settings=>c_commitmsg_body_size_dft ).
ENDMETHOD.