/**
* Copyright 2008-2016 Qualogy Solutions B.V.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qualogy.qafe.web.upload;
import java.io.IOException;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.qualogy.qafe.service.DocumentService;
import com.qualogy.qafe.service.DocumentServiceImpl;
import com.qualogy.qafe.service.domain.DocumentExportInput;
import com.qualogy.qafe.service.domain.DocumentExportOutput;
import com.qualogy.qafe.web.util.DatagridStorageHelper;
public class DatagridDownloadServlet extends HttpServlet {
private static final Logger LOG = Logger.getLogger(DatagridDownloadServlet.class.getName());
public static final String FORM_PARAMETER_DELIMITER = "delimeter";
public static final String FORM_PARAMETER_ISFIRSTLINEHEADER = "isFirstLineHeader";
private DocumentService documentService = new DocumentServiceImpl();
private void writeLog(String text) {
log(text);
LOG.info(text);
}
@SuppressWarnings("unchecked")
private void writeUploadInfo(HttpServletRequest request) {
writeLog("Document Upload!");
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
Object name = headerNames.nextElement();
if (name != null) {
writeLog("Header - " + name + " : " + request.getHeader((String) name));
}
}
writeLog("ServletRemoteAddr: " + request.getRemoteAddr());
writeLog("Remote Host: " + request.getRemoteHost());
writeLog("Remote User: " + request.getRemoteUser());
writeLog("Protocol: " + request.getProtocol());
writeLog("Server Name: " + request.getServerName());
writeLog("Server Port: " + request.getServerPort());
writeLog("Request URL: " + request.getRequestURL());
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
writeUploadInfo(request);
String uuid = request.getParameter("uuid");
if (uuid != null) {
List<Map<String, Object>> list = DatagridStorageHelper.getData(uuid);
String exportCode = DatagridStorageHelper.getExportType(uuid);
String header = DatagridStorageHelper.getHeader(uuid);
boolean generateColumnHeader = DatagridStorageHelper.isGenerateColumnHeader(uuid);
DocumentExportInput input = new DocumentExportInput();
// String exportPDFLocation =
// ApplicationCluster.getInstance().getConfigurationItem("reports.export.default");
// input.setConfigurationLocation(request.getSession().getServletContext().getRealPath("/WEB-INF/"));
input.setData(list);
input.setExportCode(exportCode);
input.setHeader(header);
input.setGenerateColumnHeader(generateColumnHeader);
DocumentExportOutput de = documentService.export(input);
if (de != null) {
response.setHeader("Content-Disposition", "inline; filename=" + de.getFileName());
response.setContentType(de.getMimeType());
response.setContentLength(de.getBytes().length);
response.getOutputStream().write(de.getBytes());
}
}
}
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
}
/**
*
*/
private static final long serialVersionUID = -5162541603503766940L;
}