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
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
\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
//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