- Notifications
You must be signed in to change notification settings - Fork23
Using mapstruct with kotlin data classes.
License
Pozo/mapstruct-kotlin
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
⚠️ Since 1.4 MapStruct has support for using constructor arguments when instantiating mapping targets.This also works with Kotlin data classes.
Since mapstruct1.3.0.Beta2 it's possible to use builders for immutable classes.According to the documentation you can implement your custom builder provider logic. This project take advantage of this and provide a customBuilderProvider for kotlin data classes.
So instead of this (source)
data classPersonDto(varfirstName:String?,varlastName:String?,varphone:String?,varbirthdate:LocalDate?) {// Necessary for MapStructconstructor():this(null,null,null,null)}
We can do this
@KotlinBuilderdata classPersonDto(valfirstName:String,vallastName:String,valphone:String,valbirthdate:LocalDate)
With a mapper
@MapperinterfacePersonMapper {funmap(person:Person):PersonDto}
First apply kapt plugin
applyplugin:'kotlin-kapt'
Then add these to your project as dependency
api("com.github.pozo:mapstruct-kotlin:1.3.1.2")kapt("com.github.pozo:mapstruct-kotlin-processor:1.3.1.2")
Check out the directoryexample for a basic usage example.
For example in case of1.3.1.1 the first part1.3.1 is the mapstruct version number and the last digit1 reserved for future patches.
mapstruct-kotlin-buildercontains only theKotlinBuilderannotationmapstruct-kotlin-processorresponsible for generating the builders for the kotlin data classes with the help of a customDefaultBuilderProviderexampleresponsible for demonstrating this library usage
./gradlew -p example clean buildMap with custom types are not workingLook overkotlin-builder-annotation project and replace with class generating module (builder-processor)Writing testsVersioning and release process
Please see LICENSE file
Zoltan Polgar -pozo@gmx.com
Please do not hesitate to contact me if you have any further questions.
About
Using mapstruct with kotlin data classes.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.