diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..6356ef3 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,17 @@ +name: test + +on: + push + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + - run: npm ci + - run: npm test \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/abaplint.jsonc b/abaplint.jsonc new file mode 100644 index 0000000..458be7c --- /dev/null +++ b/abaplint.jsonc @@ -0,0 +1,38 @@ +{ + "global": { + "files": "/src/**/*.*" + }, + "dependencies": [ + { + "url": "https://github.com/open-abap/open-abap-core", + "folder": "/deps", + "files": "/src/**/*.*" + } + ], + "syntax": { + "version": "Cloud", + "errorNamespace": "." + }, + "rules": { + "begin_end_names": true, + "cds_parser_error": true, + "check_ddic": true, + "strict_sql": true, + "sql_escape_host_variables": true, + "check_include": true, + "check_syntax": true, + "cloud_types": true, + "space_before_colon": true, + "space_before_dot": true, + "align_parameters": true, + "align_type_expressions": true, + "sy_modification": true, + "global_class": true, + "implement_methods": true, + "method_implemented_twice": true, + "parser_error": true, + "superclass_final": true, + "unknown_types": true, + "xml_consistency": true + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..948433c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,30 @@ +{ + "name": "open-abap-rap", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "open-abap-rap", + "version": "1.0.0", + "dependencies": { + "@abaplint/cli": "^2.113.143" + } + }, + "node_modules/@abaplint/cli": { + "version": "2.113.143", + "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.113.143.tgz", + "integrity": "sha512-mEQtN1Mv/RBxxbY3bcoafH2Z1SEB6CCHJEvBH4f/j0OsenCd6DtoCyeINfWBfXWlYPM/tlqdgTCpAbFaOQRrPA==", + "license": "MIT", + "bin": { + "abaplint": "abaplint" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/larshp" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..fdb9150 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "open-abap-rap", + "version": "1.0.0", + "description": "open-abap-rap", + "private": true, + "scripts": { + "test": "abaplint" + }, + "author": "", + "license": "", + "dependencies": { + "@abaplint/cli": "^2.113.143" + } +} diff --git a/src/cl_abap_behavior_handler.clas.abap b/src/cl_abap_behavior_handler.clas.abap new file mode 100644 index 0000000..3a72d5a --- /dev/null +++ b/src/cl_abap_behavior_handler.clas.abap @@ -0,0 +1,7 @@ +CLASS cl_abap_behavior_handler DEFINITION PUBLIC. + PUBLIC SECTION. +ENDCLASS. + +CLASS cl_abap_behavior_handler IMPLEMENTATION. + +ENDCLASS. \ No newline at end of file diff --git a/src/cl_abap_behavior_handler.clas.xml b/src/cl_abap_behavior_handler.clas.xml new file mode 100644 index 0000000..3feb2ae --- /dev/null +++ b/src/cl_abap_behavior_handler.clas.xml @@ -0,0 +1,16 @@ + + + + + + CL_ABAP_BEHAVIOR_HANDLER + E + CL_ABAP_BEHAVIOR_HANDLER + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/cl_abap_behavior_saver.clas.abap b/src/cl_abap_behavior_saver.clas.abap new file mode 100644 index 0000000..860917e --- /dev/null +++ b/src/cl_abap_behavior_saver.clas.abap @@ -0,0 +1,7 @@ +CLASS cl_abap_behavior_saver DEFINITION PUBLIC. + PUBLIC SECTION. +ENDCLASS. + +CLASS cl_abap_behavior_saver IMPLEMENTATION. + +ENDCLASS. \ No newline at end of file diff --git a/src/cl_abap_behavior_saver.clas.xml b/src/cl_abap_behavior_saver.clas.xml new file mode 100644 index 0000000..212b1ee --- /dev/null +++ b/src/cl_abap_behavior_saver.clas.xml @@ -0,0 +1,16 @@ + + + + + + CL_ABAP_BEHAVIOR_SAVER + E + CL_ABAP_BEHAVIOR_SAVER + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/cl_abap_behavior_saver_failed.clas.abap b/src/cl_abap_behavior_saver_failed.clas.abap new file mode 100644 index 0000000..cbb2ee8 --- /dev/null +++ b/src/cl_abap_behavior_saver_failed.clas.abap @@ -0,0 +1,7 @@ +CLASS cl_abap_behavior_saver_failed DEFINITION PUBLIC. + PUBLIC SECTION. +ENDCLASS. + +CLASS cl_abap_behavior_saver_failed IMPLEMENTATION. + +ENDCLASS. \ No newline at end of file diff --git a/src/cl_abap_behavior_saver_failed.clas.xml b/src/cl_abap_behavior_saver_failed.clas.xml new file mode 100644 index 0000000..e883ade --- /dev/null +++ b/src/cl_abap_behavior_saver_failed.clas.xml @@ -0,0 +1,16 @@ + + + + + + CL_ABAP_BEHAVIOR_SAVER_FAILED + E + CL_ABAP_BEHAVIOR_SAVER_FAILED + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_filter_no_range.clas.abap b/src/exceptions/cx_rap_query_filter_no_range.clas.abap new file mode 100644 index 0000000..aae6b0c --- /dev/null +++ b/src/exceptions/cx_rap_query_filter_no_range.clas.abap @@ -0,0 +1,23 @@ +CLASS cx_rap_query_filter_no_range DEFINITION + PUBLIC + INHERITING FROM cx_static_check + CREATE PRIVATE. + + PUBLIC SECTION. + INTERFACES if_t100_dyn_msg. + + CLASS-METHODS not_expressable_as_range RETURNING VALUE(rx) TYPE REF TO cx_rap_query_filter_no_range. + + METHODS constructor. + +ENDCLASS. + +CLASS cx_rap_query_filter_no_range IMPLEMENTATION. + METHOD not_expressable_as_range. + RETURN. " todo, implement method + ENDMETHOD. + + METHOD constructor. + RETURN. " todo, implement method + ENDMETHOD. +ENDCLASS. \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_filter_no_range.clas.xml b/src/exceptions/cx_rap_query_filter_no_range.clas.xml new file mode 100644 index 0000000..0e54bc9 --- /dev/null +++ b/src/exceptions/cx_rap_query_filter_no_range.clas.xml @@ -0,0 +1,16 @@ + + + + + + CX_RAP_QUERY_FILTER_NO_RANGE + E + CX_RAP_QUERY_FILTER_NO_RANGE + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_prov_not_impl.clas.abap b/src/exceptions/cx_rap_query_prov_not_impl.clas.abap new file mode 100644 index 0000000..799cf46 --- /dev/null +++ b/src/exceptions/cx_rap_query_prov_not_impl.clas.abap @@ -0,0 +1,8 @@ +CLASS cx_rap_query_prov_not_impl DEFINITION PUBLIC ABSTRACT INHERITING FROM cx_rap_query_provider. + PUBLIC SECTION. + PROTECTED SECTION. +ENDCLASS. + +CLASS cx_rap_query_prov_not_impl IMPLEMENTATION. + +ENDCLASS. \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_prov_not_impl.clas.xml b/src/exceptions/cx_rap_query_prov_not_impl.clas.xml new file mode 100644 index 0000000..efa4d86 --- /dev/null +++ b/src/exceptions/cx_rap_query_prov_not_impl.clas.xml @@ -0,0 +1,16 @@ + + + + + + CX_RAP_QUERY_PROV_NOT_IMPL + E + CX_RAP_QUERY_PROV_NOT_IMPL + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_provider.clas.abap b/src/exceptions/cx_rap_query_provider.clas.abap new file mode 100644 index 0000000..5f18b97 --- /dev/null +++ b/src/exceptions/cx_rap_query_provider.clas.abap @@ -0,0 +1,21 @@ +CLASS cx_rap_query_provider DEFINITION + PUBLIC + INHERITING FROM cx_static_check + ABSTRACT + CREATE PUBLIC. + + PUBLIC SECTION. + + INTERFACES if_t100_dyn_msg . + INTERFACES if_t100_message . + + METHODS constructor IMPORTING textid LIKE if_t100_message=>t100key OPTIONAL + previous LIKE previous OPTIONAL. + PROTECTED SECTION. +ENDCLASS. + +CLASS cx_rap_query_provider IMPLEMENTATION. + METHOD constructor. + RETURN. " todo, implement method + ENDMETHOD. +ENDCLASS. \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_provider.clas.xml b/src/exceptions/cx_rap_query_provider.clas.xml new file mode 100644 index 0000000..dc66d8e --- /dev/null +++ b/src/exceptions/cx_rap_query_provider.clas.xml @@ -0,0 +1,16 @@ + + + + + + CX_RAP_QUERY_PROVIDER + E + CX_RAP_QUERY_PROVIDER + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_response_set_twic.clas.abap b/src/exceptions/cx_rap_query_response_set_twic.clas.abap new file mode 100644 index 0000000..e00a72e --- /dev/null +++ b/src/exceptions/cx_rap_query_response_set_twic.clas.abap @@ -0,0 +1,23 @@ +CLASS cx_rap_query_response_set_twic DEFINITION + PUBLIC + FINAL + INHERITING FROM cx_dynamic_check + CREATE PRIVATE. + + PUBLIC SECTION. + INTERFACES if_t100_dyn_msg. + + CLASS-METHODS setter_already_called RETURNING VALUE(rx) TYPE REF TO cx_rap_query_response_set_twic. + + METHODS constructor. + +ENDCLASS. + +CLASS cx_rap_query_response_set_twic IMPLEMENTATION. + METHOD setter_already_called. + RETURN. " todo, implement method + ENDMETHOD. + METHOD constructor. + RETURN. " todo, implement method + ENDMETHOD. +ENDCLASS. \ No newline at end of file diff --git a/src/exceptions/cx_rap_query_response_set_twic.clas.xml b/src/exceptions/cx_rap_query_response_set_twic.clas.xml new file mode 100644 index 0000000..69cdf76 --- /dev/null +++ b/src/exceptions/cx_rap_query_response_set_twic.clas.xml @@ -0,0 +1,16 @@ + + + + + + CX_RAP_QUERY_RESPONSE_SET_TWIC + E + CX_RAP_QUERY_RESPONSE_SET_TWIC + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_aggregation.intf.abap b/src/interfaces/if_rap_query_aggregation.intf.abap new file mode 100644 index 0000000..37214da --- /dev/null +++ b/src/interfaces/if_rap_query_aggregation.intf.abap @@ -0,0 +1,26 @@ +INTERFACE if_rap_query_aggregation PUBLIC. + + CONSTANTS: + BEGIN OF co_standard_aggregation_method, + count TYPE string VALUE `COUNT`, + count_distinct TYPE string VALUE `COUNT_DISTINCT`, + sum TYPE string VALUE `SUM`, + minimum TYPE string VALUE `MIN`, + maximum TYPE string VALUE `MAX`, + average TYPE string VALUE `AVG`, + END OF co_standard_aggregation_method. + CONSTANTS co_count_all_identifier TYPE string VALUE `*`. + + TYPES: + BEGIN OF ty_aggregation_element, + aggregation_method TYPE string, + input_element TYPE string, + result_element TYPE string, + END OF ty_aggregation_element. + TYPES tt_aggregation_elements TYPE STANDARD TABLE OF ty_aggregation_element WITH EMPTY KEY. + METHODS get_aggregated_elements RETURNING VALUE(rt_aggregated_elements) TYPE tt_aggregation_elements. + + TYPES tt_grouped_elements TYPE STANDARD TABLE OF string WITH EMPTY KEY. + METHODS get_grouped_elements RETURNING VALUE(rt_grouped_elements) TYPE tt_grouped_elements. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_aggregation.intf.xml b/src/interfaces/if_rap_query_aggregation.intf.xml new file mode 100644 index 0000000..7551e06 --- /dev/null +++ b/src/interfaces/if_rap_query_aggregation.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_AGGREGATION + E + IF_RAP_QUERY_AGGREGATION + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter.intf.abap b/src/interfaces/if_rap_query_filter.intf.abap new file mode 100644 index 0000000..da3ac87 --- /dev/null +++ b/src/interfaces/if_rap_query_filter.intf.abap @@ -0,0 +1,23 @@ +INTERFACE if_rap_query_filter PUBLIC. + + TYPES: + BEGIN OF ty_range_option, + sign TYPE c LENGTH 1, + option TYPE c LENGTH 2, + low TYPE string, + high TYPE string, + END OF ty_range_option, + tt_range_option TYPE STANDARD TABLE OF ty_range_option WITH EMPTY KEY, + + BEGIN OF ty_name_range_pairs, + name TYPE string, + range TYPE tt_range_option, + END OF ty_name_range_pairs, + tt_name_range_pairs TYPE STANDARD TABLE OF ty_name_range_pairs WITH EMPTY KEY. + METHODS get_as_ranges IMPORTING iv_drop_null_comparisons TYPE abap_bool DEFAULT abap_false + RETURNING VALUE(rt_ranges) TYPE tt_name_range_pairs + RAISING cx_rap_query_filter_no_range. + METHODS get_as_sql_string RETURNING VALUE(rv_string) TYPE string. + METHODS get_as_tree RETURNING VALUE(ro_tree) TYPE REF TO if_rap_query_filter_tree. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter.intf.xml b/src/interfaces/if_rap_query_filter.intf.xml new file mode 100644 index 0000000..711825f --- /dev/null +++ b/src/interfaces/if_rap_query_filter.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_FILTER + E + IF_RAP_QUERY_FILTER + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter_tree.intf.abap b/src/interfaces/if_rap_query_filter_tree.intf.abap new file mode 100644 index 0000000..3727292 --- /dev/null +++ b/src/interfaces/if_rap_query_filter_tree.intf.abap @@ -0,0 +1,5 @@ +INTERFACE if_rap_query_filter_tree PUBLIC. + + METHODS get_root_node RETURNING VALUE(root_node) TYPE REF TO if_rap_query_filter_tree_node. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter_tree.intf.xml b/src/interfaces/if_rap_query_filter_tree.intf.xml new file mode 100644 index 0000000..7e90b20 --- /dev/null +++ b/src/interfaces/if_rap_query_filter_tree.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_FILTER_TREE + E + IF_RAP_QUERY_FILTER_TREE + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter_tree_node.intf.abap b/src/interfaces/if_rap_query_filter_tree_node.intf.abap new file mode 100644 index 0000000..c8f1884 --- /dev/null +++ b/src/interfaces/if_rap_query_filter_tree_node.intf.abap @@ -0,0 +1,7 @@ +INTERFACE if_rap_query_filter_tree_node PUBLIC. + + METHODS get_children RETURNING VALUE(children) TYPE if_rap_query_filter_tree_types=>ordered_children. + METHODS get_type RETURNING VALUE(type) TYPE if_rap_query_filter_tree_types=>node_type. + METHODS get_value RETURNING VALUE(value) TYPE REF TO data. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter_tree_node.intf.xml b/src/interfaces/if_rap_query_filter_tree_node.intf.xml new file mode 100644 index 0000000..2923a62 --- /dev/null +++ b/src/interfaces/if_rap_query_filter_tree_node.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_FILTER_TREE_NODE + E + IF_RAP_QUERY_FILTER_TREE_NODE + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter_tree_types.intf.abap b/src/interfaces/if_rap_query_filter_tree_types.intf.abap new file mode 100644 index 0000000..b703d77 --- /dev/null +++ b/src/interfaces/if_rap_query_filter_tree_types.intf.abap @@ -0,0 +1,19 @@ +INTERFACE if_rap_query_filter_tree_types PUBLIC. + + TYPES: BEGIN OF ENUM node_type STRUCTURE node_types, + identifier, + value, + is_null, + equals, + matches_pattern, + less_than, + greater_than, + logical_not, + logical_and, + logical_or, + END OF ENUM node_type STRUCTURE node_types. + + TYPES: node TYPE REF TO if_rap_query_filter_tree_node, + ordered_children TYPE STANDARD TABLE OF node WITH EMPTY KEY. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_filter_tree_types.intf.xml b/src/interfaces/if_rap_query_filter_tree_types.intf.xml new file mode 100644 index 0000000..43fffe8 --- /dev/null +++ b/src/interfaces/if_rap_query_filter_tree_types.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_FILTER_TREE_TYPES + E + IF_RAP_QUERY_FILTER_TREE_TYPES + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_paging.intf.abap b/src/interfaces/if_rap_query_paging.intf.abap new file mode 100644 index 0000000..7db9939 --- /dev/null +++ b/src/interfaces/if_rap_query_paging.intf.abap @@ -0,0 +1,7 @@ +INTERFACE if_rap_query_paging PUBLIC. + + CONSTANTS page_size_unlimited TYPE int8 VALUE -1. + METHODS get_offset RETURNING VALUE(rv_offset) TYPE int8. + METHODS get_page_size RETURNING VALUE(rv_page_size) TYPE int8. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_paging.intf.xml b/src/interfaces/if_rap_query_paging.intf.xml new file mode 100644 index 0000000..571cf6a --- /dev/null +++ b/src/interfaces/if_rap_query_paging.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_PAGING + E + IF_RAP_QUERY_PAGING + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_provider.intf.abap b/src/interfaces/if_rap_query_provider.intf.abap new file mode 100644 index 0000000..23be429 --- /dev/null +++ b/src/interfaces/if_rap_query_provider.intf.abap @@ -0,0 +1,11 @@ +INTERFACE if_rap_query_provider PUBLIC. + + METHODS select + IMPORTING + io_request TYPE REF TO if_rap_query_request + io_response TYPE REF TO if_rap_query_response + RAISING + cx_rap_query_prov_not_impl + cx_rap_query_provider. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_provider.intf.xml b/src/interfaces/if_rap_query_provider.intf.xml new file mode 100644 index 0000000..3bb79af --- /dev/null +++ b/src/interfaces/if_rap_query_provider.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_PROVIDER + E + IF_RAP_QUERY_PROVIDER + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_request.intf.abap b/src/interfaces/if_rap_query_request.intf.abap new file mode 100644 index 0000000..df376ac --- /dev/null +++ b/src/interfaces/if_rap_query_request.intf.abap @@ -0,0 +1,28 @@ +INTERFACE if_rap_query_request PUBLIC. + + METHODS get_entity_id RETURNING VALUE(rv_entity_id) TYPE string. + METHODS is_data_requested RETURNING VALUE(rv_is_requested) TYPE abap_bool. + METHODS is_total_numb_of_rec_requested RETURNING VALUE(rv_is_requested) TYPE abap_bool. + METHODS get_filter RETURNING VALUE(ro_filter) TYPE REF TO if_rap_query_filter. + METHODS get_paging RETURNING VALUE(ro_paging) TYPE REF TO if_rap_query_paging. + + TYPES: BEGIN OF ty_sort_element, + element_name TYPE string, + descending TYPE abap_bool, + END OF ty_sort_element. + TYPES tt_sort_elements TYPE STANDARD TABLE OF ty_sort_element WITH EMPTY KEY. + METHODS get_sort_elements RETURNING VALUE(rt_sort_elements) TYPE tt_sort_elements. + + TYPES: BEGIN OF ty_parameter, + parameter_name TYPE string, + value TYPE string, + END OF ty_parameter. + TYPES tt_parameters TYPE STANDARD TABLE OF ty_parameter WITH EMPTY KEY. + METHODS get_parameters RETURNING VALUE(rt_parameters) TYPE tt_parameters. + METHODS get_aggregation RETURNING VALUE(ro_aggregation) TYPE REF TO if_rap_query_aggregation. + METHODS get_search_expression RETURNING VALUE(rv_search_expression) TYPE string. + + TYPES tt_requested_elements TYPE STANDARD TABLE OF string WITH EMPTY KEY. + METHODS get_requested_elements RETURNING VALUE(rt_requested_elements) TYPE tt_requested_elements. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_request.intf.xml b/src/interfaces/if_rap_query_request.intf.xml new file mode 100644 index 0000000..cf18db2 --- /dev/null +++ b/src/interfaces/if_rap_query_request.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_REQUEST + E + IF_RAP_QUERY_REQUEST + 2 + 1 + X + + + + \ No newline at end of file diff --git a/src/interfaces/if_rap_query_response.intf.abap b/src/interfaces/if_rap_query_response.intf.abap new file mode 100644 index 0000000..4d506ff --- /dev/null +++ b/src/interfaces/if_rap_query_response.intf.abap @@ -0,0 +1,11 @@ +INTERFACE if_rap_query_response PUBLIC. + + METHODS set_data + IMPORTING it_data TYPE STANDARD TABLE + RAISING cx_rap_query_response_set_twic. + + METHODS set_total_number_of_records + IMPORTING iv_total_number_of_records TYPE int8 + RAISING cx_rap_query_response_set_twic. + +ENDINTERFACE. \ No newline at end of file diff --git a/src/interfaces/if_rap_query_response.intf.xml b/src/interfaces/if_rap_query_response.intf.xml new file mode 100644 index 0000000..e6a89c2 --- /dev/null +++ b/src/interfaces/if_rap_query_response.intf.xml @@ -0,0 +1,15 @@ + + + + + + IF_RAP_QUERY_RESPONSE + E + IF_RAP_QUERY_RESPONSE + 2 + 1 + X + + + + \ No newline at end of file