diff software/mpdl-services-new/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/lt/Transcode.java @ 25:e9fe3186670c default tip

letzter Stand eingecheckt
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 21 May 2013 10:19:32 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/software/mpdl-services-new/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/lt/Transcode.java	Tue May 21 10:19:32 2013 +0200
@@ -0,0 +1,77 @@
+package de.mpg.mpiwg.berlin.mpdl.servlets.lt;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException;
+import de.mpg.mpiwg.berlin.mpdl.lt.text.transcode.Transcoder;
+
+public class Transcode extends HttpServlet {
+  private static final long serialVersionUID = 1L;
+  private Transcoder transcoder;
+
+  public Transcode() {
+    super();
+  }
+
+  public void init(ServletConfig config) throws ServletException  {
+    super.init(config);
+    transcoder = Transcoder.getInstance();
+  }
+
+  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    request.setCharacterEncoding("utf-8");
+    response.setCharacterEncoding("utf-8");
+    String inputString = request.getParameter("inputString");
+    String srcEncoding = request.getParameter("srcEncoding");
+    String destEncoding = request.getParameter("destEncoding");
+    if (destEncoding == null)
+      destEncoding = "unicode";
+    String result = null;
+    try {
+      response.setContentType("text/html");
+      PrintWriter out = response.getWriter();
+      if (inputString == null || inputString.isEmpty()) {
+        out.print("request parameter \"inputString\" is empty. Please specify \"inputString\"");
+        out.close();
+        return;
+      }
+      if (srcEncoding == null || srcEncoding.isEmpty()) {
+        out.print("request parameter \"srcEncoding\" is empty. Please specify \"srcEncoding\"");
+        out.close();
+        return;
+      }
+      if (destEncoding == null || destEncoding.isEmpty()) {
+        out.print("request parameter \"destEncoding\" is empty. Please specify \"destEncoding\"");
+        out.close();
+        return;
+      }
+      if (srcEncoding.equals("buckwalter") && destEncoding.equals("unicode")) {
+        result = transcoder.transcodeFromBuckwalter2Unicode(inputString);
+      } else if (srcEncoding.equals("betacode") && destEncoding.equals("unicode")) {
+        result = transcoder.transcodeFromBetaCode2Unicode(inputString);
+      } else if (srcEncoding.equals("unicode") && destEncoding.equals("betacode")) {
+        result = transcoder.transcodeFromUnicode2BetaCode(inputString);
+      } else if (srcEncoding.equals("unicode") && destEncoding.equals("buckwalter")) {
+        result = transcoder.transcodeFromUnicode2Buckwalter(inputString);
+      } else {
+        result = "your combination of \"srcEncoding\" and \"destEncoding\" is not yet supported";
+      }
+      if (result != null)
+        out.print(result);
+      out.close();
+    } catch (ApplicationException e) { 
+      throw new ServletException(e);
+    }
+  }
+
+  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    doGet(request, response);
+  }  
+}