ABCD return value and urlFileString
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 9 Dec 2008 19:06:30 +0000 (19:06 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 9 Dec 2008 19:06:30 +0000 (19:06 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/abcd206/AbcdIO.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/abcd206/SpecimenImportConfigurator.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/CdmDefaultImport.java

index 6838fc1949a47a0d60244ef4e52ebb3491cce3a6..3ccad05a737df3b202be78d3874276730d352875 100644 (file)
@@ -2,6 +2,7 @@ package eu.etaxonomy.cdm.io.abcd206;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -101,18 +102,21 @@ public class AbcdIO extends SpecimenIoBase implements ICdmIO<IImportConfigurator
         * @param fileName: the file's location
         * @return the list of root nodes ("Unit")
         */
-       private static NodeList getUnitsNodeList(String fileName){
+       private static NodeList getUnitsNodeList(String urlFileName){
+               URL url;
                NodeList unitList = null;
                try {
                        DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
                        DocumentBuilder constructeur = fabrique.newDocumentBuilder();
-                       File xml = new File(fileName);
-                       Document document = constructeur.parse(xml);
+                       url = new URL(urlFileName);
+                       Object o = url.getContent();
+                       InputStream is = (InputStream)o;
+                       Document document = constructeur.parse(is);
                        Element racine = document.getDocumentElement();
                        unitList = racine.getElementsByTagName("Unit");
 
                }catch(Exception e){
-                       logger.info(e);
+                       logger.warn(e);
                }
                return unitList;
        }
@@ -1195,16 +1199,14 @@ public class AbcdIO extends SpecimenIoBase implements ICdmIO<IImportConfigurator
                        if(this.multimediaObjects.size()>0){
                                MediaRepresentation representation;
                                Media media;
-                               MediaMetaData mmd ;
                                ImageMetaData imd ;
                                URL url ;
                                ImageFile imf;
                                for (int i=0;i<this.multimediaObjects.size();i++){
                                        if(this.multimediaObjects.get(i) != null){
-                                               mmd = new MediaMetaData();
                                                imd = new ImageMetaData();
                                                url = new URL(this.multimediaObjects.get(i));
-                                               imd = mmd.readImageMetaData(url, imd);
+                                               imd = MediaMetaData.readImageMetaData(url, imd);
                                                if (imd != null){
                                                        representation = MediaRepresentation.NewInstance();
                                                        imf = ImageFile.NewInstance(this.multimediaObjects.get(i), null, imd);
@@ -1300,15 +1302,16 @@ public class AbcdIO extends SpecimenIoBase implements ICdmIO<IImportConfigurator
 
        public boolean invoke(SpecimenImportConfigurator config){
                logger.info("INVOKE Specimen Import from ABCD2.06 XML File");
+               boolean result = true;
                AbcdIO test = new AbcdIO();
-               String sourceName = config.getSourceNameString();
+               String sourceName = config.getSource();
                NodeList unitsList = getUnitsNodeList(sourceName);
                if (unitsList != null)
                {
                        logger.info("nb units to insert: "+unitsList.getLength());
                        for (int i=0;i<unitsList.getLength();i++){
                                test.setUnitPropertiesXML((Element)unitsList.item(i));
-                               test.start(config);
+                               result &= test.start(config);
                                config.setDbSchemaValidation(DbSchemaValidation.UPDATE);
                                //compare the ABCD elements added in to the CDM and the unhandled ABCD elements
                                compareABCDtoCDM(sourceName,test.knownABCDelements);
@@ -1318,15 +1321,14 @@ public class AbcdIO extends SpecimenIoBase implements ICdmIO<IImportConfigurator
                        }
                }
 
-               return false;
+               return result;
 
        }
 
 
        public boolean invoke(IImportConfigurator config, Map stores) {
-               logger.info("invoke de ABCDio");
-               invoke((SpecimenImportConfigurator)config);
-               return false;
+               logger.info("invoke de AbcdIo");
+               return invoke((SpecimenImportConfigurator)config);
        }
 
 
index 290cd7bad6ec2c7c723763f20361dfcc1aeed9b9..9287e8a56a594520d9f8239f5b05d6c135f5aae4 100644 (file)
@@ -50,7 +50,7 @@ public class SpecimenImportConfigurator extends ImportConfiguratorBase implement
 //             return (String)super.getSource();\r
 //     }\r
        \r
-       public Object getSource(){\r
+       public String getSource(){\r
                return (String)super.getSource();\r
        }\r
        \r
index b3954dc97a8856c0e67a54f171f97c11e0d638bd..afc2fc07b053397b1332bcccf2b48ee03369eee4 100644 (file)
@@ -139,7 +139,7 @@ public class CdmDefaultImport<T extends IImportConfigurator> implements ICdmImpo
                \r
                System.out.println("End import from Source ("+ config.getSourceNameString() + ") to Cdm (" \r
                                + cdmApp.getDatabaseService().getUrl() + ") ...");\r
-               return true;\r
+               return result;\r
        }\r
        \r
 \r