ref #10273, ref #10446 add subsection and ipni ID to content export and doc for backb...
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / wfo / out / WfoContentExport.java
index 8b1f6800b84bf5192735a5053743bdfd5401c218..9101a8d51bc9f23273eeefc2de82e1248eeca744 100644 (file)
@@ -207,6 +207,7 @@ public class WfoContentExport
                 allowedRanks.add(Rank.GENUS());
                 allowedRanks.add(Rank.SUBGENUS());
                 allowedRanks.add(Rank.SECTION_BOTANY());
+                allowedRanks.add(Rank.SUBSECTION_BOTANY());
                 allowedRanks.add(Rank.SPECIES());
                 allowedRanks.add(Rank.SUBSPECIES());
                 allowedRanks.add(Rank.VARIETY());
@@ -707,7 +708,8 @@ public class WfoContentExport
 
             //scientificNameID
             //TODO 9 add IPNI ID if exists
-            csvLine[table.getIndex(WfoContentExportTable.NAME_SCIENTIFIC_NAME_ID)] = null;
+            boolean warnIfNotExists = false;
+            csvLine[table.getIndex(WfoContentExportTable.NAME_SCIENTIFIC_NAME_ID)] = getIpniId(state, name, warnIfNotExists);
 
             //scientificName
             if (name.isProtectedTitleCache()) {
@@ -764,6 +766,15 @@ public class WfoContentExport
         return wfoId;
     }
 
+    private String getIpniId(WfoContentExportState state, TaxonName name, boolean warnIfNotExists) {
+        Identifier ipniId = name.getIdentifier(IdentifierType.uuidIpniNameIdentifier);
+        if (ipniId == null && warnIfNotExists) {
+            String message = "No ipni-id given for name: " + name.getTitleCache()+"/"+ name.getUuid();
+            state.getResult().addWarning(message);  //TODO 5 data location
+        }
+        return ipniId == null ? null : ipniId.getIdentifier();
+    }
+
     private String getWfoId(WfoContentExportState state, TaxonName name, boolean warnIfNotExists) {
         Identifier wfoId = name.getIdentifier(IdentifierType.uuidWfoNameIdentifier);
         if (wfoId == null && warnIfNotExists) {