Mercurial > hg > MetaDataManager
comparison src/de/mpiwg/itgroup/metadataManager/pid/DCTransformer.java @ 0:90a19cbda471
first ingest
author | dwinter |
---|---|
date | Wed, 24 Nov 2010 16:54:52 +0100 |
parents | |
children | 38d823b66aff |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:90a19cbda471 |
---|---|
1 package de.mpiwg.itgroup.metadataManager.pid; | |
2 | |
3 import java.io.ByteArrayInputStream; | |
4 import java.io.IOException; | |
5 import java.io.InputStream; | |
6 import java.io.StringReader; | |
7 import java.io.UnsupportedEncodingException; | |
8 import java.net.MalformedURLException; | |
9 import java.net.URL; | |
10 | |
11 import javax.xml.parsers.DocumentBuilder; | |
12 import javax.xml.parsers.DocumentBuilderFactory; | |
13 | |
14 import org.apache.log4j.Logger; | |
15 import org.apache.xmlrpc.XmlRpcException; | |
16 import org.apache.xmlrpc.client.XmlRpcClient; | |
17 import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; | |
18 import org.jdom.Document; | |
19 import org.jdom.Element; | |
20 import org.jdom.JDOMException; | |
21 import org.jdom.input.SAXBuilder; | |
22 import org.jdom.xpath.XPath; | |
23 | |
24 import org.xml.sax.InputSource; | |
25 | |
26 | |
27 | |
28 public class DCTransformer { | |
29 static public String MPIWG = "http://www.mpiwg-berlin.mpg.de/ns/mpiwg"; | |
30 | |
31 public static String converterProvider = "http://127.0.0.1:28080/metadataMain"; | |
32 private String metaDataLink; | |
33 private Logger logger = Logger.getLogger("transformerLogger"); | |
34 | |
35 public DCTransformer(String metaDataLink) { | |
36 | |
37 this.metaDataLink=metaDataLink; | |
38 } | |
39 | |
40 public Element getDCFromIndexMeta() { | |
41 //Verbinde mit metadataprovider | |
42 XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); | |
43 | |
44 | |
45 try { | |
46 config.setServerURL(new URL(converterProvider)); | |
47 } catch (MalformedURLException e) { | |
48 // TODO Auto-generated catch block | |
49 e.printStackTrace(); | |
50 return null; | |
51 } | |
52 | |
53 XmlRpcClient client = new XmlRpcClient(); | |
54 client.setConfig(config); | |
55 Object[] params = new Object[] { metaDataLink }; | |
56 | |
57 String result; | |
58 try { | |
59 result = (String) client.execute("getDCFormatted", params); | |
60 } catch (XmlRpcException e) { | |
61 // TODO Auto-generated catch block | |
62 logger.error("CANNOT connector to:"+converterProvider); | |
63 e.printStackTrace(); | |
64 return null; | |
65 } | |
66 logger.debug("dC:"+result); | |
67 | |
68 SAXBuilder db = new SAXBuilder(); | |
69 InputStream resultStream; | |
70 try { | |
71 resultStream = new ByteArrayInputStream(result.getBytes("utf-8")); | |
72 } catch (UnsupportedEncodingException e) { | |
73 // TODO Auto-generated catch block | |
74 e.printStackTrace(); | |
75 return null; | |
76 } | |
77 Document dc; | |
78 try { | |
79 dc = db.build(resultStream); | |
80 } catch (JDOMException e) { | |
81 // TODO Auto-generated catch block | |
82 e.printStackTrace(); | |
83 return null; | |
84 } catch (IOException e) { | |
85 // TODO Auto-generated catch block | |
86 e.printStackTrace(); | |
87 return null; | |
88 } | |
89 | |
90 return dc.getRootElement(); | |
91 } | |
92 | |
93 public Element getContentOfMetaTag() { | |
94 SAXBuilder db = new SAXBuilder(); | |
95 | |
96 Document dc; | |
97 try { | |
98 dc = db.build(metaDataLink); | |
99 } catch (JDOMException e) { | |
100 // TODO Auto-generated catch block | |
101 e.printStackTrace(); | |
102 return null; | |
103 } catch (IOException e) { | |
104 // TODO Auto-generated catch block | |
105 e.printStackTrace(); | |
106 return null; | |
107 } | |
108 | |
109 Element retElement = null; | |
110 try { | |
111 XPath xp = getXPath("//meta"); | |
112 retElement = (Element) xp.selectSingleNode(dc); | |
113 | |
114 } catch (JDOMException e) { | |
115 //nothing to be done | |
116 } | |
117 if (retElement==null) { // versuche noch mal mit namespace | |
118 try { | |
119 | |
120 XPath xp = getXPath("//mpiwg:meta"); | |
121 retElement = (Element) xp.selectSingleNode(dc); | |
122 | |
123 } catch (JDOMException e) { | |
124 //nothing to be done | |
125 } | |
126 | |
127 } | |
128 return retElement; | |
129 } | |
130 | |
131 | |
132 private XPath getXPath(String xpath) throws JDOMException{ | |
133 XPath xpathResources = XPath.newInstance(xpath); | |
134 | |
135 xpathResources.addNamespace("mpiwg",MPIWG); | |
136 | |
137 return xpathResources; | |
138 } | |
139 | |
140 public String getImagePathFromIndexMeta() { | |
141 SAXBuilder db = new SAXBuilder(); | |
142 | |
143 Document dc; | |
144 try { | |
145 dc = db.build(metaDataLink); | |
146 } catch (JDOMException e) { | |
147 // TODO Auto-generated catch block | |
148 e.printStackTrace(); | |
149 return null; | |
150 } catch (IOException e) { | |
151 // TODO Auto-generated catch block | |
152 e.printStackTrace(); | |
153 return null; | |
154 } | |
155 | |
156 Element retElement = null; | |
157 try { | |
158 XPath xp = getXPath("//texttool/image"); | |
159 retElement = (Element) xp.selectSingleNode(dc); | |
160 | |
161 } catch (JDOMException e) { | |
162 //nothing to be done | |
163 } | |
164 if (retElement==null) { // versuche noch mal mit namespace | |
165 try { | |
166 XPath xp = getXPath("//mpiwg:texttool/mpiwg:image"); | |
167 retElement = (Element) xp.selectSingleNode(dc); | |
168 | |
169 } catch (JDOMException e) { | |
170 //nothing to be done | |
171 } | |
172 | |
173 } | |
174 if (retElement==null) | |
175 return ""; | |
176 return retElement.getTextTrim(); | |
177 } | |
178 | |
179 } |