import org.apache.http.client.ClientProtocolException;
import org.apache.log4j.Logger;
+import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.common.UriUtils;
/**
if (mediaData != null){
metaData = new HashMap<>();
- for (ImageMetadataItem item2 : mediaData.getItems()){
- if (item2 instanceof GenericImageMetadataItem){
- GenericImageMetadataItem item = (GenericImageMetadataItem)item2;
- if (item.getKeyword().contains("/")){
+ for (ImageMetadataItem imItem : mediaData.getItems()){
+ if (imItem instanceof GenericImageMetadataItem){
+ GenericImageMetadataItem item = (GenericImageMetadataItem)imItem;
+ if ("Keywords".equals(item.getKeyword())){
+ String value = text(item);
+ String[] splits = value.split(":");
+ if (splits.length == 2){
+ //convention used e.g. for Flora of cyprus (#9137)
+ metaData.put(splits[0].trim(), splits[1].trim());
+ }else{
+ metaData.put(item.getKeyword(), CdmUtils.concat("; ", metaData.get(item.getKeyword()), value));
+ }
+ }else if (item.getKeyword().contains("/")){
+ //TODO: not sure where this syntax is used originally
String key = item.getKeyword();
//key.replace("/", "");
int index = key.indexOf("/");
}
}
}
- }
- catch (ImageReadException e) {
+ }catch (ImageReadException e) {
logger.error("Could not read: " + imageUri + ". " + e.getMessage());
//throw new IOException(e);
}
@Test
public void testGetLength(){
- Assert.assertEquals(63500, getJpegInstance().getLength());
+ Assert.assertEquals(55872, getJpegInstance().getLength());
Assert.assertEquals(202926, getTifInstance().getLength());
try {
Map<String, String> metaData = instance.getMetaData();
- Assert.assertEquals(48, metaData.size());
+ Assert.assertEquals(52, metaData.size());
+
+ Assert.assertEquals("My taxon", metaData.get("Taxon"));
+ Assert.assertEquals("on the road", metaData.get("Locality"));
+ Assert.assertEquals("15.02.1955", metaData.get("Date"));
+ Assert.assertEquals("Any person", metaData.get("Photographer"));
+ Assert.assertEquals("My Keyword; Second Keyword", metaData.get("Keywords"));
+
}