comparison artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java @ 6668:368db84f1241

issue1416: Move a stub new SedimentLoadExporter in place. SedimentLoadExporter: New stub for exporter. minfo.xml: Register csv facet, declare new out. conf.xml: Register exporter for new out. SedimentLoadCalculate: Create a data facet to become active in new out.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 26 Jul 2013 10:45:47 +0200
parents
children 202ac69e0db1
comparison
equal deleted inserted replaced
6667:84349d440987 6668:368db84f1241
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
2 * Software engineering by Intevation GmbH
3 *
4 * This file is Free Software under the GNU AGPL (>=v3)
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6 * documentation coming with Dive4Elements River for details.
7 */
8
9 package org.dive4elements.river.exports.minfo;
10
11 import java.util.LinkedList;
12 import java.util.List;
13
14 import java.io.OutputStream;
15 import java.io.OutputStreamWriter;
16 import java.io.IOException;
17
18 import java.text.NumberFormat;
19
20 import org.w3c.dom.Document;
21
22 import org.apache.log4j.Logger;
23
24 import org.dive4elements.artifacts.Artifact;
25 import org.dive4elements.artifacts.CallContext;
26
27 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
28
29 import org.dive4elements.river.artifacts.D4EArtifact;
30
31 import org.dive4elements.river.artifacts.model.CalculationResult;
32 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadResult;
33
34 import org.dive4elements.river.exports.AbstractExporter;
35
36 import org.dive4elements.river.model.River;
37 import org.dive4elements.river.utils.RiverUtils;
38 import org.dive4elements.river.utils.Formatter;
39 import org.dive4elements.river.artifacts.access.RangeAccess;
40
41 import au.com.bytecode.opencsv.CSVWriter;
42
43 public class SedimentLoadExporter
44 extends AbstractExporter
45 {
46 /** Private logger. */
47 private static Logger logger = Logger.getLogger(SedimentLoadExporter.class);
48
49
50 private SedimentLoadResult[] results;
51
52 public SedimentLoadExporter() {
53 }
54
55 /** Trivial init. */
56 @Override
57 public void init(Document request, OutputStream out, CallContext context) {
58 super.init(request, out, context);
59 logger.debug("init");
60 results = new SedimentLoadResult[0];
61 }
62
63
64 /** Process all stored data and write csv. */
65 @Override
66 protected void writeCSVData(CSVWriter writer) throws IOException {
67 writeCSVHeader(writer);
68
69 NumberFormat kmf = Formatter.getCalculationKm(context.getMeta());
70 /* writer.writeNext(new String[] { */
71 }
72
73 /** Writes i18ned header for csv file/stream. */
74 protected void writeCSVHeader(CSVWriter writer) {
75 logger.debug("writeCSVHeader()");
76
77 List<String> header = new LinkedList<String>();
78 if (results != null) {
79 /*header.add(msg(CSV_HEADER_KM, "km"));
80 header.add(msg(CSV_HEADER_VAL, "m"));*/
81 }
82 writer.writeNext(header.toArray(new String[header.size()]));
83 }
84
85 /** Store data internally, accepting only SedimentLoadResults[] in
86 * calculationresults data. */
87 @Override
88 protected void addData(Object data) {
89 if (!(data instanceof CalculationResult)) {
90 logger.warn("Invalid data type.");
91 return;
92 }
93 Object[] d = (Object[])((CalculationResult)data).getData();
94
95 if (!(d instanceof SedimentLoadResult[])) {
96 logger.warn("Invalid result object.");
97 return;
98 }
99 logger.debug("addData: Data added.");
100 results = (SedimentLoadResult[])d;
101 }
102
103 @Override
104 protected void writePDF(OutputStream out) {
105 logger.warn("Not implemented.");
106 }
107 }
108 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org