package ecoparasite.poisson; import ecoparasite.input.DataParsing; import ecoparasite.input.InvalidParsingException; import ecoparasite.input.RawData; import ecoparasite.input.RawDataOverflow; import java.util.HashMap; import java.util.HashSet; import static java.lang.Double.valueOf; /** * Hérite de Poisson. * Ajoute les fonctions de Parsing liés aux données collectées sur le Merlu. */ public class Merlu extends Poisson implements DataParsing { /** * Construteur d'un merlu * @param length Un Wrapper Double representant la longueur/taille du poisson * @param infestation Un Wrapper Double representant le taux de parasite du poisson */ public Merlu(String id, Double length, Double infestation) { super(id, length, null, infestation); } /** * Implémentation de la fonction parse de DataParsing. * Renvoie un tableau de poissons à partir d'un RawData. * * @param data Notre RawData * @param parseTypeId L'ID du type de parsing, ignoré ici. * @return Le tableau de poissons. * @throws RawDataOverflow Si on a un dépassement de données dans notre RawData. */ public static HashSet parse(RawData data, int parseTypeId) throws RawDataOverflow, InvalidParsingException { return Mackerel.parse(data); } /** * Implémentation de la fonction parse de Dataparsing * @param data Notre RawData * @return tableau des poissons * @throws RawDataOverflow Si on a un dépassement des données de notre objet RawData. */ public static HashSet parse(RawData data) throws RawDataOverflow { HashMap temp = new HashMap<>(); HashSet fishSet; fishSet = new HashSet<>(); for (int i = 0; i < data.getData().getFirst().size(); i++) { temp = data.getEntry(i); Poisson newP = new Merlu(temp.get("nom.merlu"),valueOf(temp.get("m.size (mm)")),valueOf(temp.get("number of Anisakis sp L3"))); fishSet.add(newP); } return fishSet; } }