handle "--" ihCode
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / algaterra / AlgaTerraImageImportBase.java
index 31172510e95b6f1d9af6965a7b013fdb5953c13e..b9f44e58c3df738715efbe4ef1d7e1452e4122bb 100644 (file)
@@ -17,6 +17,8 @@ import java.util.Map;
 import java.util.Set;\r
 import java.util.UUID;\r
 \r
+import javassist.runtime.Desc;\r
+\r
 import org.apache.commons.lang.StringUtils;\r
 import org.apache.log4j.Logger;\r
 import org.springframework.transaction.TransactionStatus;\r
@@ -28,13 +30,16 @@ import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelTaxonNameImport;
 import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;\r
 import eu.etaxonomy.cdm.io.common.Source;\r
 import eu.etaxonomy.cdm.model.agent.Team;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.common.TimePeriod;\r
 import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.SpecimenDescription;\r
 import eu.etaxonomy.cdm.model.description.State;\r
+import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.Point;\r
 import eu.etaxonomy.cdm.model.location.ReferenceSystem;\r
@@ -60,10 +65,20 @@ public abstract class AlgaTerraImageImportBase extends BerlinModelImportBase{
 \r
 \r
        \r
+       /**\r
+        * Creates a media object and \r
+        * @param rs\r
+        * @param derivedUnit\r
+        * @param state\r
+        * @param partitioner\r
+        * @return\r
+        * @throws SQLException\r
+        */\r
        protected Media handleSingleImage(ResultSet rs, SpecimenOrObservationBase derivedUnit, AlgaTerraImportState state, ResultSetPartitioner partitioner) throws SQLException {\r
                try {\r
                        String fileName = rs.getString("fileName");\r
                        String figurePhrase = rs.getString("FigurePhrase");\r
+                       //TODO refFk, refDetailFk, publishFlag\r
                        Integer refFk = nullSafeInt(rs, "refFk");\r
                        Integer refDetailFk = nullSafeInt(rs, "refDetailFk");\r
                        Boolean publishFlag = rs.getBoolean("RestrictedFlag");\r
@@ -87,7 +102,18 @@ public abstract class AlgaTerraImageImportBase extends BerlinModelImportBase{
                        //TODO ref\r
                        Reference<?> ref = null;\r
                        if (derivedUnit != null){\r
-                               getSpecimenDescription(derivedUnit, ref, IMAGE_GALLERY, CREATE);\r
+                               SpecimenDescription desc = getSpecimenDescription(derivedUnit, ref, IMAGE_GALLERY, CREATE);\r
+                               TextData textData = null;\r
+                               for (DescriptionElementBase descEl : desc.getElements()){\r
+                                       if (descEl.isInstanceOf(TextData.class)){\r
+                                               textData = CdmBase.deproxy(descEl, TextData.class);\r
+                                       }\r
+                               }\r
+                               if (textData == null){\r
+                                       textData = TextData.NewInstance(Feature.IMAGE());\r
+                               }\r
+                               desc.addElement(textData);\r
+                               textData.addMedia(media);\r
                        }else{\r
                                logger.warn("Derived unit is null. Can't add media ");\r
                        }\r