2.7: ?/??/2019 * Changed CsvProcessor.writeAll() to not close the writer since it didn't open it. 2.6: 2/15/2019 * Fixed another problem with line-termination in a field. Refactored that code and added better random tests. 2.5: 2/15/2019 * Fixed an bug that I found when line-termination character an a blank line are inside a column. 2.4: 2/15/2019 * Added handling of line-termination characters inside of columns if enabled. * Added a setting to load the fields from any super-classes _before_ the subclasses. 2.3: 2/23/2018 * Added better parse error information, especially with enums. Thanks to @iamareebjamal. 2.2: 9/20/2017 * Some small changes around logging and serializable parse-errors. 2.1: 12/30/2016 * Sorry for the changes here but this is cleaner. * More refactored to remove FieldInfo entirely and move field information into ColumnInfo. * BROKE (again) the Converter API to switch to a ColumnInfo in the configure(...) method. 1.5: 12/22/2016 * NOTE: should have been 2.0 given the API changes * Refactored to support get/is/set methods as well as field. * BROKE Converter API to switch to a FieldInfo instead of a field and to make it generic. Required for method support. * RENAMED CsvField to be CsvColumn to better line up with using fields and methods. Deprecated CsvField. * Added a generic parameter to ColumnInfo for the column type it provides information for. 1.4: 8/2/2016 * Added RowValidator to validate an entity parsed from a CSV line. 1.3: 8/2/2016 * Fixed a couple of places where exceptions were being thrown instead of setting ParseError * Better standard ways of reporting on line-number, line, and message in ParseError. * Added a couple more ParseError ErrorType enum values. 1.2: 6/2/2016 * Changed the Converter.stringToJava() method to include the line-position for better error messages. * Added a CASE_SENSITIVE and NEEDS_QUOTES flags to the BooleanConverter. It now is case-insensitive by default. * Better processing of enum fields. * Exposed the BufferedReaderLineCounter class to be used externally to track line numbers. 1.1: 1/22/2016 * Fixed a problem with the Date converter and multiple dates per item. 0.8: 9/13/2015 * Renamed CsvField.required to be mustNotBeBlank to be more explicit. * Renamed CsvField.optionalColumn to be mustBeSupplied and reverted the polarity to be more explicit. * Improved test coverage. 0.7: 8/31/2015 * Fixed the errors from line problems. * Changed the way the header-validation is set from argument to .withHeaderValidation(...). * Changed the way the first-line-header is set from argument to .withFirstLineHeader(...). * Added support for column-name-matcher to match column names using external business logic. * Added support for flexible column name ordering based on the header order. * Added support for ignoring unknown columns in the data. * Fixed the line numbers specified in the errors. 0.6: 12/3/2014 * Fixed the handling of subclasses. * Fixed the registering of class converters. * Added with...() type methods. * Added manual and auto-config and better Spring wiring setup. 0.5: 11/26/2014 * Added alwaysTrim to Converter and CsvProcessor. * Tweaked the error output. 0.4: 11/25/2014 * Fixed processing bug with null values. Seems to be usable. 0.3: 11/25/2014 * Improved header validation method. * Added better read and write methods for individual entity lines. 0.2: 11/25/2014 * Some small improvements. Added an example. Renamed cell -> column. * Improved header validation method. 0.1: 11/24/2014 * Initial version. Coding seems to be stabilizing although things are a bit rough.