Search code examples
javaopencsv

OpenCSV Java - CsvToBeanFilter using annotated objects instead of a HeaderColumnNameTranslateMappingStrategy


I'm reading a CSV file and am using a HeaderColumnNameTranslateMappingStrategy to associate columns in my Object to those in the input data and it all works fine.

In addition, I've implemented a CsvToBeanFilter to filter out data before the objects are constructed to improve performance.

What I would like to do is move away from HeaderColumnNameTranslateMappingStrategy and move to annotated fields on my object.

The provided example for CsvToBeanFilter however, seem to be referring to the MappingStrategy to get the column outside of the object.

Any ideas how I can do this with annotated fields?

From the fact the supplied documentation doesn't compile, and references a deprecated method makes me think I might be out of luck.


Solution

  • Cross-posting from the bug report I filed.

    Yeah, you've caught us at an inopertune moment. I became aware of that use for getColumnIndex() after I deprecated it, and the replacement for CsvToBeanFilter (BeanVerifier) is in master, but hasn't been released yet. Right now, just use the deprecated getColumnIndex() if you have to. It should be very easy to move from CsvToBeanFilter to BeanVerifier once 4.4 is released.

    I'll take care of the documentation error another time, but thanks very much for pointing it out. I believe in flawless documentation.