Mercurial > hg > mpdl-group
diff software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/DocumentOperation.java @ 23:e845310098ba
diverse Korrekturen
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 27 Nov 2012 12:35:19 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/DocumentOperation.java Tue Nov 27 12:35:19 2012 +0100 @@ -0,0 +1,102 @@ +package de.mpg.mpiwg.berlin.mpdl.servlets.cms; + +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.cms.scheduler.CmsChainScheduler; +import de.mpg.mpiwg.berlin.mpdl.cms.scheduler.CmsDocOperation; +import de.mpg.mpiwg.berlin.mpdl.servlets.util.ServletUtil; + +public class DocumentOperation extends HttpServlet { + private static final long serialVersionUID = 1L; + + public DocumentOperation() { + super(); + } + + public void init(ServletConfig config) throws ServletException { + super.init(config); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + String srcUrlStr = request.getParameter("srcUrl"); + String docId = request.getParameter("docId"); // id in file system: e.g. /tei/en/Test_1789.xml + String mainLanguage = request.getParameter("mainLanguage"); // main language of that document + String elementNames = request.getParameter("elementNames"); + String operation = request.getParameter("operation"); + String outputFormat = request.getParameter("outputFormat"); + if (outputFormat == null) + outputFormat = "xml"; + if (outputFormat.equals("xml")) { + response.setContentType("text/xml"); + } else { + response.setContentType("text/html"); + } + CmsDocOperation docOperation = new CmsDocOperation(operation, srcUrlStr, null, docId); + if (mainLanguage != null) + docOperation.setMainLanguage(mainLanguage); + String[] elementNamesArray = null; + if (elementNames != null) + elementNamesArray = elementNames.split(" "); + docOperation.setElementNames(elementNamesArray); + try { + if (docId == null || docId.isEmpty()) { + write(response, "Parameter: \"docId\" is not set. Please set parameter \"docId\"."); + return; + } + if (operation.equals("create") || operation.equals("delete")) { + CmsChainScheduler scheduler = CmsChainScheduler.getInstance(); + docOperation = scheduler.doOperation(docOperation); + String jobId = "" + docOperation.getOrderId(); + String baseUrl = ServletUtil.getInstance().getBaseUrl(request); + String docJobUrlStr = baseUrl + "/doc/GetDocumentJobs?id=" + jobId; + if (outputFormat.equals("xml")) { + write(response, "<result>"); + write(response, "<docJob>"); + write(response, "<id>" + jobId + "</id>"); + write(response, "<url>" + docJobUrlStr + "</url>"); + write(response, "</docJob>"); + write(response, "</result>"); + } else if (outputFormat.equals("html")) { + write(response, "<html>"); + write(response, "<h2>" + "Document operation result" + "</h2>"); + write(response, "See your document operation " + jobId + " <a href=\"" + docJobUrlStr + "\">" + "here" + "</a>"); + write(response, "</html>"); + } else if (outputFormat.equals("string")) { + write(response, docJobUrlStr); + } + } else { + String errorStr = "Error: Operation: " + operation + " is not supported"; + if (outputFormat.equals("xml")) { + write(response, "<error>" + errorStr + "</error>"); + } else { + write(response, "<html>"); + write(response, "<h2>" + "Error" + "</h2>"); + write(response, errorStr); + } + } + PrintWriter out = response.getWriter(); + out.close(); + } catch (Exception e) { + throw new ServletException(e); + } + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO + } + + private void write(HttpServletResponse response, String str) throws IOException { + PrintWriter out = response.getWriter(); + out.write(str); + } + +}