X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib-apps.git/blobdiff_plain/7519081b9f4de6546e60caa8ea509bc4d21aa9af..e389269164fdac854159ef757d1a7a63ef2ca4d3:/cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java diff --git a/cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java b/cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java index 463b7012..144e6261 100644 --- a/cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java +++ b/cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java @@ -14,6 +14,9 @@ import java.util.UUID; import org.apache.log4j.Logger; import eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer; +import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException; +import eu.etaxonomy.cdm.io.common.mapping.out.ExportTransformerBase; +import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer; import eu.etaxonomy.cdm.io.pesi.erms.ErmsTransformer; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.common.Language; @@ -25,15 +28,12 @@ import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase; import eu.etaxonomy.cdm.model.description.PresenceTerm; import eu.etaxonomy.cdm.model.location.NamedArea; import eu.etaxonomy.cdm.model.location.TdwgArea; -import eu.etaxonomy.cdm.model.name.BacterialName; -import eu.etaxonomy.cdm.model.name.BotanicalName; +import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry; import eu.etaxonomy.cdm.model.name.NameRelationshipType; import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus; import eu.etaxonomy.cdm.model.name.NomenclaturalCode; import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType; import eu.etaxonomy.cdm.model.name.Rank; -import eu.etaxonomy.cdm.model.name.TaxonNameBase; -import eu.etaxonomy.cdm.model.name.ZoologicalName; import eu.etaxonomy.cdm.model.occurrence.Fossil; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.reference.ReferenceType; @@ -49,7 +49,8 @@ import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException; * @date 16.02.2010 * */ -public final class PesiTransformer { +public final class PesiTransformer extends ExportTransformerBase implements IExportTransformer{ + private static final Logger logger = Logger.getLogger(PesiTransformer.class); public static final String auctString = "auct."; @@ -210,6 +211,7 @@ public final class PesiTransformer { public static int IS_POTENTIAL_COMBINATION_FOR = 303; public static String STR_IS_BASIONYM_FOR = "is basionym for"; + public static String STR_IS_BASIONYM_FOR_ZOOL = "is original combination for"; public static String STR_IS_LATER_HOMONYM_OF = "is later homonym of"; public static String STR_IS_REPLACED_SYNONYM_FOR = "is replaced synonym for"; public static String STR_IS_VALIDATION_OF = "is validation of"; @@ -235,7 +237,9 @@ public final class PesiTransformer { public static String STR_IS_PRO_PARTE_SYNONYM_OF = "is pro parte synonym of"; public static String STR_IS_PARTIAL_SYNONYM_OF = "is partial synonym of"; public static String STR_IS_HETEROTYPIC_SYNONYM_OF = "is heterotypic synonym of"; + public static String STR_IS_HETEROTYPIC_SYNONYM_OF_ZOOL = "is subjective synonym of"; public static String STR_IS_HOMOTYPIC_SYNONYM_OF = "is homotypic synonym of"; + private static final String STR_IS_HOMOTYPIC_SYNONYM_OF_ZOOL = "is objective synonym of"; public static String STR_IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF = "is pro parte and homotypic synonym of"; public static String STR_IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF = "is pro parte and heterotypic synonym of"; public static String STR_IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF = "is partial and homotypic synonym of"; @@ -1007,6 +1011,7 @@ public final class PesiTransformer { public static int AREA_BALEAR_SEA = 196; public static int AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE = 197; public static int AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE = 198; + public static int AREA_TRANSCAUCASUS = 199; public static String STR_AREA_EAST_AEGEAN_ISLANDS = "East Aegean Islands"; @@ -1207,6 +1212,7 @@ public final class PesiTransformer { public static String STR_AREA_BALEAR_SEA = "Balear Sea"; public static String STR_AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE = "Turkish Exclusive Economic Zone"; public static String STR_AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE = "Danish Exclusive Economic Zone"; + public static String STR_AREA_TRANSCAUCASUS = "Transcaucasus"; @@ -1252,7 +1258,9 @@ public final class PesiTransformer { */ public static String presenceAbsenceTerm2OccurrenceStatusCache(PresenceAbsenceTermBase term) { String result = null; - if (term.isInstanceOf(PresenceTerm.class)) { + if (term == null){ + return null; + }else if (term.isInstanceOf(PresenceTerm.class)) { PresenceTerm presenceTerm = CdmBase.deproxy(term, PresenceTerm.class); if (presenceTerm.equals(PresenceTerm.PRESENT())) { result = STR_STATUS_PRESENT; @@ -1290,7 +1298,9 @@ public final class PesiTransformer { */ public static Integer presenceAbsenceTerm2OccurrenceStatusId(PresenceAbsenceTermBase term) { Integer result = null; - if (term.isInstanceOf(PresenceTerm.class)) { + if (term == null){ + return null; + }else if (term.isInstanceOf(PresenceTerm.class)) { PresenceTerm presenceTerm = CdmBase.deproxy(term, PresenceTerm.class); if (presenceTerm.equals(PresenceTerm.PRESENT())) { result = STATUS_PRESENT; @@ -1326,11 +1336,11 @@ public final class PesiTransformer { * @return */ public static String area2AreaCache(NamedArea area) { + NamedArea namedArea = CdmBase.deproxy(area, NamedArea.class); if (area == null) { return null; } else if (area.isInstanceOf(TdwgArea.class)) { - NamedArea namedArea = CdmBase.deproxy(area, NamedArea.class); - + // TODO: Areas identified by the string "TODO" (for now) have to be identified correctly after additions have been made to the list of NamedArea's according to specific imports, i.e. euro+med if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_EAST_AEGEAN_ISLANDS; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("EAI")) { return STR_AREA_GREEK_EAST_AEGEAN_ISLANDS; } @@ -1425,10 +1435,8 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-LI")) { return STR_AREA_LITHUANIA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POR")) { return STR_AREA_PORTUGUESE_MAINLAND; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POR-OO")) { return STR_AREA_PORTUGUESE_MAINLAND; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR")) { return STR_AREA_MADEIRA; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR-OO")) { return STR_AREA_MADEIRA; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_DESERTAS; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_PORTO_SANTO; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR")) { return STR_AREA_MADEIRA_ARCHIPELAGO; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR-OO")) { return STR_AREA_MADEIRA_ARCHIPELAGO; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-MA")) { return STR_AREA_THE_FORMER_JUGOSLAV_REPUBLIC_OF_MAKEDONIJA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("UKR-MO")) { return STR_AREA_MOLDOVA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NOR")) { return STR_AREA_NORWEGIAN_MAINLAND; } @@ -1451,12 +1459,7 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUS-OO")) { return STR_AREA_SOUTH_EUROPEAN_RUSSIA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ROM")) { return STR_AREA_ROMANIA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ROM-OO")) { return STR_AREA_ROMANIA; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FORMER_USSR; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_BALTIC; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUC")) { return STR_AREA_RUSSIA_CENTRAL; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_SOUTHEAST; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUN")) { return STR_AREA_RUSSIA_NORTHERN; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_SOUTHWEST; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SAR")) { return STR_AREA_SARDEGNA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SAR-OO")) { return STR_AREA_SARDEGNA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SVA")) { return STR_AREA_SVALBARD_WITH_BJORNOYA_AND_JAN_MAYEN; } @@ -1474,7 +1477,6 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SWE-OO")) { return STR_AREA_SWEDEN; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUE")) { return STR_AREA_EUROPEAN_TURKEY; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUE-OO")) { return STR_AREA_EUROPEAN_TURKEY; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_UKRAINE_INCLUDING_CRIMEA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRY")) { return STR_AREA_CRIMEA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRY-OO")) { return STR_AREA_CRIMEA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("UKR-UK")) { return STR_AREA_UKRAINE; } @@ -1521,6 +1523,8 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NEO")) { return STR_AREA_NEOTROPICAL_REGION; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NRE")) { return STR_AREA_NEAR_EAST; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ORR")) { return STR_AREA_ORIENTAL_REGION; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TCS")) { return STR_AREA_TRANSCAUCASUS; } + else if (namedArea.getUuid().equals(ErmsTransformer.uuidEuropeanMarineWaters)) { return STR_AREA_EUROPEAN_MARINE_WATERS; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MES") || (namedArea.getUuid().equals(ErmsTransformer.uuidMediterraneanSea))) { return STR_AREA_MEDITERRANEAN_SEA; } // abbreviated label missing @@ -1575,26 +1579,65 @@ public final class PesiTransformer { else if (namedArea.getUuid().equals(ErmsTransformer.uuidBalearSea)) { return STR_AREA_BALEAR_SEA; } else if (namedArea.getUuid().equals(ErmsTransformer.uuidTurkishExclusiveEconomicZone)) { return STR_AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE; } else if (namedArea.getUuid().equals(ErmsTransformer.uuidDanishExclusiveEconomicZone)) { return STR_AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE; } + else { + logger.error("Unknown NamedArea Area: " + area.getTitleCache()); + return null; // Actually the export has to stop here because AreaFk's are not allowed to be NULL. + } + }else { + if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidMadeira))){ return STR_AREA_MADEIRA; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidDesertas))) { return STR_AREA_DESERTAS; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidPortoSanto))) { return STR_AREA_PORTO_SANTO; } + else if ((namedArea.equals(WaterbodyOrCountry.UKRAINE()))) { return STR_AREA_UKRAINE_INCLUDING_CRIMEA; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaBaltic))) { return STR_AREA_RUSSIA_BALTIC; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaSouthEast))) { return STR_AREA_RUSSIA_SOUTHEAST; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaSouthWest))) { return STR_AREA_RUSSIA_SOUTHWEST; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidUssr))) { return STR_AREA_FORMER_USSR; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaCentral))) { return STR_AREA_RUSSIA_CENTRAL; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaNorthern))) { return STR_AREA_RUSSIA_NORTHERN; } + else { logger.error("Unknown NamedArea Area: " + area.getTitleCache()); return null; // Actually the export has to stop here because AreaFk's are not allowed to be NULL. } } - return null; // Actually the export has to stop here because AreaFk's are not allowed to be NULL. - + } + + @Override + public String getCacheByPresenceAbsenceTerm(PresenceAbsenceTermBase status) throws UndefinedTransformerMethodException { + return presenceAbsenceTerm2OccurrenceStatusCache(status); + } + + @Override + public Object getKeyByPresenceAbsenceTerm(PresenceAbsenceTermBase status) throws UndefinedTransformerMethodException { + return presenceAbsenceTerm2OccurrenceStatusId(status); + } + + + + @Override + public String getCacheByNamedArea(NamedArea area) throws UndefinedTransformerMethodException { + return area2AreaCache(area); + } + + + @Override + public Object getKeyByNamedArea(NamedArea area) throws UndefinedTransformerMethodException { + return area2AreaId(area); } + /** * Returns the AreaId for a given Area. * @param area * @return */ public static Integer area2AreaId(NamedArea area) { + NamedArea namedArea = CdmBase.deproxy(area, NamedArea.class); + if (area == null) { return null; } else if (area.isInstanceOf(TdwgArea.class)) { - NamedArea namedArea = CdmBase.deproxy(area, NamedArea.class); - + // TODO: Areas identified by the string "TODO" (for now) have to be identified correctly after additions have been made to the list of NamedArea's according to specific imports, i.e. euro+med if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_EAST_AEGEAN_ISLANDS; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("EAI")) { return AREA_GREEK_EAST_AEGEAN_ISLANDS; } @@ -1689,10 +1732,8 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-LI")) { return AREA_LITHUANIA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POR")) { return AREA_PORTUGUESE_MAINLAND; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POR-OO")) { return AREA_PORTUGUESE_MAINLAND; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR")) { return AREA_MADEIRA; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR-OO")) { return AREA_MADEIRA; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_DESERTAS; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_PORTO_SANTO; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR")) { return AREA_MADEIRA_ARCHIPELAGO; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR-OO")) { return AREA_MADEIRA_ARCHIPELAGO; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-MA")) { return AREA_THE_FORMER_JUGOSLAV_REPUBLIC_OF_MAKEDONIJA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("UKR-MO")) { return AREA_MOLDOVA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NOR")) { return AREA_NORWEGIAN_MAINLAND; } @@ -1715,12 +1756,7 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUS-OO")) { return AREA_SOUTH_EUROPEAN_RUSSIA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ROM")) { return AREA_ROMANIA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ROM-OO")) { return AREA_ROMANIA; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FORMER_USSR; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_BALTIC; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUC")) { return AREA_RUSSIA_CENTRAL; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_SOUTHEAST; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUN")) { return AREA_RUSSIA_NORTHERN; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_SOUTHWEST; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SAR")) { return AREA_SARDEGNA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SAR-OO")) { return AREA_SARDEGNA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SVA")) { return AREA_SVALBARD_WITH_BJORNOYA_AND_JAN_MAYEN; } @@ -1738,7 +1774,6 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SWE-OO")) { return AREA_SWEDEN; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUE")) { return AREA_EUROPEAN_TURKEY; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUE-OO")) { return AREA_EUROPEAN_TURKEY; } - else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_UKRAINE_INCLUDING_CRIMEA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRY")) { return AREA_CRIMEA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRY-OO")) { return AREA_CRIMEA; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("UKR-UK")) { return AREA_UKRAINE; } @@ -1785,6 +1820,8 @@ public final class PesiTransformer { else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NEO")) { return AREA_NEOTROPICAL_REGION; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NRE")) { return AREA_NEAR_EAST; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ORR")) { return AREA_ORIENTAL_REGION; } + else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TCS")) { return AREA_TRANSCAUCASUS; } + else if (namedArea.getUuid().equals(ErmsTransformer.uuidEuropeanMarineWaters)) { return AREA_EUROPEAN_MARINE_WATERS; } else if ((namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MES") || (namedArea.getUuid().equals(ErmsTransformer.uuidMediterraneanSea))) { return AREA_MEDITERRANEAN_SEA; } // abbreviated label missing @@ -1839,9 +1876,25 @@ public final class PesiTransformer { else if (namedArea.getUuid().equals(ErmsTransformer.uuidBalearSea)) { return AREA_BALEAR_SEA; } else if (namedArea.getUuid().equals(ErmsTransformer.uuidTurkishExclusiveEconomicZone)) { return AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE; } else if (namedArea.getUuid().equals(ErmsTransformer.uuidDanishExclusiveEconomicZone)) { return AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE; } + else { + logger.error("Unknown TDWGArea: " + area.getTitleCache()); + } + }else{ //Non TDWG + if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidMadeira))){ return AREA_MADEIRA; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidDesertas))) { return AREA_DESERTAS; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidPortoSanto))) { return AREA_PORTO_SANTO; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaBaltic))) { return AREA_RUSSIA_BALTIC; } + else if ((namedArea.equals(WaterbodyOrCountry.UKRAINE()))) { return AREA_UKRAINE_INCLUDING_CRIMEA; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaSouthEast))) { return AREA_RUSSIA_SOUTHEAST; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaSouthWest))) { return AREA_RUSSIA_SOUTHWEST; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidUssr))) { return AREA_FORMER_USSR; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaCentral))) { return AREA_RUSSIA_CENTRAL; } + else if ((namedArea.getUuid().equals(BerlinModelTransformer.uuidRussiaNorthern))) { return AREA_RUSSIA_NORTHERN; } + else { logger.error("Unknown NamedArea Area: " + area.getTitleCache()); } + } return null; @@ -2278,7 +2331,7 @@ public final class PesiTransformer { * @param feature * @return */ - public static Integer textData2NodeCategoryFk(Feature feature) { + public static Integer feature2NodeCategoryFk(Feature feature) { if (feature == null) { return null; } @@ -2345,8 +2398,8 @@ public final class PesiTransformer { return NoteCategory_Identification; } else if (feature.getUuid().equals(ErmsTransformer.uuidSynonymy)) { return NoteCategory_Synonymy; -// } else if (feature.equals(Feature.CITATION())) { -// return; + } else if (feature.equals(Feature.CITATION())) { + return null; //citations are handled differently // TODO: Unknown NodeCategories // NoteCategory_general_distribution_euromed = 10; @@ -2370,7 +2423,7 @@ public final class PesiTransformer { // NoteCategory_Host = 283; }else{ - logger.warn("Unknown Feature: " + feature.getTitleCache()); + logger.warn("Unhandled Feature: " + feature.getTitleCache()); return null; } } @@ -2693,28 +2746,6 @@ public final class PesiTransformer { } return result; } - - /** - * Returns the NomenclaturalCode for a given TaxonNameBase. - * @param taxonName - * @return - */ - public static NomenclaturalCode getNomenclaturalCode(TaxonNameBase taxonName) { - NomenclaturalCode code = null; - if (taxonName.isInstanceOf(ZoologicalName.class)) { - code = NomenclaturalCode.ICZN; - } else if (taxonName.isInstanceOf(BotanicalName.class)) { - code = NomenclaturalCode.ICBN; - } else if (taxonName.isInstanceOf(BacterialName.class)) { - code = NomenclaturalCode.ICNB; -// } else if (taxonName.isInstanceOf(NonViralName.class)) { // Biota -// code = NomenclaturalCode. - } else { - logger.error("NomenclaturalCode could not be determined for this TaxonName: " + taxonName.getUuid() + " (" + taxonName.getTitleCache() + ")"); - logger.error(""); - } - return code; - } /** * Returns the RankId for a Rank. @@ -3183,75 +3214,7 @@ public final class PesiTransformer { * @param relation * @return */ - public static String taxonRelation2RelTaxonQualifierCache(RelationshipBase relation){ - if (relation == null) { - return null; - } - RelationshipTermBase type = relation.getType(); - if (type.equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) { - return STR_IS_MISAPPLIED_NAME_FOR; - } else if (type.equals(SynonymRelationshipType.SYNONYM_OF())) { - return STR_IS_SYNONYM_OF; - } else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) { - return STR_IS_HOMOTYPIC_SYNONYM_OF; - } else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) { - return STR_IS_HETEROTYPIC_SYNONYM_OF; - } else if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())) { - return STR_IS_INFERRED_EPITHET_FOR; - } else if (type.equals(SynonymRelationshipType.INFERRED_GENUS_OF())) { - return STR_IS_INFERRED_GENUS_FOR; - } else if (type.equals(SynonymRelationshipType.POTENTIAL_COMBINATION_OF())) { - return STR_IS_POTENTIAL_COMBINATION_FOR; - } else if (type.equals(NameRelationshipType.BASIONYM())) { - return STR_IS_BASIONYM_FOR; - } else if (type.equals(NameRelationshipType.LATER_HOMONYM())) { - return STR_IS_LATER_HOMONYM_OF; - } else if (type.equals(NameRelationshipType.REPLACED_SYNONYM())) { - return STR_IS_REPLACED_SYNONYM_FOR; - } else if (type.equals(NameRelationshipType.VALIDATED_BY_NAME())) { - return STR_IS_VALIDATION_OF; - } else if (type.equals(NameRelationshipType.LATER_VALIDATED_BY_NAME())) { - return STR_IS_LATER_VALIDATION_OF; - } else if (type.equals(NameRelationshipType.CONSERVED_AGAINST())) { - return STR_IS_CONSERVED_AGAINST; - } else if (type.equals(NameRelationshipType.TREATED_AS_LATER_HOMONYM())) { - return STR_IS_TREATED_AS_LATER_HOMONYM_OF; - } else if (type.equals(NameRelationshipType.ORTHOGRAPHIC_VARIANT())) { - return STR_IS_ORTHOGRAPHIC_VARIANT_OF; - } else if (type.equals(NameRelationshipType.ALTERNATIVE_NAME())) { - return STR_IS_ALTERNATIVE_NAME_FOR; - } else { - logger.warn("No equivalent RelationshipType found in datawarehouse for: " + type.getTitleCache()); - } - - // The following have no equivalent attribute in CDM -// IS_TYPE_OF -// IS_CONSERVED_TYPE_OF -// IS_REJECTED_TYPE_OF -// IS_FIRST_PARENT_OF -// IS_SECOND_PARENT_OF -// IS_FEMALE_PARENT_OF -// IS_MALE_PARENT_OF -// IS_REJECTED_IN_FAVOUR_OF -// HAS_SAME_TYPE_AS -// IS_LECTOTYPE_OF -// TYPE_NOT_DESIGNATED -// IS_PRO_PARTE_SYNONYM_OF -// IS_PARTIAL_SYNONYM_OF -// IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF -// IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF -// IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF -// IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF - - return null; - } - - /** - * Returns the RelTaxonQualifierCache for a given zoological taxonRelation. - * @param relation - * @return - */ - public static String zoologicalTaxonRelation2RelTaxonQualifierCache(RelationshipBase relation){ + public static String taxonRelation2RelTaxonQualifierCache(RelationshipBase relation, NomenclaturalCode code){ if (relation == null) { return null; } @@ -3261,9 +3224,17 @@ public final class PesiTransformer { } else if (type.equals(SynonymRelationshipType.SYNONYM_OF())) { return STR_IS_SYNONYM_OF; } else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) { - return "is objective synonym of"; + if (code.equals(NomenclaturalCode.ICZN)){ + return STR_IS_HOMOTYPIC_SYNONYM_OF_ZOOL; + }else{ + return STR_IS_HOMOTYPIC_SYNONYM_OF; + } } else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) { - return "is subjective synonym of"; + if (code.equals(NomenclaturalCode.ICZN)){ + return STR_IS_HETEROTYPIC_SYNONYM_OF_ZOOL; + }else{ + return STR_IS_HETEROTYPIC_SYNONYM_OF; + } } else if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())) { return STR_IS_INFERRED_EPITHET_FOR; } else if (type.equals(SynonymRelationshipType.INFERRED_GENUS_OF())) { @@ -3271,7 +3242,11 @@ public final class PesiTransformer { } else if (type.equals(SynonymRelationshipType.POTENTIAL_COMBINATION_OF())) { return STR_IS_POTENTIAL_COMBINATION_FOR; } else if (type.equals(NameRelationshipType.BASIONYM())) { - return "is original combination for"; + if (code.equals(NomenclaturalCode.ICZN)){ + return STR_IS_BASIONYM_FOR_ZOOL; + }else{ + return STR_IS_BASIONYM_FOR; + } } else if (type.equals(NameRelationshipType.LATER_HOMONYM())) { return STR_IS_LATER_HOMONYM_OF; } else if (type.equals(NameRelationshipType.REPLACED_SYNONYM())) {