- fixed rank parsing
authorPatric Plitzner <p.plitzner@bgbm.org>
Thu, 12 Mar 2015 18:20:38 +0000 (18:20 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Thu, 12 Mar 2015 18:20:38 +0000 (18:20 +0000)
 - added deprecate annotation to config option

cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/abcd206/in/Abcd206Import.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/abcd206/in/Abcd206ImportConfigurator.java

index 9c9a6a61095671a3883367e57bf8286493934456..cfc19d093a5c88310895830ada6b132858ffacd4 100644 (file)
@@ -1575,6 +1575,22 @@ public class Abcd206Import extends SpecimenImportBase<Abcd206ImportConfigurator,
     private TaxonNameBase<?, ?> getOrCreateTaxonName(String scientificName, Rank rank, Abcd206ImportState state, int unitIndexInAbcdFile){
         TaxonNameBase<?, ?> taxonName = null;
         Abcd206ImportConfigurator config = state.getConfig();
+
+        //check atomised name data for rank
+        NonViralName<?> atomisedTaxonName = null;
+        if (rank==null && unitIndexInAbcdFile>=0 && (dataHolder.atomisedIdentificationList != null || dataHolder.atomisedIdentificationList.size() > 0)) {
+            atomisedTaxonName = setTaxonNameByType(dataHolder.atomisedIdentificationList.get(unitIndexInAbcdFile), scientificName);
+            if(atomisedTaxonName!=null){
+                rank = atomisedTaxonName.getRank();
+            }
+        }
+        if(rank==null){
+            String message = "No rank specified for "+derivedUnitBase+". Assuming species.";
+            report.addInfoMessage(message);
+            logger.warn(message);
+            rank = Rank.SPECIES();
+        }
+
         if(config.isReuseExistingTaxaWhenPossible()){
             if(config.isIgnoreAuthorship()){
                 NonViralName<?> parsedName = parseScientificName(scientificName);
@@ -1592,14 +1608,17 @@ public class Abcd206Import extends SpecimenImportBase<Abcd206ImportConfigurator,
         }
         else if (config.isParseNameAutomatically()){
             taxonName = parseScientificName(scientificName);
-        }
-        else {
-            //check for atomised name data
-            if (unitIndexInAbcdFile>=0 && (dataHolder.atomisedIdentificationList != null || dataHolder.atomisedIdentificationList.size() > 0)) {
-                taxonName = setTaxonNameByType(dataHolder.atomisedIdentificationList.get(unitIndexInAbcdFile), scientificName);
+            if(taxonName!=null){
+                report.addName(taxonName);
+                logger.info("Created new taxon name "+taxonName);
             }
         }
-        if(taxonName==null){
+        if(taxonName==null && atomisedTaxonName!=null){
+            taxonName = atomisedTaxonName;
+            report.addName(taxonName);
+            logger.info("Created new taxon name "+taxonName);
+        }
+        else if(taxonName==null){
             //create new taxon name
             taxonName = NonViralName.NewInstance(rank);
             taxonName.setFullTitleCache(scientificName,true);
index 2a46d78cd822bfed615dadb0b82ae6fc1034e98c..25f253c85626b9de1d898a0368224e86f2c672a2 100644 (file)
@@ -38,6 +38,8 @@ public class Abcd206ImportConfigurator extends ImportConfiguratorBase<Abcd206Imp
     private static final Logger logger = Logger.getLogger(Abcd206ImportConfigurator.class);\r
 \r
     private static String sourceReferenceTitle = null;\r
+    @Deprecated\r
+    //FIXME what does this do?\r
     private boolean parseNameAutomatically = false;\r
     private boolean reuseExistingMetadata = true;\r
     private String taxonReference = null;\r
@@ -205,11 +207,11 @@ public class Abcd206ImportConfigurator extends ImportConfiguratorBase<Abcd206Imp
         }\r
         return sourceReference;\r
     }\r
-\r
+    @Deprecated\r
     public void setParseNameAutomatically(boolean doParsing){\r
         this.parseNameAutomatically=doParsing;\r
     }\r
-\r
+    @Deprecated\r
     public boolean isParseNameAutomatically(){\r
         return this.parseNameAutomatically;\r
     }\r