annotate src/de/mpiwg/itgroup/eSciDoc/utils/eSciDocXmlObject.java @ 8:a844f6948dd8

?nderungen im Walker tools f?r pubman
author dwinter
date Mon, 14 May 2012 09:58:45 +0200
parents 58b52df9763c
children 7c7bce334b6f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.eSciDoc.utils;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
2 import java.io.ByteArrayInputStream;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
3 import java.io.File;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
4 import java.io.FilenameFilter;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
5 import java.io.IOException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
6 import java.io.InputStream;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
7 import java.io.StringBufferInputStream;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
8 import java.io.StringWriter;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
9 import java.io.UnsupportedEncodingException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
10 import java.io.Writer;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
11 import java.net.URL;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
12 import java.nio.ByteBuffer;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
13 import java.util.ArrayList;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
14 import java.util.HashMap;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
15 import java.util.Iterator;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
16 import java.util.List;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
17 import java.util.Set;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
18
c6929e63b0b8 first import
dwinter
parents:
diff changeset
19
c6929e63b0b8 first import
dwinter
parents:
diff changeset
20
c6929e63b0b8 first import
dwinter
parents:
diff changeset
21 import org.w3c.dom.Attr;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
22
c6929e63b0b8 first import
dwinter
parents:
diff changeset
23 import org.xml.sax.SAXException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
24
c6929e63b0b8 first import
dwinter
parents:
diff changeset
25 //import com.sun.org.apache.xml.internal.serialize.OutputFormat;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
26 //import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
27 import org.jdom.Attribute;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
28 import org.jdom.Document;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
29 import org.jdom.Element;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
30 import org.jdom.JDOMException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
31 import org.jdom.Namespace;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
32 import org.jdom.input.DOMBuilder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
33 import org.jdom.input.SAXBuilder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
34 import org.jdom.output.XMLOutputter;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
35 import org.jdom.xpath.XPath;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
36
c6929e63b0b8 first import
dwinter
parents:
diff changeset
37 import de.mpiwg.itgroup.eSciDoc.Tools.EScidocTools;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
38 import de.mpiwg.itgroup.eSciDoc.Tools.MyFileNameFilter;
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
39 import de.mpiwg.itgroup.eSciDoc.exceptions.ESciDocXmlObjectException;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
40
c6929e63b0b8 first import
dwinter
parents:
diff changeset
41 public class eSciDocXmlObject {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
42
c6929e63b0b8 first import
dwinter
parents:
diff changeset
43
c6929e63b0b8 first import
dwinter
parents:
diff changeset
44 private Document dom;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
45 private XPath xpath;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
46 private String pid;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
47 private DOMBuilder parser;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
48
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
49 public eSciDocXmlObject(String pid, InputStream template) throws ESciDocXmlObjectException {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
50
c6929e63b0b8 first import
dwinter
parents:
diff changeset
51 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
52
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
53 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
54 dom = builder.build(template);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
55
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
56 if (pid!=null){
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
57 xpath = EScidocTools.getESciDocXpath("//prop:pid");
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
58
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
59 Element test = (Element) xpath.selectSingleNode(dom);
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
60
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
61 test.setText(pid);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
62 this.pid=pid;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
63 }
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
64 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
65 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
66 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
67 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
68 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
69 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
70 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
71 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
72 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
73
c6929e63b0b8 first import
dwinter
parents:
diff changeset
74 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
75
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
76 public eSciDocXmlObject(URL url) throws ESciDocXmlObjectException {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
77
c6929e63b0b8 first import
dwinter
parents:
diff changeset
78 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
79
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
80 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
81 dom = builder.build(url);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
82
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
83 xpath = EScidocTools.getESciDocXpath("//prop:pid");
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
84
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
85 Element test = (Element) xpath.selectSingleNode(dom);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
86
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
87 this.pid= test.getTextTrim();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
88 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
89 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
90 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
91 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
92 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
93 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
94 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
95 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
96 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
97
c6929e63b0b8 first import
dwinter
parents:
diff changeset
98 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
99
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
100 public eSciDocXmlObject(Element el) throws ESciDocXmlObjectException {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
101
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
102 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
103 dom = new Document((Element)el.clone());
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
104
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
105 xpath = EScidocTools.getESciDocXpath("//prop:pid");
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
106
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
107 Element test = (Element) xpath.selectSingleNode(dom);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
108 if (test!=null)
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
109 this.pid= test.getTextTrim();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
110 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
111 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
112 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
113 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
114 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
115 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
116
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
117 public eSciDocXmlObject(InputStream content) throws ESciDocXmlObjectException{
2
dwinter
parents: 0
diff changeset
118 SAXBuilder builder = new SAXBuilder();
dwinter
parents: 0
diff changeset
119
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
120 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
121 dom = builder.build(content);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
122
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
123 xpath = EScidocTools.getESciDocXpath("//prop:pid");
2
dwinter
parents: 0
diff changeset
124
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
125 Element test = (Element) xpath.selectSingleNode(dom);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
126
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
127 this.pid= test.getTextTrim();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
128 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
129 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
130 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
131 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
132 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
133 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
134 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
135 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
136 }
2
dwinter
parents: 0
diff changeset
137
dwinter
parents: 0
diff changeset
138 }
dwinter
parents: 0
diff changeset
139
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
140 public void insertDC(Element mdDc) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
141 //NodeList dcList = mdDc.getFirstChild().getChildNodes();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
142 XPath dcXPath = EScidocTools.getESciDocXpath("//dc-md"); //todo check path to dc in escddoc templates
c6929e63b0b8 first import
dwinter
parents:
diff changeset
143
c6929e63b0b8 first import
dwinter
parents:
diff changeset
144 Element dcContainer = (Element) dcXPath.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
145
c6929e63b0b8 first import
dwinter
parents:
diff changeset
146 if (dcContainer==null)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
147 throw new Exception();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
148
c6929e63b0b8 first import
dwinter
parents:
diff changeset
149 for(Object ct: mdDc.getChildren())
c6929e63b0b8 first import
dwinter
parents:
diff changeset
150 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
151 if (Element.class.isInstance(ct)){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
152 Element e = (Element) ct;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
153 String name = e.getName();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
154 Element content = new Element(name, EScidocTools.DC);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
155 content.setText(e.getText());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
156 dcContainer.addContent(content);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
157 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
158 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
159 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
160
c6929e63b0b8 first import
dwinter
parents:
diff changeset
161 public void insertDC(HashMap<String,String> dc) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
162 Set<String> dcList = dc.keySet();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
163
c6929e63b0b8 first import
dwinter
parents:
diff changeset
164 XPath dcXPath = EScidocTools.getESciDocXpath("//dc-md"); //todo check path to dc in escddoc templates
c6929e63b0b8 first import
dwinter
parents:
diff changeset
165
c6929e63b0b8 first import
dwinter
parents:
diff changeset
166 Element dcContainer = (Element) dcXPath.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
167
c6929e63b0b8 first import
dwinter
parents:
diff changeset
168 for (String name : dcList){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
169 Element newChild = new Element(name,EScidocTools.DC);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
170 newChild.setText(dc.get(name));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
171 dcContainer.addContent(newChild);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
172 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
173
c6929e63b0b8 first import
dwinter
parents:
diff changeset
174 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
175
c6929e63b0b8 first import
dwinter
parents:
diff changeset
176 public void insertMeta(Element meta) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
177 if (meta==null)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
178 return;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
179
c6929e63b0b8 first import
dwinter
parents:
diff changeset
180 XPath xp = EScidocTools.getESciDocXpath("//metadata-records:md-record[@name='mpiwg-index_meta']");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
181 Element dcContainer = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
182
c6929e63b0b8 first import
dwinter
parents:
diff changeset
183 dcContainer.addContent((Element)meta.clone());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
184
c6929e63b0b8 first import
dwinter
parents:
diff changeset
185 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
186
c6929e63b0b8 first import
dwinter
parents:
diff changeset
187
c6929e63b0b8 first import
dwinter
parents:
diff changeset
188 public void setTitle(String title) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
189 XPath xp = EScidocTools.getESciDocXpath("//foxml:xmlContent/oai_dc:dc");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
190 Element dcContainer = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
191
c6929e63b0b8 first import
dwinter
parents:
diff changeset
192
c6929e63b0b8 first import
dwinter
parents:
diff changeset
193
c6929e63b0b8 first import
dwinter
parents:
diff changeset
194 Element newChild = new Element("title",EScidocTools.DC);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
195 newChild.setText(title);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
196
c6929e63b0b8 first import
dwinter
parents:
diff changeset
197
c6929e63b0b8 first import
dwinter
parents:
diff changeset
198 dcContainer.addContent(newChild);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
199
c6929e63b0b8 first import
dwinter
parents:
diff changeset
200
c6929e63b0b8 first import
dwinter
parents:
diff changeset
201
c6929e63b0b8 first import
dwinter
parents:
diff changeset
202
c6929e63b0b8 first import
dwinter
parents:
diff changeset
203 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
204
c6929e63b0b8 first import
dwinter
parents:
diff changeset
205 public void setReferenceFolder(String folderpath) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
206 XPath xp = EScidocTools.getESciDocXpath("//mpiwg:bundle/mpiwg:bundle-root/@path");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
207 Element container = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
208
c6929e63b0b8 first import
dwinter
parents:
diff changeset
209 container.setText(folderpath);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
210
c6929e63b0b8 first import
dwinter
parents:
diff changeset
211 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
212
c6929e63b0b8 first import
dwinter
parents:
diff changeset
213 public void setVLPId(String id) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
214 XPath xp = EScidocTools.getESciDocXpath("//vlp:admin/vlp:identifier");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
215 Element container = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
216
c6929e63b0b8 first import
dwinter
parents:
diff changeset
217 container.setText(id);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
218 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
219 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
220 * @param file Pfad mit den Grundordner des Dokument
c6929e63b0b8 first import
dwinter
parents:
diff changeset
221 * @throws Exception
c6929e63b0b8 first import
dwinter
parents:
diff changeset
222 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
223 public void generateXMLIndex(File file) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
224
c6929e63b0b8 first import
dwinter
parents:
diff changeset
225
c6929e63b0b8 first import
dwinter
parents:
diff changeset
226 File[] files = file.listFiles();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
227
c6929e63b0b8 first import
dwinter
parents:
diff changeset
228 //first try to find the image path
c6929e63b0b8 first import
dwinter
parents:
diff changeset
229 File imagefolder = null;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
230 for (File f: files){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
231
c6929e63b0b8 first import
dwinter
parents:
diff changeset
232 if (f.getName().equals("pageimg"))
c6929e63b0b8 first import
dwinter
parents:
diff changeset
233 imagefolder = f;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
234 else if (f.getName().equals("pages"))
c6929e63b0b8 first import
dwinter
parents:
diff changeset
235 imagefolder = f;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
236 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
237 if (imagefolder==null)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
238 return;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
239
c6929e63b0b8 first import
dwinter
parents:
diff changeset
240 FilenameFilter filter = new MyFileNameFilter();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
241
c6929e63b0b8 first import
dwinter
parents:
diff changeset
242 ArrayList<ArrayList<String>> tupels = new ArrayList<ArrayList<String>>();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
243 ArrayList<String> tmp;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
244 for (File image : imagefolder.listFiles(filter))
c6929e63b0b8 first import
dwinter
parents:
diff changeset
245 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
246 tmp = new ArrayList<String>();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
247
c6929e63b0b8 first import
dwinter
parents:
diff changeset
248 tmp.add(calculateName(image));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
249 tmp.add(image.getName());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
250
c6929e63b0b8 first import
dwinter
parents:
diff changeset
251 tupels.add(tmp);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
252 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
253 generateXMLIndex(tupels);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
254 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
255
c6929e63b0b8 first import
dwinter
parents:
diff changeset
256 private void generateXMLIndex(ArrayList<ArrayList<String>> tupels) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
257 // DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
258 //factory.setNamespaceAware(true);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
259 //DocumentBuilder db =factory.newDocumentBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
260
c6929e63b0b8 first import
dwinter
parents:
diff changeset
261 XPath xp = EScidocTools.getESciDocXpath("//vlp:index");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
262 Element index = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
263
c6929e63b0b8 first import
dwinter
parents:
diff changeset
264
c6929e63b0b8 first import
dwinter
parents:
diff changeset
265 for (ArrayList<String> tuple: tupels ){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
266
c6929e63b0b8 first import
dwinter
parents:
diff changeset
267 Element newChild = new Element("page",EScidocTools.VLP);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
268 newChild.setText(tuple.get(0));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
269
c6929e63b0b8 first import
dwinter
parents:
diff changeset
270 newChild.setAttribute("nr", tuple.get(1));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
271 index.addContent(newChild);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
272
c6929e63b0b8 first import
dwinter
parents:
diff changeset
273 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
274
c6929e63b0b8 first import
dwinter
parents:
diff changeset
275
c6929e63b0b8 first import
dwinter
parents:
diff changeset
276 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
277
c6929e63b0b8 first import
dwinter
parents:
diff changeset
278 private String calculateName(File f)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
279 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
280 String name = f.getName();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
281 String[] splitted = name.split("[.]");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
282 String n = splitted[0];
c6929e63b0b8 first import
dwinter
parents:
diff changeset
283 String name2 = n.substring(1);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
284 char letter = n.charAt(0);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
285 return letter+": "+name2;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
286 };
c6929e63b0b8 first import
dwinter
parents:
diff changeset
287
c6929e63b0b8 first import
dwinter
parents:
diff changeset
288
c6929e63b0b8 first import
dwinter
parents:
diff changeset
289 public void setRelationship(String collection) throws Exception{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
290 XPath xp = EScidocTools.getESciDocXpath("//foxml:datastream[@ID='RELS-EXT']/foxml:datastreamVersion/foxml:xmlContent");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
291 Element xmlContent = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
292
c6929e63b0b8 first import
dwinter
parents:
diff changeset
293
c6929e63b0b8 first import
dwinter
parents:
diff changeset
294 XPath rdfxp = EScidocTools.getESciDocXpath("//rdf:RDF");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
295 Element rdf = (Element) rdfxp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
296
c6929e63b0b8 first import
dwinter
parents:
diff changeset
297
c6929e63b0b8 first import
dwinter
parents:
diff changeset
298 if (rdf==null)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
299 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
300 rdf = new Element("RDF",EScidocTools.RDF);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
301
c6929e63b0b8 first import
dwinter
parents:
diff changeset
302 xmlContent.addContent(rdf);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
303 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
304
c6929e63b0b8 first import
dwinter
parents:
diff changeset
305 rdf.setAttribute("rdf", EScidocTools.RDF);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
306 rdf.setAttribute("fedora", EScidocTools.FEDORA);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
307
c6929e63b0b8 first import
dwinter
parents:
diff changeset
308 Element rdfDescription = new Element("Description",EScidocTools.RDF);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
309
c6929e63b0b8 first import
dwinter
parents:
diff changeset
310 Namespace ns = Namespace.getNamespace("rdf",EScidocTools.RDF);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
311 rdfDescription.setAttribute("about","info:fedora/"+pid, ns);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
312
c6929e63b0b8 first import
dwinter
parents:
diff changeset
313 Element rdfMember = new Element("isMemberOfCollection",EScidocTools.FEDORA);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
314 rdfDescription.setAttribute("resource", collection, ns);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
315
c6929e63b0b8 first import
dwinter
parents:
diff changeset
316 rdfDescription.addContent(rdfMember);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
317
c6929e63b0b8 first import
dwinter
parents:
diff changeset
318 rdf.addContent(rdfDescription);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
319
c6929e63b0b8 first import
dwinter
parents:
diff changeset
320
c6929e63b0b8 first import
dwinter
parents:
diff changeset
321
c6929e63b0b8 first import
dwinter
parents:
diff changeset
322
c6929e63b0b8 first import
dwinter
parents:
diff changeset
323 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
324 public void addWebUrl(String url) throws Exception
c6929e63b0b8 first import
dwinter
parents:
diff changeset
325 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
326 XPath xp = EScidocTools.getESciDocXpath("//escidocComponents:content[@xlink:title='web_page']");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
327 Element xmlContent = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
328
c6929e63b0b8 first import
dwinter
parents:
diff changeset
329
c6929e63b0b8 first import
dwinter
parents:
diff changeset
330 Namespace ns = Namespace.getNamespace("xlink",EScidocTools.xlink);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
331
c6929e63b0b8 first import
dwinter
parents:
diff changeset
332 xmlContent.setAttribute("href", url,ns);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
333 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
334
c6929e63b0b8 first import
dwinter
parents:
diff changeset
335 public void addOrigUrlToMPIWGMetaData(String url) throws Exception
c6929e63b0b8 first import
dwinter
parents:
diff changeset
336 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
337 XPath xp = EScidocTools.getESciDocXpath("//mpiwg:admin/mpiwg:orig-ref");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
338 Element xmlContent = (Element) xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
339
c6929e63b0b8 first import
dwinter
parents:
diff changeset
340
c6929e63b0b8 first import
dwinter
parents:
diff changeset
341 Namespace ns = Namespace.getNamespace("xlink",EScidocTools.xlink);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
342
c6929e63b0b8 first import
dwinter
parents:
diff changeset
343 xmlContent.setAttribute("href", url,ns);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
344
c6929e63b0b8 first import
dwinter
parents:
diff changeset
345 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
346
c6929e63b0b8 first import
dwinter
parents:
diff changeset
347 public void addIndexMetaUrl(String url) throws Exception
c6929e63b0b8 first import
dwinter
parents:
diff changeset
348 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
349 if (url.equals(""))
c6929e63b0b8 first import
dwinter
parents:
diff changeset
350 return;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
351
c6929e63b0b8 first import
dwinter
parents:
diff changeset
352 InputStream componentXML=getClass().getResourceAsStream("/de/mpiwg/itgroup/eSciDoc/xmlTemplates/component.xml");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
353 addComponent(url,componentXML,"index_meta","text/xml","internal-managed");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
354
c6929e63b0b8 first import
dwinter
parents:
diff changeset
355
c6929e63b0b8 first import
dwinter
parents:
diff changeset
356 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
357
c6929e63b0b8 first import
dwinter
parents:
diff changeset
358
c6929e63b0b8 first import
dwinter
parents:
diff changeset
359
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
360 /**
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
361 * @return Object in eScidoc XML formatting
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
362 * @throws IOException
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
363 */
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
364 public String printXML() throws IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
365 XMLOutputter out = new XMLOutputter();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
366
c6929e63b0b8 first import
dwinter
parents:
diff changeset
367 String string = out.outputString(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
368 return string;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
369
c6929e63b0b8 first import
dwinter
parents:
diff changeset
370 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
371
c6929e63b0b8 first import
dwinter
parents:
diff changeset
372 public void addFullText(String url) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
373 addFullText(url,getClass().getResourceAsStream("/de/mpiwg/itgroup/eSciDoc/xmlTemplates/component.xml"));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
374
c6929e63b0b8 first import
dwinter
parents:
diff changeset
375 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
376
c6929e63b0b8 first import
dwinter
parents:
diff changeset
377 public void addFullText(String url, InputStream inputStream) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
378 addComponent(url, inputStream,"text","text/xml","internal-managed");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
379 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
380
c6929e63b0b8 first import
dwinter
parents:
diff changeset
381
c6929e63b0b8 first import
dwinter
parents:
diff changeset
382 public void addComponent(String url, InputStream inputStream, String category, String mimeType, String storageType) throws JDOMException, IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
383
c6929e63b0b8 first import
dwinter
parents:
diff changeset
384 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
385
c6929e63b0b8 first import
dwinter
parents:
diff changeset
386 Document dom2 = builder.build(inputStream);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
387
c6929e63b0b8 first import
dwinter
parents:
diff changeset
388
c6929e63b0b8 first import
dwinter
parents:
diff changeset
389 XPath xp = EScidocTools.getESciDocXpath("//escidocComponents:properties/prop:content-category");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
390 Element item = (Element)xp.selectSingleNode(dom2);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
391 item.setText(category);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
392
c6929e63b0b8 first import
dwinter
parents:
diff changeset
393 xp = EScidocTools.getESciDocXpath("//escidocComponents:properties/prop:mime-type");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
394 item = (Element)xp.selectSingleNode(dom2);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
395 item.setText(mimeType);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
396
c6929e63b0b8 first import
dwinter
parents:
diff changeset
397 xp = EScidocTools.getESciDocXpath("//escidocComponents:content");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
398 item = (Element)xp.selectSingleNode(dom2);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
399
c6929e63b0b8 first import
dwinter
parents:
diff changeset
400 Namespace ns = Namespace.getNamespace("xlink",EScidocTools.xlink);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
401
c6929e63b0b8 first import
dwinter
parents:
diff changeset
402 item.setAttribute("href", url,ns);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
403 item.setAttribute("storage",storageType);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
404
c6929e63b0b8 first import
dwinter
parents:
diff changeset
405
c6929e63b0b8 first import
dwinter
parents:
diff changeset
406 xp = EScidocTools.getESciDocXpath("//escidocComponents:components");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
407 item = (Element)xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
408
c6929e63b0b8 first import
dwinter
parents:
diff changeset
409
c6929e63b0b8 first import
dwinter
parents:
diff changeset
410 //Node newNode = dom.importNode(dom2.getFirstChild(), true);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
411 item.addContent((Element)dom2.getRootElement().clone());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
412 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
413
c6929e63b0b8 first import
dwinter
parents:
diff changeset
414 public void addImageFolderPath(String imageFolder) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
415
c6929e63b0b8 first import
dwinter
parents:
diff changeset
416 XPath xp = EScidocTools.getESciDocXpath("//mpiwg:admin");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
417 Element item = (Element)xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
418
c6929e63b0b8 first import
dwinter
parents:
diff changeset
419 Element images= new Element("imageFolder",EScidocTools.MPIWG);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
420 images.setText(imageFolder);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
421
c6929e63b0b8 first import
dwinter
parents:
diff changeset
422 item.addContent(images);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
423
c6929e63b0b8 first import
dwinter
parents:
diff changeset
424
c6929e63b0b8 first import
dwinter
parents:
diff changeset
425 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
426
c6929e63b0b8 first import
dwinter
parents:
diff changeset
427 public void addArchiveFolderPath(String archivePath) throws JDOMException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
428 XPath xp = EScidocTools.getESciDocXpath("//mpiwg:admin");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
429 Element item = (Element)xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
430
c6929e63b0b8 first import
dwinter
parents:
diff changeset
431 Element images= new Element("archivePath",EScidocTools.MPIWG);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
432 images.setText(archivePath);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
433
c6929e63b0b8 first import
dwinter
parents:
diff changeset
434 item.addContent(images);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
435
c6929e63b0b8 first import
dwinter
parents:
diff changeset
436 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
437
c6929e63b0b8 first import
dwinter
parents:
diff changeset
438 public Boolean upDateFromXML(String xml) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
439 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
440
c6929e63b0b8 first import
dwinter
parents:
diff changeset
441
c6929e63b0b8 first import
dwinter
parents:
diff changeset
442 ByteArrayInputStream in;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
443 try {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
444 in = new ByteArrayInputStream(xml.getBytes("utf-8"));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
445
c6929e63b0b8 first import
dwinter
parents:
diff changeset
446 dom = builder.build(in);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
447
c6929e63b0b8 first import
dwinter
parents:
diff changeset
448 } catch (UnsupportedEncodingException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
449 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
450 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
451 return false;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
452 } catch (JDOMException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
453 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
454 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
455 return false;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
456 } catch (IOException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
457 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
458 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
459 return false;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
460 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
461
c6929e63b0b8 first import
dwinter
parents:
diff changeset
462 return true;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
463
c6929e63b0b8 first import
dwinter
parents:
diff changeset
464
c6929e63b0b8 first import
dwinter
parents:
diff changeset
465
c6929e63b0b8 first import
dwinter
parents:
diff changeset
466 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
467
c6929e63b0b8 first import
dwinter
parents:
diff changeset
468 public void addDisplayUrl(String link) throws JDOMException, IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
469
c6929e63b0b8 first import
dwinter
parents:
diff changeset
470 if (link==null || link.equals(""))
c6929e63b0b8 first import
dwinter
parents:
diff changeset
471 return;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
472
c6929e63b0b8 first import
dwinter
parents:
diff changeset
473 InputStream componentXML=getClass().getResourceAsStream("/de/mpiwg/itgroup/eSciDoc/xmlTemplates/component.xml");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
474 addComponent(link,componentXML,"display_url","text/html","external-url");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
475
c6929e63b0b8 first import
dwinter
parents:
diff changeset
476
c6929e63b0b8 first import
dwinter
parents:
diff changeset
477
c6929e63b0b8 first import
dwinter
parents:
diff changeset
478
c6929e63b0b8 first import
dwinter
parents:
diff changeset
479
c6929e63b0b8 first import
dwinter
parents:
diff changeset
480 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
481
c6929e63b0b8 first import
dwinter
parents:
diff changeset
482 public String getESciDocId() throws JDOMException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
483
c6929e63b0b8 first import
dwinter
parents:
diff changeset
484 Element el = dom.getRootElement();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
485
c6929e63b0b8 first import
dwinter
parents:
diff changeset
486 XPath xp = EScidocTools.getESciDocXpath("./@xlink:href");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
487 Attribute href = (Attribute) xp.selectSingleNode(el);
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
488
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
489
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
490 return href.getValue();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
491
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
492 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
493
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
494 public String getESciDocObjId() throws JDOMException {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
495
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
496 Element el = dom.getRootElement();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
497
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
498 XPath xp = EScidocTools.getESciDocXpath("./@objid");
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
499 Attribute href = (Attribute) xp.selectSingleNode(el);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
500
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
501
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
502 return href.getValue();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
503
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
504 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
505
c6929e63b0b8 first import
dwinter
parents:
diff changeset
506 public void setContentModel(String href) throws JDOMException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
507
c6929e63b0b8 first import
dwinter
parents:
diff changeset
508 XPath xp = EScidocTools.getESciDocXpath("//escidocItem:properties/srel:content-model/@xlink:href");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
509 Attribute item = (Attribute)xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
510 item.setValue(href);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
511
c6929e63b0b8 first import
dwinter
parents:
diff changeset
512
c6929e63b0b8 first import
dwinter
parents:
diff changeset
513 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
514
c6929e63b0b8 first import
dwinter
parents:
diff changeset
515 public void setContext(String context) throws JDOMException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
516 XPath xp = EScidocTools.getESciDocXpath("//escidocItem:properties/srel:context/@xlink:href");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
517 Attribute item = (Attribute)xp.selectSingleNode(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
518 item.setValue(context);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
519
c6929e63b0b8 first import
dwinter
parents:
diff changeset
520
c6929e63b0b8 first import
dwinter
parents:
diff changeset
521 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
522
c6929e63b0b8 first import
dwinter
parents:
diff changeset
523 public Document getDocument(){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
524 return dom;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
525 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
526
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
527 public void setLastModificationDate(String lastModificationDateOld) throws ESciDocXmlObjectException {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
528 Attribute item;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
529 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
530 XPath xp = EScidocTools.getESciDocXpath(".//escidocItem:item/@last-modification-date");
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
531 item = (Attribute)xp.selectSingleNode(dom);
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
532 if (item==null){
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
533 xp = EScidocTools.getESciDocXpath(".//escidocItem:item");
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
534 Element element = (Element)xp.selectSingleNode(dom);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
535 element.setAttribute("last-modification-date", lastModificationDateOld);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
536 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
537 else {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
538 item.setValue(lastModificationDateOld);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
539 }
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
540
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
541 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
542 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
543 throw new ESciDocXmlObjectException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
544 }
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
545
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 3
diff changeset
546
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
547
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
548
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
549 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
550
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
551
c6929e63b0b8 first import
dwinter
parents:
diff changeset
552 }