package ecoparasite; import ecoparasite.input.InputFactory; import ecoparasite.input.InputFileException; import ecoparasite.input.RawData; import ecoparasite.input.RawDataOverflow; import ecoparasite.population.Population; import ecoparasite.population.PopulationArgInterval; import ecoparasite.population.PopulationArgs; import java.util.HashMap; import java.util.HashSet; public class LectureEval { public static HashSet parseEval( RawData popRaw ){ HashSet popEspece = new HashSet<>(); int index = 1; try { while(true){ HashMap fields = popRaw.getEntry(index); String espece = fields.get("Espèce"); Population population = new Population(espece); if( population.getTotal() == null ){ population.setTotal( new PopulationArgs() ); } for( String k: fields.keySet() ){ if( k.equals("Espèce") ) continue; LectureEval.applyValueForPopEval( population.getTotal(), k, fields.get(k) ); } popEspece.add(population); index++; } } catch (RawDataOverflow e) { // Fin de la liste. } return popEspece; } public static void applyValueForPopEval( PopulationArgs popArgs, String column, String value ){ if( value == null || value == "" ) // On n'ajoute pas les valeurs nulles. return; switch (column){ case "zone": popArgs.setZone(value); break; case "N": popArgs.setNumber( Integer.parseInt(value) ); break; case "Prevalence": popArgs.setPrevalence(PopulationArgInterval.fromString(value)); break; case "LT mm": popArgs.setLength(PopulationArgInterval.fromString(value)); break; case "Masse g": popArgs.setWidth(PopulationArgInterval.fromString(value)); break; default: break; } } public static void main(String[] args) throws RawDataOverflow { RawData popRaw; try { popRaw = InputFactory.readData("test3.csv", "," ); } catch(InputFileException e) { System.out.println(e.getMessage()); return; } HashSet pop = parseEval(popRaw); // System.out.println( popRaw.getEntry(1) ); for( Population p: pop){ System.out.println(p); } } }