Mercurial > hg > eSciDocImport
diff src/de/mpiwg/itgroup/eSciDoc/echoObjects/ECHORessource.java @ 8:a844f6948dd8
?nderungen im Walker
tools f?r pubman
author | dwinter |
---|---|
date | Mon, 14 May 2012 09:58:45 +0200 |
parents | 58b52df9763c |
children | b6cf6462d709 |
line wrap: on
line diff
--- a/src/de/mpiwg/itgroup/eSciDoc/echoObjects/ECHORessource.java Sat Jan 15 17:05:29 2011 +0100 +++ b/src/de/mpiwg/itgroup/eSciDoc/echoObjects/ECHORessource.java Mon May 14 09:58:45 2012 +0200 @@ -1,5 +1,7 @@ package de.mpiwg.itgroup.eSciDoc.echoObjects; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; @@ -25,9 +27,23 @@ import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.ExecutionContext; import org.apache.http.protocol.HttpContext; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.jdom.Attribute; +import org.jdom.Document; +import org.jdom.Element; +import org.jdom.JDOMException; +import org.jdom.input.SAXBuilder; +import org.jdom.output.XMLOutputter; +import org.jdom.xpath.XPath; + + +import com.sun.org.apache.xalan.internal.xsltc.dom.DOMWSFilter; +import com.sun.org.apache.xerces.internal.parsers.SAXParser; import de.mpiwg.itgroup.eSciDoc.Tools.EScidocBasicHandler; import de.mpiwg.itgroup.eSciDoc.Tools.EScidocTools; +import de.mpiwg.itgroup.eSciDoc.utils.eSciDocXmlObject; import de.mpiwg.itgroup.metadataManager.pid.DCTransformer; public class ECHORessource extends ECHOObject{ @@ -244,4 +260,85 @@ } + // schreibe die escidoc:id in die index.meta + + public void writeEsciDocIDToIndexMeta(eSciDocXmlObject eSciDocXmlObject) { + String txt; + try { + txt = eSciDocXmlObject.getESciDocObjId(); + writeEsciDocIDToIndexMeta(txt); + } catch (JDOMException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + public void writeEsciDocIDToIndexMeta(String objid) { + String driType="escidoc-test"; + String txt; + Element result; + try { + txt = objid; + + URL url = new URL(metaData); + InputStream is = url.openStream(); + Document doc = new SAXBuilder().build(is); + XPath xp = XPath.newInstance("//meta/dri[@type=\""+driType+"\"]"); + result = (Element)xp.selectSingleNode(doc); + + if (result!=null){ + result.setText(txt); + } else { + XPath xpMeta = XPath.newInstance("//meta"); + Element metaTag = (Element)xpMeta.selectSingleNode(doc); + + if (metaTag==null){ + return; + } else { + + Element dri = new Element("dri"); + dri.setAttribute("type",driType); + dri.setText(txt); + metaTag.addContent(dri); + } + } + + XMLOutputter xo = new XMLOutputter(); + + + + //String outpath ="/tmp/out/"+archivePath; + String outpath =archivePath; + //File parent = new File(outpath); + //parent.mkdirs(); + + File oldFile = new File(outpath+"/index.meta"); + boolean f = oldFile.renameTo(new File(outpath+"/index.meta.old")); + if (!f){ + Logger lg = Logger.getLogger("transformerLogger"); + lg.error("cannot: write "+outpath+"/index.meta.old"); + lg.error("cannot: but will proceed to write new index.meta"); + + } + FileOutputStream out = new FileOutputStream(outpath+"/index.meta"); + xo.output(doc, out); + + Logger lg = Logger.getLogger("transformerLogger"); + lg.info("changed:"+outpath+" -- added escidoc: "+txt); + out.close(); + + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (JDOMException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + } + + }