raimund@256: package de.intevation.flys.client.server; raimund@256: raimund@256: import java.util.List; raimund@256: raimund@256: import java.io.Reader; raimund@256: import java.io.InputStream; raimund@256: import java.io.InputStreamReader; raimund@256: import java.io.IOException; raimund@256: raimund@256: import org.w3c.dom.Document; raimund@256: import org.w3c.dom.Element; raimund@256: raimund@256: import com.google.gwt.user.server.rpc.RemoteServiceServlet; raimund@256: raimund@256: import au.com.bytecode.opencsv.CSVReader; raimund@256: raimund@256: import de.intevation.artifacts.common.ArtifactNamespaceContext; raimund@256: import de.intevation.artifacts.common.utils.XMLUtils; raimund@256: raimund@256: import de.intevation.artifacts.httpclient.http.HttpClient; raimund@256: import de.intevation.artifacts.httpclient.http.HttpClientImpl; raimund@256: raimund@256: import de.intevation.flys.client.shared.exceptions.ServerException; raimund@256: import de.intevation.flys.client.client.services.CSVExportService; raimund@256: raimund@256: raimund@256: /** raimund@256: * @author Ingo Weinzierl raimund@256: */ raimund@256: public class CSVExportServiceImpl raimund@256: extends RemoteServiceServlet raimund@256: implements CSVExportService raimund@256: { raimund@256: public static final String ERROR_NO_EXPORT_FOUND = raimund@256: "error_no_export_found"; raimund@256: raimund@256: public List getCSV( raimund@256: String url, raimund@256: String locale, raimund@256: String uuid, raimund@256: String name) raimund@256: throws ServerException raimund@256: { raimund@256: System.out.println("CSVExportServiceImpl.getCSV"); raimund@256: raimund@256: Document requestDoc = XMLUtils.newDocument(); raimund@256: raimund@256: XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( raimund@256: requestDoc, raimund@256: ArtifactNamespaceContext.NAMESPACE_URI, raimund@256: ArtifactNamespaceContext.NAMESPACE_PREFIX); raimund@256: raimund@256: if (name.startsWith("output.")) { raimund@256: name = name.substring(name.indexOf(".") + 1); raimund@256: } raimund@256: ingo@258: Element action = ec.create("action"); ingo@258: ec.addAttr(action, "type", "csv", true); ingo@258: ec.addAttr(action, "name", name, true); raimund@256: raimund@256: requestDoc.appendChild(action); raimund@256: raimund@256: HttpClient client = new HttpClientImpl(url, locale); raimund@256: try { raimund@256: InputStream in = client.collectionOut(requestDoc, uuid, "export"); ingo@258: Reader reader = new InputStreamReader (in, "UTF-8"); raimund@256: CSVReader csvReader = new CSVReader (reader); ingo@258: ingo@258: return csvReader.readAll (); raimund@256: } raimund@256: catch (IOException ce) { raimund@256: System.err.println(ce.getLocalizedMessage()); raimund@256: } raimund@256: raimund@256: throw new ServerException(ERROR_NO_EXPORT_FOUND); raimund@256: } raimund@256: } raimund@256: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :