fix #6095 log duplicate registrations during import IAPT origin/IAPT
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Fri, 16 Sep 2016 22:27:53 +0000 (00:27 +0200)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Fri, 16 Sep 2016 22:27:53 +0000 (00:27 +0200)
app-import/src/main/java/eu/etaxonomy/cdm/app/iapt/IAPTActivator.java
app-import/src/main/java/eu/etaxonomy/cdm/io/iapt/IAPTExcelImport.java

index 08c768cd77e59b5c71c35fa6eaf65cc8d5f5389d..59a1ad8a1abc026b6464eabbe2904f978be1a582 100644 (file)
@@ -44,7 +44,7 @@ public class IAPTActivator {
     public static final String DATA_TYPE_LEG_100 = "iapt-type-leg-100.xls";
     public static final String DATA_NAME_TYPES = "iapt-name-types.xls";
     public static final String DATA_SINGLE = "single.xls";
-    public static final String DATA_FILE = DATA_FILE_0_100;
+    public static final String DATA_FILE = DATA_FILE_FULL;
 
     //database validation status (create, update, validate ...)
     static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
index d02955edbcd28fd2bc2f9211c9e715d391f35527..fb772d19bf95c089ab577838a3ee875414267d02 100644 (file)
@@ -151,8 +151,11 @@ public class IAPTExcelImport<CONFIG extends IAPTImportConfigurator> extends Simp
     DateTimeFormatter formatterYear = DateTimeFormat.forPattern("yyyy");
 
     private Map<String, Collection> collectionMap = new HashMap<>();
+
     private ExtensionType extensionTypeIAPTRegData = null;
 
+    private Set<String> nameSet = new HashSet<>();
+    private DefinedTermBase duplicateRegistration = null;
 
     enum TypesName {
         fieldUnit, holotype, isotype;
@@ -339,6 +342,11 @@ public class IAPTExcelImport<CONFIG extends IAPTImportConfigurator> extends Simp
         if(isFossil){
             taxon.addMarker(Marker.NewInstance(markerTypeFossil(), true));
         }
+        if(!nameSet.add(titleCacheStr)){
+            taxonName.addMarker(Marker.NewInstance(markerDuplicateRegistration(), true));
+            logger.warn(csvReportLine(regNumber, "Duplicate registration of", titleCacheStr));
+        }
+
 
         // Types
         if(!StringUtils.isEmpty(typeStr)){
@@ -1290,6 +1298,14 @@ public class IAPTExcelImport<CONFIG extends IAPTImportConfigurator> extends Simp
         return markerTypeFossil;
     }
 
+    private MarkerType markerDuplicateRegistration(){
+        if(this.duplicateRegistration == null){
+            duplicateRegistration = MarkerType.NewInstance("duplicateRegistration", "duplicateRegistration", null);
+            getTermService().save(this.duplicateRegistration);
+        }
+        return markerTypeFossil;
+    }
+
     private String csvReportLine(String regId, String message, String ... fields){
         StringBuilder out = new StringBuilder("regID#");
         out.append(regId).append(",\"").append(message).append('"');