Skip to content

Commit 634a132

Browse files
committed
Update types, add ABAP Language Version
1 parent ccb2fb6 commit 634a132

6 files changed

+66
-40
lines changed

src/#apmg#cl_package_json.clas.abap

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -280,33 +280,24 @@ CLASS /apmg/cl_package_json IMPLEMENTATION.
280280
keywords TYPE string_table,
281281
homepage TYPE string,
282282
icon TYPE string,
283-
BEGIN OF bugs,
284-
url TYPE /apmg/if_types=>ty_uri,
285-
email TYPE /apmg/if_types=>ty_email,
286-
END OF bugs,
283+
bugs TYPE /apmg/if_types=>ty_bugs,
287284
license TYPE string,
288285
author TYPE /apmg/if_types=>ty_person,
289-
contributors TYPE STANDARD TABLE OF /apmg/if_types=>ty_person WITH KEY name,
290-
maintainers TYPE STANDARD TABLE OF /apmg/if_types=>ty_person WITH KEY name,
286+
contributors TYPE /apmg/if_types=>ty_persons,
287+
maintainers TYPE /apmg/if_types=>ty_persons,
291288
main TYPE string,
292289
man TYPE string_table,
293290
type TYPE string,
294-
BEGIN OF repository,
295-
type TYPE string,
296-
url TYPE /apmg/if_types=>ty_uri,
297-
directory TYPE string,
298-
END OF repository,
299-
BEGIN OF funding,
300-
type TYPE string,
301-
url TYPE /apmg/if_types=>ty_uri,
302-
END OF funding,
291+
repository TYPE /apmg/if_types=>ty_repository,
292+
funding TYPE /apmg/if_types=>ty_funding,
303293
os TYPE string_table,
304294
cpu TYPE string_table,
305295
db TYPE string_table,
306296
private TYPE abap_bool,
307297
deprecated TYPE abap_bool,
308298
dist TYPE /apmg/if_types=>ty_dist,
309299
readme TYPE string,
300+
sap_package TYPE /apmg/if_types=>ty_sap_package,
310301
_id TYPE string,
311302
_abap_version TYPE string,
312303
_apm_version TYPE string,

src/#apmg#cl_package_json.clas.testclasses.abap

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,12 @@ CLASS ltcl_package_json IMPLEMENTATION.
146146
&& `| "hdb"`
147147
&& `| ],`
148148
&& `| "private": true,`
149-
&& `| "readme": "# Readme"`
149+
&& `| "readme": "# Readme",`
150+
&& `| "sapPackage": {`
151+
&& `| "default": "/APMG/TEST",`
152+
&& `| "softwareComponent": "HOME",`
153+
&& `| "abapLanguageVersion": "standard"`
154+
&& `| }`
150155
&& `|}`.
151156

152157
test_json_full = ``
@@ -230,6 +235,11 @@ CLASS ltcl_package_json IMPLEMENTATION.
230235
&& `| ],`
231236
&& `| "private": true,`
232237
&& `| "readme": "# Readme",`
238+
&& `| "sapPackage": {`
239+
&& `| "default": "/APMG/TEST",`
240+
&& `| "softwareComponent": "HOME",`
241+
&& `| "abapLanguageVersion": "standard"`
242+
&& `| },`
233243
&& `| "dist": {`
234244
&& `| "fileCount": 8,`
235245
&& `| "shasum": "be",`
@@ -343,7 +353,11 @@ CLASS ltcl_package_json IMPLEMENTATION.
343353
cpu = VALUE #( ( `x86-64` ) )
344354
db = VALUE #( ( `hdb` ) )
345355
readme = `# Readme`
346-
private = abap_true ).
356+
private = abap_true
357+
sap_package = VALUE #(
358+
default = `/APMG/TEST`
359+
software_component = `HOME`
360+
abap_language_version = `standard` ) ).
347361

348362
test_manifest = CORRESPONDING #( test_package_json ).
349363

src/#apmg#cl_package_json_valid.clas.abap

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ CLASS /apmg/cl_package_json_valid DEFINITION
9595
RETURNING
9696
VALUE(result) TYPE abap_bool.
9797

98+
CLASS-METHODS is_valid_abap_language_version
99+
IMPORTING
100+
!vers TYPE string
101+
RETURNING
102+
VALUE(result) TYPE abap_bool.
103+
98104
PROTECTED SECTION.
99105
PRIVATE SECTION.
100106
ENDCLASS.
@@ -111,7 +117,7 @@ CLASS /apmg/cl_package_json_valid IMPLEMENTATION.
111117
APPEND LINES OF lcl_validate=>validate_persons( manifest ) TO result.
112118
APPEND LINES OF lcl_validate=>validate_engines( manifest ) TO result.
113119
APPEND LINES OF lcl_validate=>validate_dependencies( manifest ) TO result.
114-
APPEND LINES OF lcl_validate=>validate_devclass( manifest ) TO result.
120+
APPEND LINES OF lcl_validate=>validate_sap_package( manifest ) TO result.
115121

116122
ENDMETHOD.
117123

@@ -123,6 +129,23 @@ CLASS /apmg/cl_package_json_valid IMPLEMENTATION.
123129
ENDMETHOD.
124130

125131

132+
METHOD is_valid_abap_language_version.
133+
134+
DATA(vers_val) = vers.
135+
136+
SHIFT vers_val LEFT DELETING LEADING '!'.
137+
138+
result = xsdbool(
139+
vers_val IS INITIAL OR
140+
vers_val = /apmg/if_types=>c_abap_language_version-standard OR
141+
vers_val = /apmg/if_types=>c_abap_language_version-key_user OR
142+
vers_val = /apmg/if_types=>c_abap_language_version-cloud_development OR
143+
vers_val = /apmg/if_types=>c_abap_language_version-ignore OR
144+
vers_val = /apmg/if_types=>c_abap_language_version-undefined ).
145+
146+
ENDMETHOD.
147+
148+
126149
METHOD is_valid_cpu.
127150

128151
DATA(cpu_val) = cpu.

src/#apmg#cl_package_json_valid.clas.locals_imp.abap

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ CLASS lcl_validate DEFINITION.
3232
RETURNING
3333
VALUE(result) TYPE string_table.
3434

35-
CLASS-METHODS validate_devclass
35+
CLASS-METHODS validate_sap_package
3636
IMPORTING
3737
!manifest TYPE /apmg/if_types=>ty_manifest
3838
RETURNING
@@ -256,20 +256,16 @@ CLASS lcl_validate IMPLEMENTATION.
256256

257257
ENDMETHOD.
258258

259-
METHOD validate_devclass.
259+
METHOD validate_sap_package.
260260

261-
IF manifest-devclass-default IS NOT INITIAL AND
262-
/apmg/cl_package_json_valid=>is_valid_sap_package( manifest-devclass-default ) = abap_false.
263-
INSERT |Invalid default SAP package: { manifest-devclass-default }| INTO TABLE result.
261+
IF manifest-sap_package-default IS NOT INITIAL AND
262+
/apmg/cl_package_json_valid=>is_valid_sap_package( manifest-sap_package-default ) = abap_false.
263+
INSERT |Invalid default SAP package: { manifest-sap_package-default }| INTO TABLE result.
264264
ENDIF.
265265

266-
IF manifest-devclass-abap_language_version IS NOT INITIAL AND
267-
manifest-devclass-abap_language_version <> zif_abapgit_dot_abapgit=>c_abap_language_version-undefined AND
268-
manifest-devclass-abap_language_version <> zif_abapgit_dot_abapgit=>c_abap_language_version-ignore AND
269-
manifest-devclass-abap_language_version <> zif_abapgit_dot_abapgit=>c_abap_language_version-standard AND
270-
manifest-devclass-abap_language_version <> zif_abapgit_dot_abapgit=>c_abap_language_version-key_user AND
271-
manifest-devclass-abap_language_version <> zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development.
272-
INSERT |Invalid ABAP language version: { manifest-devclass-abap_language_version }| INTO TABLE result.
266+
IF /apmg/cl_package_json_valid=>is_valid_abap_language_version( manifest-sap_package-abap_language_version )
267+
= abap_false.
268+
INSERT |Invalid ABAP language version: { manifest-sap_package-abap_language_version }| INTO TABLE result.
273269
ENDIF.
274270

275271
ENDMETHOD.

src/#apmg#cl_package_json_valid.clas.testclasses.abap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ CLASS ltcl_package_json_valid DEFINITION FINAL FOR TESTING
1212
is_valid_email FOR TESTING,
1313
is_valid_url FOR TESTING.
1414

15+
" TODO: More tests
16+
1517
ENDCLASS.
1618

1719
CLASS ltcl_package_json_valid IMPLEMENTATION.

src/#apmg#if_package_json.intf.abap

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ INTERFACE /apmg/if_package_json PUBLIC.
1818
TYPES:
1919
BEGIN OF ty_package,
2020
key TYPE /apmg/if_persist_apm=>ty_key,
21-
package TYPE devclass,
22-
name TYPE string,
23-
version TYPE string,
24-
description TYPE string,
25-
type TYPE string,
26-
private TYPE abap_bool,
21+
package TYPE /apmg/if_types=>ty_devclass,
22+
name TYPE /apmg/if_types=>ty_package_json-name,
23+
version TYPE /apmg/if_types=>ty_package_json-version,
24+
description TYPE /apmg/if_types=>ty_package_json-description,
25+
type TYPE /apmg/if_types=>ty_package_json-type,
26+
private TYPE /apmg/if_types=>ty_package_json-private,
2727
changed_by TYPE as4user,
2828
changed_at TYPE string,
2929
changed_at_raw TYPE timestampl,
3030
bundle TYPE abap_bool,
31-
parent TYPE devclass,
32-
abap_language_version TYPE uccheck,
33-
favorite TYPE abap_bool, " settings
34-
write_protected TYPE abap_bool, " settings
31+
parent TYPE /apmg/if_types=>ty_devclass,
32+
abap_language_version TYPE string,
33+
favorite TYPE abap_bool, " settings
34+
write_protected TYPE abap_bool, " settings
3535
labels TYPE string_table, " settings
3636
instance TYPE REF TO /apmg/if_package_json,
3737
END OF ty_package,

0 commit comments

Comments
 (0)