RFR: 7903788: preparation towards json configuration for jextract tool

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Aug 16 12:31:59 UTC 2024


On Fri, 16 Aug 2024 12:17:30 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> * adding json skara code into org.openjdk.jextract.json.parser package. Minor changes done - pretty printing, JSONValue is made sealed and access changes (private final fields).
>> * org.openjdk.jextract.json package for JSON interface to the rest of the jextract tool. Main interface is org.openjdk.jextract.json.JSON. parse and toString methods to convert record into JSON String and vice versa.
>> * Other classes are public mainly for testing purposes. build.gradle adjusted with the required --add-exports clauses so that jextract module does not have to export the new json packages.
>
> src/main/java/org/openjdk/jextract/json/JSONObjects.java line 562:
> 
>> 560: 
>> 561:     private static Object convertArray(JSONArray ja, Type targetType) {
>> 562:         if (targetType instanceof Class cls) {
> 
> What about j.l.reflect.GenericArrayType? That seems like a valid target for this?

What's the advantage of having the arrayConverters? In the end they will still (a) create a new array and (b) loop over the contents. Wouldn't it make more sense to define all the array logic in here, remove `arrayConverters` and then just redefine all the implementations of the factories in `JSONArrays` as shortcuts to this method?

-------------

PR Review Comment: https://git.openjdk.org/jextract/pull/257#discussion_r1719776868


More information about the jextract-dev mailing list