Mercurial > hg > mpdl-group
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); + } +}