Mercurial > hg > MetaDataManager
view src/de/mpiwg/itgroup/metadataManager/pid/DCTransformer.java @ 2:38d823b66aff default tip
minor
author | dwinter |
---|---|
date | Mon, 17 Sep 2012 16:42:53 +0200 |
parents | 90a19cbda471 |
children |
line wrap: on
line source
package de.mpiwg.itgroup.metadataManager.pid; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.log4j.Logger; import org.apache.xmlrpc.XmlRpcException; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.xpath.XPath; import org.xml.sax.InputSource; public class DCTransformer { static public String MPIWG = "http://www.mpiwg-berlin.mpg.de/ns/mpiwg"; //public static String converterProvider = "http://echoneu.mpiwg-berlin.mpg.de/metadata"; public static String converterProvider = "http://dw.mpiwg-berlin.mpg.de:8080/echo_nav/echo_pages/metadata"; private String metaDataLink; private Logger logger = Logger.getLogger("transformerLogger"); public DCTransformer(String metaDataLink) { this.metaDataLink=metaDataLink; } public Element getDCFromIndexMeta() { //Verbinde mit metadataprovider XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); try { config.setServerURL(new URL(converterProvider)); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); Object[] params = new Object[] { metaDataLink }; String result; try { Object res = client.execute("getDCDataFromPath", params); result = (String) res; } catch (XmlRpcException e) { // TODO Auto-generated catch block logger.error("CANNOT connector to:"+converterProvider); e.printStackTrace(); return null; } logger.debug("dC:"+result); SAXBuilder db = new SAXBuilder(); InputStream resultStream; try { resultStream = new ByteArrayInputStream(result.getBytes("utf-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } Document dc; try { dc = db.build(resultStream); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } return dc.getRootElement(); } public Element getContentOfMetaTag() { SAXBuilder db = new SAXBuilder(); Document dc; try { dc = db.build(metaDataLink); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } Element retElement = null; try { XPath xp = getXPath("//meta"); retElement = (Element) xp.selectSingleNode(dc); } catch (JDOMException e) { //nothing to be done } if (retElement==null) { // versuche noch mal mit namespace try { XPath xp = getXPath("//mpiwg:meta"); retElement = (Element) xp.selectSingleNode(dc); } catch (JDOMException e) { //nothing to be done } } return retElement; } private XPath getXPath(String xpath) throws JDOMException{ XPath xpathResources = XPath.newInstance(xpath); xpathResources.addNamespace("mpiwg",MPIWG); return xpathResources; } public String getImagePathFromIndexMeta() { SAXBuilder db = new SAXBuilder(); Document dc; try { dc = db.build(metaDataLink); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } Element retElement = null; try { XPath xp = getXPath("//texttool/image"); retElement = (Element) xp.selectSingleNode(dc); } catch (JDOMException e) { //nothing to be done } if (retElement==null) { // versuche noch mal mit namespace try { XPath xp = getXPath("//mpiwg:texttool/mpiwg:image"); retElement = (Element) xp.selectSingleNode(dc); } catch (JDOMException e) { //nothing to be done } } if (retElement==null) return ""; return retElement.getTextTrim(); } }