Latest updates to Specimen Excel import
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 17 Apr 2014 14:48:29 +0000 (14:48 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 17 Apr 2014 14:48:29 +0000 (14:48 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/excel/common/ExcelTaxonOrSpecimenImportBase.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/excel/in/ExtensionTypeExcelImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/excel/in/NamedAreaLevelExcelImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/excel/in/SpecimenCdmExcelImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/excel/in/SpecimenCdmExcelTransformer.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/excel/in/SpecimenRow.java

index 1b1389260dc408ac350cb329c7e66723ff0a7d8a..3fdf40fcdf9df044b4da5c48ef1870bc50cf870b 100644 (file)
@@ -48,6 +48,8 @@ public abstract class ExcelTaxonOrSpecimenImportBase<STATE extends ExcelImportSt
        protected static final String GENUS_COLUMN = "(?i)(Genus)";\r
        protected static final String SPECIFIC_EPITHET_COLUMN = "(?i)(SpecificEpi(thet)?)";\r
        protected static final String INFRASPECIFIC_EPITHET_COLUMN = "(?i)(InfraSpecificEpi(thet)?)";\r
+       \r
+       protected static final String LANGUAGE = "(?i)(Language)";\r
 \r
        @Override\r
        protected void analyzeRecord(HashMap<String, String> record, STATE state) {\r
index 333725efdc6b236e7d0db4677aca763d4059d86c..5f0bfa241c54fdcc4228c8c8d189ffa5fd4f3856 100644 (file)
@@ -23,9 +23,8 @@ import eu.etaxonomy.cdm.io.excel.common.ExcelImporterBase;
 import eu.etaxonomy.cdm.model.common.ExtensionType;
 
 /**
- * @author p.kelbert
- * @created 29.10.2008
- * @version 1.0
+ * @author a.mueller
+ * @created 18.05.2010
  */
 @Component
 public class ExtensionTypeExcelImport  extends ExcelImporterBase<SpecimenCdmExcelImportState>  implements ICdmIO<SpecimenCdmExcelImportState> {
index f7f0f936eccec098e14909c4f375b5e08433aa1a..6f8e1a526aed7995c66d60eb73fa9da4228d3460 100644 (file)
@@ -23,9 +23,8 @@ import eu.etaxonomy.cdm.io.excel.common.ExcelImporterBase;
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
 
 /**
- * @author p.kelbert
- * @created 29.10.2008
- * @version 1.0
+ * @author a.mueller
+ * @created 15.05.2010
  */
 @Component
 public class NamedAreaLevelExcelImport  extends ExcelImporterBase<SpecimenCdmExcelImportState>  implements ICdmIO<SpecimenCdmExcelImportState> {
index 90c6fad2167dd5ae1ea77e33d340261074dba488..e4e81cb7d0bd4ba2b87491923c77c3387ab627a1 100644 (file)
@@ -185,7 +185,8 @@ public class SpecimenCdmExcelImport  extends ExcelTaxonOrSpecimenImportBase<Spec
                        }else{
                                logger.warn("Not yet implemented");
                        }
-               
+               } else if(keyValue.key.matches(LANGUAGE)) {
+                       row.setLanguage(value);         
                        
                        
                } else if(keyValue.key.matches(ACCESSION_NUMBER_COLUMN)) {
@@ -266,6 +267,18 @@ public class SpecimenCdmExcelImport  extends ExcelTaxonOrSpecimenImportBase<Spec
                }
                DerivedUnitFacade facade = DerivedUnitFacade.NewInstance(type);
                
+               
+               Language lang = Language.DEFAULT();
+               if (StringUtils.isNotBlank(row.getLanguage())){
+                       Language langIso = getTermService().getLanguageByIso(row.getLanguage());
+                       if (langIso == null){
+                               String message = "Language could not be recognized: %s. Use default language instead. Line %d.";
+                               message = String.format(message, langIso, state.getCurrentLine());
+                       }else{
+                               lang = langIso;
+                       }
+               }
+               
                //country
                handleCountry(facade, row, state);
                handleAreas(facade,row, state);
@@ -274,15 +287,14 @@ public class SpecimenCdmExcelImport  extends ExcelTaxonOrSpecimenImportBase<Spec
                facade.setLocality(row.getLocality());
                facade.setFieldNotes(row.getFieldNotes());
                facade.setFieldNumber(row.getCollectorsNumber());
-               facade.setEcology(row.getEcology());
-               facade.setPlantDescription(row.getPlantDescription());
+               facade.setEcology(row.getEcology(), lang);
+               facade.setPlantDescription(row.getPlantDescription(), lang);
 //             facade.setSex(row.get)
                handleExactLocation(facade, row, state);
                facade.setCollector(getOrMakeAgent(state, row.getCollectors()));
                facade.setPrimaryCollector(getOrMakePrimaryCollector(facade, row.getPrimaryCollector(), state));
                handleAbsoluteElevation(facade, row, state);
                
-               
                //derivedUnit
                facade.setBarcode(row.getBarcode());
                facade.setAccessionNumber(row.getAccessionNumber());
@@ -871,6 +883,7 @@ public class SpecimenCdmExcelImport  extends ExcelTaxonOrSpecimenImportBase<Spec
                        try {
                                refSys = state.getTransformer().getReferenceSystemByKey(strRefSys);
                                if (refSys == null){
+                                       //TODO we still need user defined Reference Systems here
                                        refUuid = state.getTransformer().getReferenceSystemUuid(strRefSys);
                                        if (refUuid == null){
                                                String message = "Unknown reference system %s in line %d";
index 24ff4f55ce438d619745f68dbb5aad350cc9ac99..febf7818c5649b68f78f496747c8bfc1d6662f86 100644 (file)
@@ -33,13 +33,16 @@ public final class SpecimenCdmExcelTransformer extends InputTransformerBase {
        public static final UUID uuidRefSysEstimated = UUID.fromString("3b625520-e5cf-4d9c-9599-0cb048e0e8d2");\r
        public static final UUID uuidRefSysLabel = UUID.fromString("c72335ed-c9aa-4d1c-b6fc-9f307d207862");\r
        public static final UUID uuidRefSysGps = UUID.fromString("b3c36751-b2ac-47f7-8ac1-3dc5c129e0b2");\r
+       public static final UUID uuidRefSysUtm = UUID.fromString("bc64f335-a80a-432a-82ff-5c08a308324f");\r
+       public static final UUID uuidRefSysDescription = UUID.fromString("a9c42b52-c8cf-4658-86ce-271dca569f2c");\r
+       public static final UUID uuidRefSysMapBR = UUID.fromString("64b8dc38-e532-45bf-bea7-86b9467973a1");\r
+       public static final UUID uuidRefSysUnsure = UUID.fromString("91781b31-29e9-4807-8172-e7e25433ea06");\r
+       \r
+       \r
        \r
        \r
        //Languages\r
        \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getMarkerTypeByKey(java.lang.String)\r
-        */\r
        @Override\r
        public SpecimenTypeDesignationStatus getSpecimenTypeDesignationStatusByKey(String key) throws UndefinedTransformerMethodException {\r
                return super.getSpecimenTypeDesignationStatusByKey(key);\r
@@ -67,6 +70,10 @@ public final class SpecimenCdmExcelTransformer extends InputTransformerBase {
                }else if (key.matches("(?i)(estimated)")){return uuidRefSysEstimated;\r
                }else if (key.matches("(?i)(label)")){return uuidRefSysLabel;\r
                }else if (key.matches("(?i)(gps)")){return uuidRefSysLabel;\r
+               }else if (key.matches("(?i)(utm)")){return uuidRefSysUtm;\r
+               }else if (key.matches("(?i)(description)")){return uuidRefSysDescription;\r
+               }else if (key.matches("(?i)(mapBR)")){return uuidRefSysMapBR;\r
+               }else if (key.matches("(?i)(Unsure)")){return uuidRefSysUnsure;\r
                }\r
                return null;\r
        }\r
index bd412e57ca7b68b99be52a98cba3395000503cd8..0c5f65407bf4e421de320e40eae1a7bfa0285544 100644 (file)
@@ -49,6 +49,7 @@ public class SpecimenRow extends ExcelRowBase{
        private String collectingDateEnd;\r
        private String collectorsNumber;\r
        private String primaryCollector;\r
+       private String language;\r
 \r
        private String sex;\r
 \r
@@ -591,5 +592,15 @@ public class SpecimenRow extends ExcelRowBase{
        public String getPrimaryCollector() {\r
                return primaryCollector;\r
        }\r
+\r
+\r
+       public String getLanguage() {\r
+               return language;\r
+       }\r
+\r
+\r
+       public void setLanguage(String language) {\r
+               this.language = language;\r
+       }\r
        \r
 }\r