Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/server/CSVExportServiceImpl.java @ 4434:60c728e557f4
Backed out changeset e8a4d2fd25cc
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 07 Nov 2012 12:28:50 +0100 |
parents | 1f2f08211a5f |
children |
line wrap: on
line source
package de.intevation.flys.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 de.intevation.artifacts.common.ArtifactNamespaceContext; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifacts.httpclient.http.HttpClient; import de.intevation.artifacts.httpclient.http.HttpClientImpl; import de.intevation.flys.client.shared.exceptions.ServerException; import de.intevation.flys.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 :