固定長のヘッダ行出力部分のコメントが誤っていたのを修正。同時に、そのコードは通らないため例外を投げるように変更した。
M2を一度も実行していないとエラーになっていたのを修正。
TODOコメントを追加
DurationMeasurer -> DurationMeasure (スペルミス)
毎回RecordDescを生成しないようにした
add: Converter, ColumnBuilder

CsvColumnSetupのreturn typeをvoidからColumnBuilderに変更。
Beanの型にBigDecimalを使用できるようにした。

BigDecimalだとT2がconvertしてしまうのでoffにしたいが、そうすると影響がアプリケーション全体に渡ってしまう(coopie内で閉じない)ため、どうしようかな。
ConverterのシグニチャをObject配列ではなく型パラメータにした。
add: PropertyBinding

ColumnNameがオブジェクト側のプロパティ名までを持ってしまっていたが、ColumnNameから分けて持つようにした。
1プロパティを複数カラムへ入出力できるようにした。(まだ1パターンのみ)
Mapの値にStringだけでなくObjectを使用できるようにした。

MapCsvLayoutに型パラメータが付くように変わるため、既存コードを直すのが手間かも。
Mapの値がString固定ではなくなったため、既存テストコードに型パラメータをつけてまわった。
Mapの値にBigDecimalを使用できるようにした。
並び替え
converterが付いている時に、nullの入出力ができることを確認した。
null値が入力になる場合でもConverterを呼ぶようにした。(賛否両論ありそう)
固定長入出力でも、String以外をConverterで扱えるようにした。(testはBigDecimal)
固定長のMap版も動作した。(testを書いた)
内部クラスの名称を変更: NameAndDesc -> ColumnNameAndElementDesc
SimpleColumnBuilderの未使用メソッドを削除
サブクラスへfieldを直接触らせるのではなく、メソッド越しにした。