Releases: ProjectMapK/KMapper
Support for mapping to nested classes.
Shared 0.12への対応を行った。
これによりネストしたクラスへのマッピングに対応した。
Add parameter conversion support.
内容
アノテーションベースのコンバーターサポートを追加した。
Added support for recursive mapping.
内容
これまでKMapperではコンバータが無くプロパティとパラメータの型が異なる場合マッピングできないものとして扱っていたが、内部的にKMapperシリーズを用いて再帰的にマッピングできるよう機能追加を行った。
KMapper/BoundKMapper
KMapper/BoundKMapperでは、以下の条件でマッパーを宣言して再帰的マッピングを行うよう修正を行った。
Map/Pairが入力 ->KMapperMap/Pair以外のオブジェクトが入力 ->BoundKMapper
PlainKMapper
内部でPlainKMapperを宣言して再帰的マッピングを行うよう修正を行った。
Improved memory usage efficiency and update libraries.
メモリ使用効率の改善
これまではオブジェクトの取得処理のキャッシュをラムダで行っていたが、メモリ使用効率の改善のため、各取得処理用のクラスを用意するように変更を行った。
ライブラリ更新
Kotlin 1.3.72へアップデート"gradle-plugin"で無駄に行っていたバージョン指定を修正
JUnit Jupiter 5.6.2へアップデートShared 0.11へアップデート
その他修正
BoundKMapperにて余計なデフォルト引数が残っていたため削除を行った。
Add get cache and fixes.
改善
オブジェクトからの値読み出し処理をキャッシュすることで大幅な高速化を実現した。
修正
パラメータからの変換処理の不具合
パラメータをそのまま代入する処理で、誤って一番最初の値がキャッシュされてしまう不具合を修正した。
並列実行時への対応
キャッシュにHashMapを用いていたが、並列実行時にキャッシュへの登録処理が壊れる可能性が懸念されたため、ConcurrentMapのアトミック処理でputするように修正を行った。
Add convert cache.
改善
KMapperのパラメータ変換処理を入力の型ごとにキャッシュすることで大幅な高速化を実現した。
この変更に合わせていくつかのコードを整理した。
破壊的変更
キャッシュ無しで動いていた従来のマッパーはPlainKMapperという名前に変更した上で残している。
Add BoundKMapper.
追加
1対1マッピングを高速に行うBoundKMapperを追加した。
細かな修正
propertyNameConverter->parameterNameConverterに引数名を修正- 変換対象はプロパティではなくパラメータなため
- テスト名等も修正を行った
KMapperの大本のコンストラクタではデフォルト引数が不要なため修正- パラメータにおけるコンバータ取得処理のインデントが変だったため修正
Updates.
Shared0.9 -> 0.10- マッピングの処理効率の向上
- https://github.com/ProjectMapK/Shared/releases/tag/0.10
kotlin1.3.70 -> 1.3.71junit jupiter5.6.0 -> 5.6.1
Fixed a bug when calling with a large number of arguments.
修正
- 33以上の引数で呼び出した場合に正常に呼び出しが行えない不具合の修正
- JVMの上限まで引数を積んでも動くようになった
- Release Fixed a bug when calling with a large number of arguments. · ProjectMapK/Shared
Add annotation that means "Use Non Null argument".
機能追加
引数がnullの場合無視することを示すアノテーションを追加した。
リファクタリング
creator -> converter
creatorという名前は既に使われなくなっていたが、改名漏れが大規模に発生していたため修正を行った。
READMEの修正
古い内容の更新が漏れていたため修正を行った。