Mercurial > hg > mpdl-group
view software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/DocumentOperation.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 | e845310098ba |
children |
line wrap: on
line source
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); } }