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;
+	}
+
+}