package uni.projecte.dataTypes; import java.util.ArrayList; import java.util.HashMap; import uni.projecte.dataLayer.utils.TaxonUtils; import uni.projecte.maps.UTMDisplay; import edu.ub.bio.biogeolib.CoordConverter; import edu.ub.bio.biogeolib.CoordinateLatLon; import edu.ub.bio.biogeolib.CoordinateUTM; public class LocalTaxonSet { ArrayList<LocalTaxon> taxonList; HashMap<String, String> uniqueNameList; private String utm; public LocalTaxonSet(String utm){ this.utm=utm; taxonList=new ArrayList<LocalTaxon>(); uniqueNameList= new HashMap<String, String>(); } public LocalTaxonSet(){ taxonList=new ArrayList<LocalTaxon>(); uniqueNameList= new HashMap<String, String>(); } public ArrayList<LocalTaxon> getTaxonList(){ return taxonList; } public HashMap<String, String> getUniqueNameList() { return uniqueNameList; } public String getUtm() { return utm; } public void addTaxon(long id,String taxon, double latitude, double longitude, String date){ taxon=taxon.replace(" "," "); String taxonWOAuthor=TaxonUtils.removeAuthors(taxon); CoordinateUTM utmC = CoordConverter.getInstance().toUTM(new CoordinateLatLon(latitude,longitude)); String utmS=UTMDisplay.getBdbcUTM10x10(utmC.getShortForm()); if(latitude<100 && longitude<190 && utm.equals(utmS)){ if(uniqueNameList.get(taxonWOAuthor+":"+utmS) == null){ taxonList.add(new LocalTaxon(id,taxon, latitude, longitude, date)); uniqueNameList.put(taxonWOAuthor+":"+utmS, date); } } } public void insertTaxon(long id,String taxon, double latitude, double longitude, String date){ taxon=taxon.replace(" "," "); String taxonWOAuthor=TaxonUtils.removeAuthors(taxon); if(uniqueNameList.get(taxonWOAuthor) == null){ taxonList.add(new LocalTaxon(id,taxon, latitude, longitude, date)); uniqueNameList.put(taxonWOAuthor, date); } } public boolean existsTaxon(String taxon){ if(uniqueNameList.get(taxon+":"+utm) != null) return true; else return false; } }