arnaudroger / SimpleFlatMapper

Fast and Easy mapping from database and csv to POJO. A java micro ORM, lightweight alternative to iBatis and Hibernate. Fast Csv Parser and Csv Mapper
http://simpleflatmapper.org
MIT License
438 stars 76 forks source link

Mapping list of Enum from CSV, how to? #725

Open davidivkovic opened 4 years ago

davidivkovic commented 4 years ago

I have a list public List<Specialization> specializationsList The column in the file maps to specializations_list which in the next row has a value of [Alergology, Immunology]

When trying to read this data from the CSV file the next exception is thrown: Exception in thread "main" java.lang.IllegalArgumentException: No enum constant domain.Specialization.[Alergology, Immunology]

Full stack trace:

Exception in thread "main" java.lang.IllegalArgumentException: No enum constant domain.Specialization.[Alergology, Immunology]
    at java.lang.Enum.valueOf(Unknown Source)
    at org.simpleflatmapper.converter.impl.CharSequenceToEnumConverter.convert(CharSequenceToEnumConverter.java:28)
    at org.simpleflatmapper.converter.impl.CharSequenceToEnumConverter.convert(CharSequenceToEnumConverter.java:6)
    at org.simpleflatmapper.map.fieldmapper.FieldMapperGetterWithConverter.get(FieldMapperGetterWithConverter.java:22)
    at org.simpleflatmapper.map.impl.GetterMapper.map(GetterMapper.java:19)
    at org.simpleflatmapper.map.fieldmapper.MapperFieldMapper.mapTo(MapperFieldMapper.java:40)
    at org.simpleflatmapper.map.generated.java.util.AsmMapperFromCsvRowToListInj1_Id.mapFields(Unknown Source)
    at org.simpleflatmapper.map.generated.java.util.AsmMapperFromCsvRowToListInj1_Id.mapFields(Unknown Source)
    at org.simpleflatmapper.map.mapper.AbstractMapper.map(AbstractMapper.java:23)
    at org.simpleflatmapper.map.mapper.MapperFieldMapperGetterAdapter.get(MapperFieldMapperGetterAdapter.java:36)
    at org.simpleflatmapper.map.getter.ContextualGetterBiFunction.apply(ContextualGetterBiFunction.java:65)
    at org.simpleflatmapper.reflect.generated.domain.AsmBiInstantiatorAnalystFromCsvRowAndMappingContextIntoaddressAnddateOfBirthAndfirstNameAndlastNameAndpasswordAndphoneNumberAndqualificationAndsexAndspecializationsListAndusernameAndyearsOfExperience_Ie.newInstance(Unknown Source)
    at org.simpleflatmapper.reflect.generated.domain.AsmBiInstantiatorAnalystFromCsvRowAndMappingContextIntoaddressAnddateOfBirthAndfirstNameAndlastNameAndpasswordAndphoneNumberAndqualificationAndsexAndspecializationsListAndusernameAndyearsOfExperience_Ie.newInstance(Unknown Source)
    at org.simpleflatmapper.map.mapper.AbstractMapper.map(AbstractMapper.java:22)
    at org.simpleflatmapper.map.mapper.ContextualSourceFieldMapperImpl.map(ContextualSourceFieldMapperImpl.java:38)
    at org.simpleflatmapper.map.impl.StaticMapperEnumerable.next(StaticMapperEnumerable.java:27)
    at org.simpleflatmapper.map.mapper.AbstractEnumerableMapper.forEach(AbstractEnumerableMapper.java:33)
    at org.simpleflatmapper.csv.impl.CsvMapperImpl.forEach(CsvMapperImpl.java:98)
    at org.simpleflatmapper.csv.impl.CsvMapperImpl.forEach(CsvMapperImpl.java:23)
    at org.simpleflatmapper.map.mapper.DynamicSetRowMapper.forEach(DynamicSetRowMapper.java:83)
    at org.simpleflatmapper.csv.CsvMapperFactory$DynamicCsvSetRowMapper.forEach(CsvMapperFactory.java:277)
    at org.simpleflatmapper.csv.CsvParser$MapWithDSL.forEach(CsvParser.java:761)
    at org.simpleflatmapper.csv.CsvParser$MapWithDSL.forEach(CsvParser.java:748)
    at org.simpleflatmapper.csv.CsvParser$MapWithDSL.forEach(CsvParser.java:741)
    at manager.ResourceManager.loadData(ResourceManager.java:141)
    at manager.ResourceManager.<init>(ResourceManager.java:46)
    at manager.ResourceManager.getInstance(ResourceManager.java:58)
    at main.Main.main(Main.java:15)

Is this normal?