image gallery in Berlin Model import
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 28 Sep 2009 23:15:55 +0000 (23:15 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 28 Sep 2009 23:15:55 +0000 (23:15 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelFactsImport.java

index c18df3040525154ea33283732846ac4a4441ddd2..ab531f2cf7aba5c6018882d13447f08983c1f82b 100644 (file)
@@ -216,32 +216,10 @@ public class BerlinModelFactsImport  extends BerlinModelImportBase {
                                                //for diptera images\r
                                                if (categoryFk == 51){  //TODO check also FactCategory string\r
                                                        isImage = true;\r
-                                                       String uri = fact;\r
-                                                       Integer size = null; \r
-                                                       ImageMetaData imageMetaData = new ImageMetaData();\r
-                                                       URL url;\r
-                                                       try {\r
-                                                               url = new URL(fact.trim());\r
-                                                       } catch (MalformedURLException e) {\r
-                                                               logger.warn("Malformed URL. Image could not be imported: " + CdmUtils.Nz(uri));\r
-                                                               continue;\r
-                                                       }\r
-                                                       imageMetaData.readFrom(url);\r
                                                        media = Media.NewInstance();\r
-                                                       MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance(imageMetaData.getMimeType(), null);\r
-                                                       media.addRepresentation(mediaRepresentation);\r
-                                                       ImageFile image = ImageFile.NewInstance(uri, size, imageMetaData);\r
-                                                       mediaRepresentation.addRepresentationPart(image);\r
-                                                       for (TaxonDescription desc: descriptionSet){\r
-                                                               if (desc.isImageGallery()){\r
-                                                                       taxonDescription = desc;\r
-                                                               }\r
-                                                       }\r
+                                                       taxonDescription = makeImage(state, fact, media, descriptionSet, taxon);\r
                                                        if (taxonDescription == null){\r
-                                                               taxonDescription = TaxonDescription.NewInstance();\r
-                                                               taxonDescription.setTitleCache(sourceRef == null ? "Image Galery":sourceRef.getTitleCache()+"-Image Galery");\r
-                                                               taxon.addDescription(taxonDescription);\r
-                                                               taxonDescription.setImageGallery(true);\r
+                                                               continue;\r
                                                        }\r
                                                }\r
                                                //all others (no image)\r
@@ -384,6 +362,37 @@ public class BerlinModelFactsImport  extends BerlinModelImportBase {
 \r
        }\r
        \r
+       /**\r
+        * @param state \r
+        * @param media \r
+        * @param media \r
+        * @param descriptionSet \r
+        * \r
+        */\r
+       private TaxonDescription makeImage(BerlinModelImportState state, String fact, Media media, Set<TaxonDescription> descriptionSet, Taxon taxon) {\r
+               TaxonDescription taxonDescription = null;\r
+               ReferenceBase sourceRef = state.getConfig().getSourceReference();\r
+               String uri = fact;\r
+               Integer size = null; \r
+               ImageMetaData imageMetaData = new ImageMetaData();\r
+               URL url;\r
+               try {\r
+                       url = new URL(fact.trim());\r
+               } catch (MalformedURLException e) {\r
+                       logger.warn("Malformed URL. Image could not be imported: " + CdmUtils.Nz(uri));\r
+                       return null;\r
+               }\r
+               imageMetaData.readFrom(url);\r
+               MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance(imageMetaData.getMimeType(), null);\r
+               media.addRepresentation(mediaRepresentation);\r
+               ImageFile image = ImageFile.NewInstance(uri, size, imageMetaData);\r
+               mediaRepresentation.addRepresentationPart(image);\r
+               \r
+               taxonDescription = taxon.getOrCreateImageGallery(sourceRef == null ? null :sourceRef.getTitleCache());\r
+               \r
+               return taxonDescription;\r
+       }\r
+\r
        private TaxonBase getTaxon(MapWrapper<TaxonBase> taxonMap, Object taxonIdObj, Integer taxonId){\r
                if (taxonIdObj != null){\r
                        return taxonMap.get(taxonId);\r