protected void transformXML(Document document) throws Exception {
Map objectModel = ContextHelper.getObjectModel(getContext());
Request request = ObjectModelHelper.getRequest(objectModel);
Session session = request.getSession(false);
Identity identity = (Identity) session.getAttribute(Identity.class.getName());
String title = getParameterAsString(DublinCore.ELEMENT_TITLE);
org.w3c.dom.Document xmlDoc = DocumentHelper.readDocument(document.getInputStream());
Element parent = xmlDoc.getDocumentElement();
if (getLogger().isDebugEnabled())
getLogger().debug("NewBlogEntryCreator.transformXML(): " + document);
String[] steps = document.getPath().split("/");
String nodeId = steps[5];
// Replace id
Element element = (Element) XPathAPI.selectSingleNode(parent,
"/*[local-name() = 'entry']/*[local-name() = 'id']");
String year = steps[2];
String month = steps[3];
String day = steps[4];
DocumentHelper.setSimpleElementText(element, year + "/" + month + "/" + day + "/" + nodeId);
// Replace title
element = (Element) XPathAPI.selectSingleNode(parent,
"/*[local-name() = 'entry']/*[local-name() = 'title']");
DocumentHelper.setSimpleElementText(element, title);
element = (Element) XPathAPI.selectSingleNode(parent,
"/*[local-name() = 'entry']/*[local-name() = 'link']");
element.setAttribute("rel", "alternate");
element.setAttribute("href", "");
element.setAttribute("type", "text/xml");
// Replace Summary
element = (Element) XPathAPI.selectSingleNode(parent,
"/*[local-name() = 'entry']/*[local-name() = 'summary']");
DocumentHelper.setSimpleElementText(element, "Summary");
element = (Element) XPathAPI.selectSingleNode(parent,
"/*[local-name() = 'entry']/*[local-name() = 'author']/*[local-name() = 'name']");
if (element == null) {
throw new RuntimeException("Element entry/author/name not found.");
}
DocumentHelper.setSimpleElementText(element, identity.getUser().getId());
// Replace date created, issued and modified
DateFormat datefmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
DateFormat ofsfmt = new SimpleDateFormat("Z");
Date date = new Date();