refactoring (#888)

* refactoring

* Update abaplint.jsonc

* update

* Update abaplint.jsonc
This commit is contained in:
oblomov 2024-02-15 08:02:04 +01:00 committed by GitHub
parent fd321c91df
commit c291ca5345
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 338 additions and 300 deletions

View File

@ -22,7 +22,7 @@
"strict_sql" : true,
"easy_to_find_messages" : true,
"fully_type_itabs" : true,
"align_parameters": true,
"align_parameters": false,
"smim_consistency": true,
"allowed_object_naming": true,
"allowed_object_types": {
@ -124,7 +124,7 @@
"line_break_multiple_parameters": false,
"line_break_style": true,
"line_length": false,
"line_only_punc": true,
"line_only_punc": false,
"local_class_naming": false,
"local_testclass_consistency": true,
"local_variable_names": false,

View File

@ -1,256 +1,108 @@
*
*CLASS ltcl_test_dissolve DEFINITION DEFERRED.
*CLASS z2ui5_cl_core_model_srv DEFINITION LOCAL FRIENDS ltcl_test_dissolve.
*
*CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING
* DURATION SHORT
* RISK LEVEL HARMLESS.
*
* PUBLIC SECTION.
*
* TYPES:
* BEGIN OF s_01,
* input TYPE string,
* BEGIN OF s_02,
* input TYPE string,
* BEGIN OF s_03,
* input TYPE string,
* BEGIN OF s_04,
* input TYPE string,
* END OF s_04,
* END OF s_03,
* END OF s_02,
* END OF s_01.
*
* DATA ms_struc TYPE s_01 ##NEEDED.
* DATA mv_value TYPE string ##NEEDED.
* DATA mr_value TYPE REF TO data.
* DATA mr_struc TYPE REF TO s_01.
* DATA mo_app TYPE REF TO ltcl_test_dissolve.
*
* PRIVATE SECTION.
* METHODS test_dissolve_init FOR TESTING RAISING cx_static_check.
* METHODS test_dissolve_struc FOR TESTING RAISING cx_static_check.
* METHODS test_dissolve_dref FOR TESTING RAISING cx_static_check.
* METHODS test_dissolve_oref FOR TESTING RAISING cx_static_check.
* METHODS test_ref FOR TESTING RAISING cx_static_check.
*
*ENDCLASS.
*
*CLASS ltcl_test_dissolve IMPLEMENTATION.
*
*
* METHOD test_ref.
*
* DATA(lo_app) = NEW ltcl_test_dissolve( ).
*
* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app ).
*
* lo_model->dissolve( ).
*
* DATA(ls_attri) = lt_attri[ name = `MV_VALUE` ].
* GET REFERENCE OF lo_app->mv_value INTO DATA(lr_ref).
*
* IF ls_attri-r_ref <> lr_ref.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
*
* ENDMETHOD.
*
* METHOD test_dissolve_init.
*
* DATA(lo_app) = NEW ltcl_test_dissolve( ).
*
* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app ).
*
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
*
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MV_VALUE` ] OPTIONAL ) ).
*
* ENDMETHOD.
*
* METHOD test_dissolve_dref.
*
* DATA(lo_app) = NEW ltcl_test_dissolve( ).
* CREATE DATA lo_app->mr_struc.
* CREATE DATA lo_app->mr_value TYPE string.
*
* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app ).
*
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
*
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE->*` ] OPTIONAL ) ).
*
* ENDMETHOD.
*
* METHOD test_dissolve_oref.
*
* DATA(lo_app) = NEW ltcl_test_dissolve( ).
* lo_app->mo_app = NEW #( ).
* DATA(lo_app2) = NEW ltcl_test_dissolve( ).
* lo_app2->mo_app = lo_app.
*
* CREATE DATA lo_app->mo_app->mr_struc.
* CREATE DATA lo_app->mo_app->mr_value TYPE string.
*
* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app2 ).
*
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
*
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MV_VALUE` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_VALUE` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC` ] OPTIONAL ) ).
*
* ENDMETHOD.
*
* METHOD test_dissolve_struc.
*
* DATA(lo_app) = NEW ltcl_test_dissolve( ).
* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app ).
*
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
* lo_model->dissolve( ).
*
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-INPUT` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-INPUT` ] OPTIONAL ) ).
* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-S_03-S_04-INPUT` ] OPTIONAL ) ).
*
* ENDMETHOD.
*
*ENDCLASS.
*
*
*CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING
* DURATION MEDIUM
* RISK LEVEL HARMLESS.
*
* PUBLIC SECTION.
*
* DATA mv_value TYPE string ##NEEDED.
* DATA mr_value TYPE REF TO data.
* DATA mr_value2 TYPE REF TO data.
* DATA mo_app TYPE REF TO ltcl_test_app2.
*
* DATA xx TYPE string ##NEEDED.
* METHODS constructor.
*ENDCLASS.
*
*CLASS ltcl_test_app2 IMPLEMENTATION.
*
* METHOD constructor.
*
* ENDMETHOD.
*
*ENDCLASS.
*
*CLASS ltcl_test_search_attri DEFINITION FINAL FOR TESTING
* DURATION SHORT
* RISK LEVEL HARMLESS.
*
* PRIVATE SECTION.
* METHODS first_test FOR TESTING RAISING cx_static_check.
* METHODS second_test FOR TESTING RAISING cx_static_check.
* METHODS third_test FOR TESTING RAISING cx_static_check.
*
*ENDCLASS.
*
*CLASS z2ui5_cl_core_model_srv DEFINITION LOCAL FRIENDS ltcl_test_search_attri.
*
*CLASS ltcl_test_search_attri IMPLEMENTATION.
*
* METHOD first_test.
*
* DATA(lo_app_client) = NEW ltcl_test_app2( ).
* DATA lr_value TYPE REF TO data.
* GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
*
* DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = lr_value ) ).
*
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app_client ).
*
* DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
*
* IF lr_attri->r_ref <> lr_value.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
*
* ENDMETHOD.
*
* METHOD second_test.
*
* DATA(lo_app_client) = NEW ltcl_test_app2( ).
* DATA lr_value TYPE REF TO data.
* GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
*
* DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = REF #( lo_app_client->mv_value ) ) ).
*
* DATA(lo_model) = NEW z2ui5_cl_core_model_srv(
* attri = REF #( lt_attri )
* app = lo_app_client ).
*
* DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
*
* IF lr_attri->r_ref <> lr_value.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
*
* ENDMETHOD.
*
* METHOD third_test.
*
* DATA(lo_app_client) = NEW ltcl_test_app2( ).
* DATA lr_value TYPE REF TO data.
* GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
*
* lo_app_client->mo_app = NEW #( ).
*
* DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri(
* ( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
* ( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) )
* ( name = `2` r_ref = REF #( lo_app_client->mo_app ) )
* ( name = `3` r_ref = REF #( lo_app_client->mv_value ) )
* ).
*
* DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ).
* IF lr_attri->r_ref <> lr_value.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
*
* ENDMETHOD.
*
*
*ENDCLASS.
CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING
DURATION MEDIUM
RISK LEVEL HARMLESS.
PUBLIC SECTION.
DATA mv_value TYPE string ##NEEDED.
DATA mr_value TYPE REF TO data.
DATA mr_value2 TYPE REF TO data.
DATA mo_app TYPE REF TO ltcl_test_app2.
DATA xx TYPE string ##NEEDED.
METHODS constructor.
ENDCLASS.
CLASS ltcl_test_app2 IMPLEMENTATION.
METHOD constructor.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_test_search_attri DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS first_test FOR TESTING RAISING cx_static_check.
METHODS second_test FOR TESTING RAISING cx_static_check.
METHODS third_test FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS z2ui5_cl_core_attri_srv DEFINITION LOCAL FRIENDS ltcl_test_search_attri.
CLASS ltcl_test_search_attri IMPLEMENTATION.
METHOD first_test.
DATA(lo_app_client) = NEW ltcl_test_app2( ).
DATA lr_value TYPE REF TO data.
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( (
r_ref = lr_value
o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value )
) ).
DATA(lo_model) = NEW z2ui5_cl_core_attri_srv(
attri = REF #( lt_attri )
app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
IF lr_attri->r_ref <> lr_value.
cl_abap_unit_assert=>abort( ).
ENDIF.
ENDMETHOD.
METHOD second_test.
DATA(lo_app_client) = NEW ltcl_test_app2( ).
DATA lr_value TYPE REF TO data.
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( (
r_ref = REF #( lo_app_client->mv_value )
o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value )
) ).
DATA(lo_model) = NEW z2ui5_cl_core_attri_srv(
attri = REF #( lt_attri )
app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
IF lr_attri->r_ref <> lr_value.
cl_abap_unit_assert=>abort( ).
ENDIF.
ENDMETHOD.
METHOD third_test.
DATA(lo_app_client) = NEW ltcl_test_app2( ).
DATA lr_value TYPE REF TO data.
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
lo_app_client->mo_app = NEW #( ).
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri(
( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) )
( name = `2` r_ref = REF #( lo_app_client->mo_app ) )
( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ).
DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ).
IF lr_attri->r_ref <> lr_value.
cl_abap_unit_assert=>abort( ).
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,17 +1,16 @@
CLASS z2ui5_cl_core_dissolve_srv DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
app TYPE REF TO object.
METHODS main.
!attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
!app TYPE REF TO object.
METHODS main .
PROTECTED SECTION.
DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri.
@ -47,7 +46,7 @@ ENDCLASS.
CLASS z2ui5_cl_core_dissolve_srv IMPLEMENTATION.
CLASS Z2UI5_CL_CORE_DISSOLVE_SRV IMPLEMENTATION.
METHOD constructor.

View File

@ -0,0 +1,146 @@
CLASS ltcl_test_dissolve DEFINITION DEFERRED.
CLASS z2ui5_cl_core_dissolve_srv DEFINITION LOCAL FRIENDS ltcl_test_dissolve.
CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PUBLIC SECTION.
TYPES:
BEGIN OF s_01,
input TYPE string,
BEGIN OF s_02,
input TYPE string,
BEGIN OF s_03,
input TYPE string,
BEGIN OF s_04,
input TYPE string,
END OF s_04,
END OF s_03,
END OF s_02,
END OF s_01.
DATA ms_struc TYPE s_01 ##NEEDED.
DATA mv_value TYPE string ##NEEDED.
DATA mr_value TYPE REF TO data.
DATA mr_struc TYPE REF TO s_01.
DATA mo_app TYPE REF TO ltcl_test_dissolve.
PRIVATE SECTION.
METHODS test_dissolve_init FOR TESTING RAISING cx_static_check.
METHODS test_dissolve_struc FOR TESTING RAISING cx_static_check.
METHODS test_dissolve_dref FOR TESTING RAISING cx_static_check.
METHODS test_dissolve_oref FOR TESTING RAISING cx_static_check.
METHODS test_ref FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_ref.
DATA(lo_app) = NEW ltcl_test_dissolve( ).
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv(
attri = REF #( lt_attri )
app = lo_app ).
lo_model->main( ).
DATA(ls_attri) = lt_attri[ name = `MV_VALUE` ].
GET REFERENCE OF lo_app->mv_value INTO DATA(lr_ref).
IF ls_attri-r_ref <> lr_ref.
cl_abap_unit_assert=>abort( ).
ENDIF.
ENDMETHOD.
METHOD test_dissolve_init.
DATA(lo_app) = NEW ltcl_test_dissolve( ).
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv(
attri = REF #( lt_attri )
app = lo_app ).
lo_model->main( ).
lo_model->main( ).
lo_model->main( ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MV_VALUE` ] OPTIONAL ) ).
ENDMETHOD.
METHOD test_dissolve_dref.
DATA(lo_app) = NEW ltcl_test_dissolve( ).
CREATE DATA lo_app->mr_struc.
CREATE DATA lo_app->mr_value TYPE string.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv(
attri = REF #( lt_attri )
app = lo_app ).
lo_model->main( ).
lo_model->main( ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE->*` ] OPTIONAL ) ).
ENDMETHOD.
METHOD test_dissolve_oref.
DATA(lo_app) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = NEW #( ).
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
lo_app2->mo_app = lo_app.
CREATE DATA lo_app->mo_app->mr_struc.
CREATE DATA lo_app->mo_app->mr_value TYPE string.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv(
attri = REF #( lt_attri )
app = lo_app2 ).
lo_model->main( ).
lo_model->main( ).
lo_model->main( ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MV_VALUE` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_VALUE` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC` ] OPTIONAL ) ).
ENDMETHOD.
METHOD test_dissolve_struc.
DATA(lo_app) = NEW ltcl_test_dissolve( ).
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv(
attri = REF #( lt_attri )
app = lo_app ).
lo_model->main( ).
lo_model->main( ).
lo_model->main( ).
lo_model->main( ).
lo_model->main( ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-INPUT` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-INPUT` ] OPTIONAL ) ).
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-S_03-S_04-INPUT` ] OPTIONAL ) ).
ENDMETHOD.
ENDCLASS.

View File

@ -10,6 +10,7 @@
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS>
</asx:values>
</asx:abap>

View File

@ -59,6 +59,8 @@ CLASS z2ui5_cl_core_draft_srv IMPLEMENTATION.
METHOD create.
ASSERT draft-id IS NOT INITIAL.
DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db(
id = draft-id
id_prev = draft-id_prev

View File

@ -1,21 +1,37 @@
CLASS ltcl_test_db DEFINITION FINAL FOR TESTING
CLASS ltcl_test DEFINITION FINAL FOR TESTING
DURATION LONG
RISK LEVEL DANGEROUS.
RISK LEVEL HARMLESS.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
DATA mr_data TYPE REF TO data ##NEEDED.
METHODS constructor.
METHODS test_create FOR TESTING.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ltcl_test_db IMPLEMENTATION.
CLASS ltcl_test IMPLEMENTATION.
METHOD constructor.
METHOD z2ui5_if_app~main.
ENDMETHOD.
METHOD test_create.
DATA(lo_draft) = NEW z2ui5_cl_core_draft_srv( ).
lo_draft->create(
draft = VALUE #( id = `TEST_ID` )
model_xml = `my xml`
).
DATA(ls_db) = lo_draft->read_draft( `TEST_ID` ).
cl_abap_unit_assert=>assert_equals(
act = ls_db-data
exp = `my xml` ).
ENDMETHOD.

View File

@ -18,3 +18,52 @@ CLASS ltcl_test IMPLEMENTATION.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_test_db DEFINITION FINAL FOR TESTING
DURATION LONG
RISK LEVEL HARMLESS.
PUBLIC SECTION.
DATA mv_value TYPE string.
INTERFACES z2ui5_if_app.
METHODS constructor.
METHODS test_db_save FOR TESTING.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ltcl_test_db IMPLEMENTATION.
METHOD constructor.
ENDMETHOD.
METHOD test_db_save.
DATA(lo_app_user) = NEW ltcl_test_db( ).
lo_app_user->mv_value = `my value`.
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
lo_app->ms_draft-id = `TEST_ID`.
lo_app->mo_app = lo_app_user.
lo_app->db_save( ).
DATA(lo_app_db) = z2ui5_cl_core_app=>db_load( `TEST_ID` ).
DATA(lo_app_user_db) = CAST ltcl_test_db( lo_app_db->mo_app ).
cl_abap_unit_assert=>assert_equals(
act = lo_app_user_db->mv_value
exp = lo_app_user->mv_value ).
ENDMETHOD.
METHOD z2ui5_if_app~main.
ENDMETHOD.
ENDCLASS.

View File

@ -22,7 +22,6 @@ CLASS z2ui5_cl_core_app_info DEFINITION
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_core_app_info.
METHODS z2ui5_on_init.
METHODS z2ui5_on_event.
METHODS view_display_start.
PROTECTED SECTION.
@ -121,7 +120,6 @@ CLASS z2ui5_cl_core_app_info IMPLEMENTATION.
IF mv_check_initialized = abap_false.
mv_check_initialized = abap_true.
z2ui5_on_init( ).
view_display_start( ).
RETURN.
ENDIF.
@ -132,7 +130,6 @@ CLASS z2ui5_cl_core_app_info IMPLEMENTATION.
ENDIF.
z2ui5_on_event( ).
* view_display_start( ).
ENDMETHOD.
@ -150,9 +147,4 @@ CLASS z2ui5_cl_core_app_info IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_on_init.
ENDMETHOD.
ENDCLASS.

View File

@ -49,7 +49,6 @@ CLASS z2ui5_cl_core_app_startup IMPLEMENTATION.
DATA li_app_test TYPE REF TO z2ui5_if_app.
TRY.
ms_home-classname = z2ui5_cl_util=>c_trim_upper( ms_home-classname ).
CREATE OBJECT li_app_test TYPE (ms_home-classname).
@ -79,19 +78,12 @@ CLASS z2ui5_cl_core_app_startup IMPLEMENTATION.
DATA(page2) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
shownavbutton = abap_false ).
* DATA(lv_url_info) = z2ui5_cl_util=>app_get_url(
* client = client
* classname = 'z2ui5_cl_core_app_info' ).
page2->header_content(
)->text(
)->title( `abap2UI5 - Developing UI5 Apps Purely in ABAP`
)->toolbar_spacer(
)->button( text = `System` icon = `sap-icon://information`
press = client->_event( `OPEN_INFO` ) ).
* press = client->_event_client( val = client->cs_event-open_new_tab
* t_arg = VALUE #( ( lv_url_info ) ) ) ).
DATA(simple_form2) = page2->simple_form(
editable = abap_true

View File

@ -51,17 +51,14 @@ ENDCLASS.
CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
METHOD factory.
FIELD-SYMBOLS <tab> TYPE any.
r_result = NEW #( ).
r_result->title = i_title.
r_result->sort_field = i_sort_field.
r_result->descending = i_descending.
CREATE DATA r_result->mr_tab LIKE i_tab.
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
ASSIGN r_result->mr_tab->* TO <tab>.
<tab> = i_tab.
r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ).
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
ENDMETHOD.
@ -181,9 +178,6 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
CREATE DATA mr_tab_popup TYPE HANDLE lo_tab_type.
CREATE DATA mr_tab_popup_backup TYPE HANDLE lo_tab_type.
ASSIGN mr_tab_popup->* TO <tab_out>.
ASSIGN mr_tab_popup_backup->* TO <tab_out2>.
LOOP AT <tab> ASSIGNING <row>.
@ -223,9 +217,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
CONTINUE.
ENDIF.
ASSIGN ms_result-row->* TO <row_result>.
IF check_table_line = abap_true.
ASSIGN ('<ROW_SELECTED>-TAB_LINE') TO <table_line_selected>.
@ -259,10 +251,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
<tab_out> = <tab_out_backup>.
DATA(lo_type) = cl_abap_structdescr=>describe_by_data( <tab_out> ).
DATA(lo_table) = CAST cl_abap_tabledescr( lo_type ).
DATA(lo_struct) = CAST cl_abap_structdescr( lo_table->get_table_line_type( ) ).
DATA(lt_comp) = lo_struct->get_components( ).
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_struc( <tab_out> ).
LOOP AT <tab_out> ASSIGNING <row2>.
DATA(lv_check_continue) = abap_false.
LOOP AT lt_comp INTO DATA(ls_comp).