Mercurial > hg > eSciDocImport
view src/de/mpiwg/itgroup/eSciDoc/transformer/ECHOTransformer.java @ 3:58b52df9763c
added update functionality if index.meta has changed
author | dwinter |
---|---|
date | Wed, 12 Jan 2011 11:00:14 +0100 |
parents | c6929e63b0b8 |
children | a844f6948dd8 |
line wrap: on
line source
package de.mpiwg.itgroup.eSciDoc.transformer; import java.io.InputStream; import java.util.HashMap; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.log4j.Logger; import org.jdom.Attribute; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jdom.xpath.XPath; import de.mpiwg.itgroup.eSciDoc.Tools.EScidocBasicHandler; import de.mpiwg.itgroup.eSciDoc.Tools.EScidocTools; import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHOCollection; import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHOObject; import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHORessource; import de.mpiwg.itgroup.eSciDoc.exceptions.TransformerException; import de.mpiwg.itgroup.eSciDoc.utils.eSciDocXmlObject; import de.mpiwg.itgroup.metadataManager.pid.DCTransformer; public class ECHOTransformer implements Transformer { private String ECHORESOURCE_TEMPLATE_XML = "/de/mpiwg/itgroup/eSciDoc/xmlTemplates/ECHOResourceTemplate.xml"; private String ECHOCOLLECTION_TEMPLATE_XML = "/de/mpiwg/itgroup/eSciDoc/xmlTemplates/ECHOCollectionTemplate.xml"; private Logger logger = Logger.getLogger("transformerLogger"); // // public ECHOTransformer(){ } public eSciDocXmlObject transform(ECHOObject obj) throws TransformerException { try{ if (obj.pid==null) return null; eSciDocXmlObject eSciDocObj = null; if (ECHORessource.class.isInstance(obj)){ eSciDocObj = new eSciDocXmlObject(obj.pid, getClass().getResourceAsStream(ECHORESOURCE_TEMPLATE_XML)); eSciDocObj.setContext(obj.context); eSciDocObj.addWebUrl(obj.echoUrl); eSciDocObj.setContentModel(obj.CMM); String ft = ((ECHORessource)obj).fullText; if ((ft!=null) && !ft.equals("")){ eSciDocObj.addFullText(ft); } //TODO braucht man das? eSciDocObj.addOrigUrlToMPIWGMetaData(((ECHORessource)obj).metaData); DCTransformer transf = new DCTransformer(((ECHORessource)obj).metaData); Element mdDc = transf.getDCFromIndexMeta(); if (mdDc!=null){ eSciDocObj.insertDC(mdDc); } else { logger.debug(((ECHORessource)obj).metaData); HashMap<String, String> dc = new HashMap<String, String>(); dc.put("title", obj.name); // ersatzweise den name aus der echo ressource eSciDocObj.insertDC(dc); } //add description to dc metadata HashMap<String, String> dc = new HashMap<String, String>(); dc.put("description", obj.description); eSciDocObj.insertDC(dc); Element metaData = transf.getContentOfMetaTag(); eSciDocObj.insertMeta(metaData); eSciDocObj.addDisplayUrl(((ECHORessource)obj).link); eSciDocObj.addIndexMetaUrl(((ECHORessource)obj).metaData); eSciDocObj.addArchiveFolderPath(((ECHORessource)obj).archivePath); eSciDocObj.addImageFolderPath(((ECHORessource)obj).getImageFolderPath()); } if (ECHOCollection.class.isInstance(obj)){ eSciDocObj = new eSciDocXmlObject(obj.pid, getClass().getResourceAsStream(ECHOCOLLECTION_TEMPLATE_XML)); eSciDocObj.addWebUrl(obj.echoUrl); eSciDocObj.setContentModel(obj.CMM); HashMap<String, String> dc = new HashMap<String, String>(); dc.put("title", obj.name); // ersatzweise den name aus der echo ressource dc.put("description", obj.description); eSciDocObj.insertDC(dc); } return eSciDocObj; } catch (Exception e){ throw new TransformerException(); } } }