package ecoparasite.population; import ecoparasite.input.DataParsing; import ecoparasite.input.InvalidParsingException; import ecoparasite.input.RawData; import ecoparasite.input.RawDataOverflow; import java.util.HashMap; import java.util.HashSet; /** * Permet de gérer une population selon les années. */ public class Population implements DataParsing { /** * Espèce de la population. */ private String id; /** * Les informations de la population sur le total. */ private PopulationArgs total; /** * Les informations de la population par année. * Clé : Année, Valeur : Informations de la population. */ private HashMap perYear; /** * Constructeur. * @param id Espèce * @param total Les informations totales. * @param perYear Les informations par année. */ public Population(String id, PopulationArgs total, HashMap perYear) { this.id = id; this.total = total; this.perYear = perYear; } /** * Constructeur. * Pour les informations par année, crée une HashMap vide. Devra être rempli après coup. * @param id Espèce de la population. * @param total Les informations totales. */ public Population(String id, PopulationArgs total) { this.id = id; this.total = total; this.perYear = new HashMap<>(); } /** * Constructeur. * Pour les informations du total, sont remplacés par null. * Pour les informations par année, crée une HashMap vide. Devra être rempli après coup. * @param id Espèce de la population. */ public Population(String id) { this.id = id; this.total = null; this.perYear = new HashMap<>(); } /* GETTERS / SETTERS */ public String getId() { return id; } public PopulationArgs getTotal() { return total; } public HashMap getPerYear() { return perYear; } public void setTotal(PopulationArgs total) { this.total = total; } public void setPerYear(HashMap perYear) { this.perYear = perYear; } /** * Raccourci vers les méthodes de DataParsing. * @param data Notre objet RawData. * @param parseTypeId L'ID de parsing. * @return */ public static HashSet parse(RawData data, int parseTypeId ) throws RawDataOverflow, InvalidParsingException { switch (parseTypeId) { case 1: return PopulationParsing.parseParasitesPeru(data); default: throw new InvalidParsingException(parseTypeId, Population.class.getSimpleName() ); } } /** * Raccourci vers les méthodes de DataParsing. * Va par défaut faire ceux des parasites du Perou. * * @param data Notre objet RawData. * @return Notre tableau de populations. */ public static HashSet parse(RawData data){ return PopulationParsing.parseParasitesPeru(data); } }