diff src/de/mpiwg/dwinter/fulltextSearchServer/ShowTicket.java @ 0:db87c1b7eb6d

initial
author dwinter
date Wed, 03 Nov 2010 12:18:46 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpiwg/dwinter/fulltextSearchServer/ShowTicket.java	Wed Nov 03 12:18:46 2010 +0100
@@ -0,0 +1,115 @@
+package de.mpiwg.dwinter.fulltextSearchServer;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+import org.restlet.data.Form;
+import org.restlet.data.MediaType;
+import org.restlet.data.Parameter;
+import org.restlet.data.Status;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.resource.Get;
+import org.restlet.resource.Options;
+import org.restlet.resource.ServerResource;
+
+import de.mpiwg.dwinter.fulltext.ticket.TicketWriter;
+import de.mpiwg.dwinter.fulltextSearchServer.Utils.XMLTools;
+
+/**
+ * Zeigt das entsprechende Ticket an.
+ * @author dwinter
+ *
+ */
+public class ShowTicket extends ServerResource{
+	    
+		Logger logger = Logger.getRootLogger();
+		
+		
+		@Options
+		public void doOptions(Representation entity) {
+		    Form responseHeaders = (Form) getResponse().getAttributes().get("org.restlet.http.headers");
+		    if (responseHeaders == null) {
+		        responseHeaders = new Form();
+		        getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
+		    }
+		    responseHeaders.add("Access-Control-Allow-Origin", "*");
+		    responseHeaders.add("Access-Control-Allow-Methods", "POST,OPTIONS,GET");
+		    responseHeaders.add("Access-Control-Allow-Headers", "Content-Type");
+		    responseHeaders.add("Access-Control-Allow-Credentials", "false");
+		    responseHeaders.add("Access-Control-Max-Age", "60");
+		}
+		
+		//@Get("xml")
+	    public Representation getXML( ) {
+			logger.debug("showticket");
+	        
+			// response header fuer cross-site.scripting
+			Form responseHeaders = (Form) getResponse().getAttributes().get("org.restlet.http.headers");
+			    if (responseHeaders == null) {
+			        responseHeaders = new Form();
+			        getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
+			    }
+			responseHeaders.add("Access-Control-Allow-Origin", "*");
+			
+			
+			String ticket = (String) getRequest().getAttributes().get("ticket") ;
+	        
+		
+			
+	        StringRepresentation representation = null; 
+	    
+	        String xml;
+			try {
+
+				
+			xml = TicketWriter.getXML(ticket);
+			
+			} catch (FileNotFoundException e) {
+				e.printStackTrace();
+				logger.debug("show result of ticker: file not found xml");
+				setStatus(Status.SERVER_ERROR_INTERNAL) ;
+		        return null;
+			} catch (IOException e) {
+				logger.debug("show result of ticker: IO error xml");
+				e.printStackTrace();
+				setStatus(Status.SERVER_ERROR_INTERNAL) ;
+		          return null;
+			}
+	        representation = new StringRepresentation(xml, 
+	            MediaType.TEXT_XML) ;
+	        if (xml != null) {
+	        	if (TicketWriter.isClosed(ticket))
+	        		setStatus(Status.SUCCESS_CREATED);
+	        	else
+	        		setStatus(Status.SUCCESS_ACCEPTED);
+	          return representation;
+	       } else {
+	          setStatus(Status.SUCCESS_ACCEPTED) ;
+	          
+	          return new StringRepresentation("<info>waiting</info>", 
+	  	            MediaType.TEXT_XML) ;
+	       }
+		}
+		
+		@Get("html")
+		public Representation getHtml() throws IOException{
+			
+			Representation repr = getXML();
+			if (repr==null)
+				return null;
+					
+			String xml=repr.getText();
+			
+			logger.debug("getHTML:"+xml);
+			
+			String txt = XMLTools.transformToHTML(xml,"/de/mpiwg/dwinter/fulltextSearchServer/xsl/showTicketToHTML.xsl");
+			if (txt.equals("")){
+				 return new StringRepresentation("<html><body>waiting</body></html>", 
+			  	            MediaType.TEXT_HTML) ;
+			}
+			return new StringRepresentation(txt, 
+	  	            MediaType.TEXT_HTML) ;
+		}
+}