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
が入力 ->KMapper
Map
/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.
Shared
0.9 -> 0.10- マッピングの処理効率の向上
- https://github.com/ProjectMapK/Shared/releases/tag/0.10
kotlin
1.3.70 -> 1.3.71junit jupiter
5.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の修正
古い内容の更新が漏れていたため修正を行った。