Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/server/CSVExportServiceImpl.java @ 6384:2987d81ea719
Further fix encoding handling in the print service
- Strings are now html escaped additionaly to java encoding
- Escaping / encoding moved into maputils
- The legend url is urlencoded
- Properties are no longer stored in an encoded manner but
rather encoded on demand
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 21 Jun 2013 12:15:30 +0200 |
parents | ea9eef426962 |
children | e25ef8376c14 |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.client.server; import java.util.ArrayList; import java.util.List; import java.io.Reader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.apache.log4j.Logger; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import au.com.bytecode.opencsv.CSVReader; import org.dive4elements.artifacts.common.ArtifactNamespaceContext; import org.dive4elements.artifacts.common.utils.XMLUtils; import org.dive4elements.artifacts.httpclient.http.HttpClient; import org.dive4elements.artifacts.httpclient.http.HttpClientImpl; import org.dive4elements.river.client.shared.exceptions.ServerException; import org.dive4elements.river.client.client.services.CSVExportService; /** * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class CSVExportServiceImpl extends RemoteServiceServlet implements CSVExportService { private static final Logger logger = Logger.getLogger(CSVExportServiceImpl.class); public static final String ERROR_NO_EXPORT_FOUND = "error_no_export_found"; public List<String[]> getCSV( String locale, String uuid, String name) throws ServerException { logger.info("CSVExportServiceImpl.getCSV"); String url = getServletContext().getInitParameter("server-url"); Document requestDoc = XMLUtils.newDocument(); XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( requestDoc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); Element action = ec.create("action"); ec.addAttr(action, "type", "csv", true); ec.addAttr(action, "name", name, true); requestDoc.appendChild(action); HttpClient client = new HttpClientImpl(url, locale); try { InputStream in = client.collectionOut(requestDoc, uuid, "export"); Reader reader = new InputStreamReader (in, "UTF-8"); CSVReader csvReader = new CSVReader (reader); List<String[]> lines = new ArrayList<String[]>(); String[] line = null; while ((line = csvReader.readNext()) != null) { if (line != null) { if (!line[0].startsWith("#") && line.length > 0) { if (line[0].replace("'", "").length() > 0) { lines.add(line); } } } } return lines; } catch (IOException ce) { logger.error(ce.getLocalizedMessage()); } throw new ServerException(ERROR_NO_EXPORT_FOUND); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :