import au.com.bytecode.opencsv.CSVWriter;
import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.Language;
protected static Map<UUID, NamedArea> termMap = null;
protected static Map<String, UUID> labelMap = null;
-
+ protected static Map<String, UUID> isoA2Map = null;
+
private static final UUID uuidAfghanistan = UUID.fromString("974ce01a-5bce-4be8-b728-a46869354960");
private static final UUID uuidAlbaniaPeoplesSocialistRepublicof = UUID.fromString("238a6a93-8857-4fd6-af9e-6437c90817ac");
private static final UUID uuidAlgeriaPeoplesDemocraticRepublicof = UUID.fromString("a14b38ac-e963-4c1a-85c2-de1f17f8c72a");
private static void initMaps(){
labelMap = new HashMap<String, UUID>();
termMap = new HashMap<UUID, NamedArea>();
+ isoA2Map = new HashMap<String, UUID>();
}
/**
return null;
}
return (WaterbodyOrCountry)termMap.get(uuid);
-
}
+
+ public static WaterbodyOrCountry getWaterbodyOrCountryByIso3166A2(String isoA2) {
+ if (isoA2Map == null){
+ initMaps();
+ }
+ UUID uuid = isoA2Map.get(isoA2);
+ if (uuid == null){
+ logger.info("Unknown country: " + CdmUtils.Nz(isoA2));
+ return null;
+ }
+ return (WaterbodyOrCountry)termMap.get(uuid);
+ }
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
for (NamedArea term : termVocabulary.getTerms()){
labelMap.put(term.getLabel(), term.getUuid());
}
+ for (NamedArea term : termVocabulary.getTerms()){
+ WaterbodyOrCountry country = CdmBase.deproxy(term, WaterbodyOrCountry.class);
+ isoA2Map.put(country.getIso3166_A2(), term.getUuid());
+ }
}