blob: 6a6b80c92d0011babcfebac294aebe91a7d420b2 [file] [log] [blame]
package com.atlassian.uwc.exporters.liferay.digester;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.commons.digester3.Digester;
import org.apache.log4j.Logger;
import org.xml.sax.SAXException;
public class Indigestion {
private static Logger _log = Logger.getLogger(Indigestion.class);
public Manifest readManifestXml(String directory) throws IOException, SAXException {
Manifest retval = null;
File file = new File(directory, "manifest.xml");
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("root", Manifest.class);
digester.addObjectCreate("root/portlet", ManifestPortlet.class);
digester.addSetProperties("root/portlet");
digester.addSetNext("root/portlet", "setPortlet");
retval = (Manifest) digester.parse(file);
_log.debug(retval.toString());
return retval;
}
// @formatter:off
/*
<portlet portlet-id="36" root-portlet-id="36" old-plid="113518" scope-layout-type="" scope-layout-uuid="">
<portlet-data path="/groups/113333/portlets/36/113518/portlet-data.xml"/>
*/
// @formatter:on
public Portlet readPortletXml(File file) throws IOException, SAXException {
Portlet retval = null;
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("portlet", Portlet.class);
digester.addObjectCreate("portlet/portlet-data", PortletData.class);
digester.addSetProperties("portlet/portlet-data");
digester.addSetNext("portlet/portlet-data", "setPortlet");
retval = (Portlet) digester.parse(file);
_log.debug(retval.toString());
return retval;
}
// @formatter:off
/*
<wiki-data group-id="113333">
<pages>
<page image-path="/groups/113333/portlets/36/page/028b08d8-1a74-4542-a3ec-9e429374f36c/1.0/" path="/groups/113333/portlets/36/pages/320552.xml"/>
<page image-path="/groups/113333/portlets/36/page/0f07a009-8107-49bb-8612-48fb7b52c37a/1.0/" path="/groups/113333/portlets/36/pages/347437.xml">
<attachment name="java-proxy-settings.jpg" bin-path="/groups/113333/portlets/36/bin/347437/java-proxy-settings.jpg"/>
</page>
*/
// @formatter:on
public WikiData readPortletDataXml(File file) throws IOException, SAXException {
WikiData retval = null;
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("wiki-data", WikiData.class);
//element <pages>
digester.addObjectCreate("wiki-data/pages", Pages.class);
digester.addSetProperties("wiki-data/pages");
digester.addSetNext("wiki-data/pages", "setPages");
//element <page>
digester.addObjectCreate("wiki-data/pages/page", Page.class);
digester.addSetProperties("wiki-data/pages/page");
digester.addSetNext("wiki-data/pages/page", "setPage");
//element <attachment>
digester.addObjectCreate("wiki-data/pages/page/attachment", Attachment.class);
digester.addSetProperties("wiki-data/pages/page/attachment", "bin-path", "binPath");
digester.addSetNext("wiki-data/pages/page/attachment", "setAttachment");
retval = (WikiData) digester.parse(file);
_log.debug(retval.toString());
return retval;
}
/* @formatter:off
<WikiPage>
<__new>false</__new>
...
*/
// @formatter:on
public WikiPage readWikiPageXml(File file, ArrayList<Attachment> attachments) throws IOException, SAXException {
WikiPage retval = null;
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("WikiPage", WikiPage.class);
digester.addBeanPropertySetter("WikiPage/__title");
digester.addBeanPropertySetter("WikiPage/__parentTitle");
digester.addBeanPropertySetter("WikiPage/__redirectTitle");
digester.addBeanPropertySetter("WikiPage/__format");
digester.addBeanPropertySetter("WikiPage/__version");
digester.addBeanPropertySetter("WikiPage/__content");
retval = (WikiPage) digester.parse(file);
retval.setAttachments(attachments);
retval.setFile(file);
// _log.debug(retval.toString());
return retval;
}
}