@Override public Element fromXml(Document doc, E element, Wavelet wavelet) { Map<String, String> properties = Maps.newHashMap(); String attachmentId = doc.getAttribute(element, ATTACHMENT_STR); if (attachmentId != null) { properties.put(Attachment.ATTACHMENT_ID, attachmentId); } String caption = getCaption(doc, element); if (caption != null) { properties.put(Attachment.CAPTION, caption); } if (wavelet != null && attachmentId != null) { Document attachmentDataDoc = wavelet.getDocument(IdConstants.ATTACHMENT_METADATA_PREFIX + "+" + attachmentId); if (attachmentDataDoc != null) { String dataDocument = attachmentDataDoc.toXmlString(); if (dataDocument != null) { properties.put(Attachment.MIME_TYPE, extractValue(dataDocument, MIME_TYPE_PATTERN)); properties.put(Attachment.ATTACHMENT_URL, ElementSerializer.attachmentDownloadHostUrl + getAttachmentUrl(dataDocument)); } } } return new Attachment(properties, null); }