Mercurial > hg > eSciDocImport
diff src/de/mpiwg/itgroup/eSciDoc/transformer/ECHOTransformer.java @ 0:c6929e63b0b8
first import
author | dwinter |
---|---|
date | Wed, 24 Nov 2010 16:52:07 +0100 |
parents | |
children | 58b52df9763c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpiwg/itgroup/eSciDoc/transformer/ECHOTransformer.java Wed Nov 24 16:52:07 2010 +0100 @@ -0,0 +1,118 @@ +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.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 Exception { + + 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; + } + +}