mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-02 09:09:37 +00:00
added .csv export for ESS40
added details parameter for html export of overall leaderboards
This commit is contained in:
1 parent
833b3abd7d
commit
5c4fa62df7
10 files changed
+266
-63
No files matched your search
+45
@@ -0,0 +1,45 @@
|
||||
package com.sap.sailing.server.gateway;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* Base servlet for CSV (comma separated file) exports
|
||||
* @author Frank
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class AbstractCSVHttpServlet extends SailingServerHttpServlet {
|
||||
|
||||
protected void setCSVResponseHeader(HttpServletResponse resp, String filename) {
|
||||
resp.setContentType("text/csv");
|
||||
resp.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
|
||||
resp.setCharacterEncoding("UTF-8");
|
||||
}
|
||||
|
||||
protected <T> void writeCsv (List<List<T>> csv, char separator, boolean quoteStrings, OutputStream output) throws IOException {
|
||||
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
|
||||
for (List<T> row : csv) {
|
||||
StringBuilder line = new StringBuilder();
|
||||
for (Iterator<T> iter = row.iterator(); iter.hasNext();) {
|
||||
T fieldObject = iter.next();
|
||||
String field = String.valueOf(fieldObject).replace("\"", "\"\"");
|
||||
if(fieldObject instanceof String && quoteStrings) {
|
||||
field = '"' + field + '"';
|
||||
}
|
||||
line.append(field);
|
||||
if (iter.hasNext()) {
|
||||
line.append(separator);
|
||||
}
|
||||
}
|
||||
writer.write(line.toString());
|
||||
writer.newLine();
|
||||
}
|
||||
writer.flush();
|
||||
}
|
||||
}
|
||||
+6
-3
@@ -2,9 +2,12 @@ package com.sap.sailing.server.gateway;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
|
||||
public abstract class JsonExportServlet extends SailingServerHttpServlet {
|
||||
private static final long serialVersionUID = 7007196727805110847L;
|
||||
/**
|
||||
* Base servlet for json exports
|
||||
* @author Frank
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class AbstractJsonHttpServlet extends SailingServerHttpServlet {
|
||||
|
||||
protected void setJsonResponseHeader(HttpServletResponse resp) {
|
||||
// to allow access to the json document directly from a client side javascript
|
||||
+2
-2
@@ -22,9 +22,9 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.SettableScoreCorrection;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.server.gateway.JsonExportServlet;
|
||||
import com.sap.sailing.server.gateway.AbstractJsonHttpServlet;
|
||||
|
||||
public class LeaderboardGroupJsonExportServlet extends JsonExportServlet {
|
||||
public class LeaderboardGroupJsonExportServlet extends AbstractJsonHttpServlet {
|
||||
private static final long serialVersionUID = 1351616646322956825L;
|
||||
private static final String PARAM_NAME_LEADERBOARDGROUPNAME = "leaderboardGroupName";
|
||||
|
||||
|
||||
+2
-2
@@ -23,9 +23,9 @@ import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.SettableScoreCorrection;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.server.gateway.JsonExportServlet;
|
||||
import com.sap.sailing.server.gateway.AbstractJsonHttpServlet;
|
||||
|
||||
public class LeaderboardJsonExportServlet extends JsonExportServlet {
|
||||
public class LeaderboardJsonExportServlet extends AbstractJsonHttpServlet {
|
||||
private static final long serialVersionUID = -2460691283231361152L;
|
||||
private static final String PARAM_NAME_LEADERBOARDNAME = "leaderboardName";
|
||||
|
||||
|
||||
+2
-2
@@ -10,9 +10,9 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import org.json.simple.JSONArray;
|
||||
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.server.gateway.JsonExportServlet;
|
||||
import com.sap.sailing.server.gateway.AbstractJsonHttpServlet;
|
||||
|
||||
public class LeaderboardsJsonExportServlet extends JsonExportServlet {
|
||||
public class LeaderboardsJsonExportServlet extends AbstractJsonHttpServlet {
|
||||
private static final long serialVersionUID = -2193421590275280102L;
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -34,10 +34,10 @@ import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.Wind;
|
||||
import com.sap.sailing.server.gateway.JsonExportServlet;
|
||||
import com.sap.sailing.server.gateway.AbstractJsonHttpServlet;
|
||||
import com.sap.sailing.util.InvalidDateException;
|
||||
|
||||
public class RegattaAndRaceDataJsonExportServlet extends JsonExportServlet {
|
||||
public class RegattaAndRaceDataJsonExportServlet extends AbstractJsonHttpServlet {
|
||||
private static final Logger logger = Logger.getLogger(RegattaAndRaceDataJsonExportServlet.class.getName());
|
||||
|
||||
private static final long serialVersionUID = 1333207389294903999L;
|
||||
|
||||
Reference in new issue
Block a user