Correct publish flag import for BM import
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / PalmaeProtologueImport.java
index 373af1197efb129ea2abc751de7d2da2840918c2..1c7ece5979e1022bcce24f29ed5faa5bbf6ea73b 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.cdm.io;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -19,6 +21,7 @@ import org.springframework.stereotype.Component;
 
 import eu.etaxonomy.cdm.app.images.AbstractImageImporter;
 import eu.etaxonomy.cdm.app.images.ImageImportConfigurator;
+import eu.etaxonomy.cdm.app.images.ImageImportState;
 import eu.etaxonomy.cdm.common.ExcelUtils;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
@@ -45,14 +48,15 @@ public class PalmaeProtologueImport extends AbstractImageImporter {
         * @see eu.etaxonomy.cdm.app.images.AbstractImageImporter#invokeImageImport(eu.etaxonomy.cdm.io.common.IImportConfigurator)
         */
        @Override
-       protected boolean invokeImageImport(ImageImportConfigurator config) {
+       protected void invokeImageImport(ImageImportState state) {
                
                ArrayList<HashMap<String, String>> contents;
                try {
-                       contents = ExcelUtils.parseXLS(config.getSource());
+                       contents = ExcelUtils.parseXLS(state.getConfig().getSource());
                } catch (/*FileNotFound*/Exception e) {
-                       logger.error("FileNotFound: " + config.getSource().toString());
-                       return false;
+                       logger.error("FileNotFound: " + state.getConfig().getSource().toString());
+                       state.setUnsuccessfull();
+                       return;
                }
                
                Set<TaxonNameBase> taxonNameStore = new HashSet<TaxonNameBase>();
@@ -81,18 +85,26 @@ public class PalmaeProtologueImport extends AbstractImageImporter {
                                logger.warn("no taxon with this name found: " + species + ", idInSource: " + taxonId);
                        }else{
                                
-                               MediaRepresentationPart representationPart = MediaRepresentationPart.NewInstance(linkProto, 0);
-                               MediaRepresentation representation = MediaRepresentation.NewInstance("text/html", null);
-                               representation.addRepresentationPart(representationPart);
-                               
-                               Media media = Media.NewInstance();
-                               media.addRepresentation(representation);
+                               URI uri;
+                               try {
+                                       uri = new URI(linkProto);
+                                       MediaRepresentationPart representationPart = MediaRepresentationPart.NewInstance(uri, 0);
+                                       MediaRepresentation representation = MediaRepresentation.NewInstance("text/html", null);
+                                       representation.addRepresentationPart(representationPart);
+                                       
+                                       Media media = Media.NewInstance();
+                                       media.addRepresentation(representation);
                                                                
-                               TaxonNameDescription description = TaxonNameDescription.NewInstance();
-                               TextData protolog = TextData.NewInstance(Feature.PROTOLOGUE());
-                               protolog.addMedia(media);
-                               description.addElement(protolog);
-                               taxonNameBase.addDescription(description);
+                                       TaxonNameDescription description = TaxonNameDescription.NewInstance();
+                                       TextData protolog = TextData.NewInstance(Feature.PROTOLOGUE());
+                                       protolog.addMedia(media);
+                                       description.addElement(protolog);
+                                       taxonNameBase.addDescription(description);
+                               } catch (URISyntaxException e) {
+                                       String message= "URISyntaxException when trying to convert: " + linkProto;
+                                       logger.error(message);
+                                       e.printStackTrace();
+                               }
                                
                                taxonNameStore.add(taxonNameBase);
                                if(count % 50 == 0){
@@ -105,7 +117,7 @@ public class PalmaeProtologueImport extends AbstractImageImporter {
                getNameService().save(taxonNameStore);
                logger.info(count + " protologues imported to CDM store.");
                
-               return true;
+               return;
        }
        
 }