DEV Community

Discussion on: Kotlin CSV to Data Class Parser

Collapse
 
blackmo18 profile image
Victor Harlan D. Lacson

Hi, thanks and I really appreciate the key points you shared.

  • Regarding the custom delimiters, surrounded with quotes, Kotlin-Csv already handles the scenarios. That's why I mainly focused on my Kotlin-Grass as a parser itself.

  • Custom Mapping is also supported on initial release, instead of relying on annotation I resorted to DSL mappings.

 val grass = grass<DateTimeTypes> {
        customKeyMap = mapOf("hour" to "time", "birthdate" to "date")
    }

which is I think neat and there is no need to annotate your data class

  • Support on Java Date Time API conversion is also available.
  • On User-defined types, I never yet encountered a common use case. I guess the user can do extension functions instead without polluting data class of unwanted logic but data itself. If it is not that complicated 😖🤣

With the release of version 0.3.0, nullable values, and white spaces were already covered.

Publishing to jcenter I never thought would be just easy, although I have done so much research since my structure is for kotlin-multiplatform. You just need to create bintray account, then publish your library in there. Once your library is uploaded you can request to link your packages to jcenter.

Apply necessary plugin in Gradle build file, like maven publish. You can check my repo's build file, it is configured for publishing in bintray.

Collapse
 
stephanatwhich profile image
Stephan Schroeder

cool, seems like you got all the features I can think of then 👍

Collapse
 
grodzickir profile image
Ryszard Grodzicki

I'd propose an enhancement to the customKeyMap, or implementing another parameter for stating the mapping in more kotlin way with KProperty:

val grass = grass<DateTimeTypes> {
        customKeyMap = mapOf("hour" to DateTimeTypes::time, "birthdate" to DateTimeTypes::date)
    }
Enter fullscreen mode Exit fullscreen mode

Nonetheless - great job 👍

Thread Thread
 
blackmo18 profile image
Victor Harlan D. Lacson • Edited

I agree with your suggestion, ill keep this in mind in the future release.

github.com/blackmo18/kotlin-grass/...