comparison artifacts/src/main/java/org/dive4elements/river/exports/fixings/ParametersExporter.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/exports/fixings/ParametersExporter.java@bd047b71ab37
children 4897a58c8746
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.exports.fixings;
2
3 import au.com.bytecode.opencsv.CSVWriter;
4
5 import org.dive4elements.artifacts.CallContext;
6
7 import org.dive4elements.river.artifacts.model.CalculationResult;
8 import org.dive4elements.river.artifacts.model.Parameters;
9
10 import org.dive4elements.river.artifacts.model.fixings.FixAnalysisResult;
11
12 import org.dive4elements.river.artifacts.resources.Resources;
13
14 import org.dive4elements.river.exports.AbstractExporter;
15
16 import java.io.IOException;
17 import java.io.OutputStream;
18
19 import java.text.NumberFormat;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.apache.log4j.Logger;
25
26 import org.w3c.dom.Document;
27
28 public class ParametersExporter
29 extends AbstractExporter
30 {
31 private static Logger log = Logger.getLogger(ParametersExporter.class);
32
33 protected List<Parameters> parametersList;
34
35 @Override
36 public void init(Document request, OutputStream out, CallContext context) {
37 log.debug("ParametersExporter.init");
38 super.init(request, out, context);
39 parametersList = new ArrayList<Parameters>();
40 }
41
42 @Override
43 protected void addData(Object d) {
44 log.debug("ParametersExporter.addData");
45 if (!(d instanceof CalculationResult)) {
46 log.warn("Invalid data type");
47 return;
48 }
49
50 Object data = ((CalculationResult)d).getData();
51 if (!(data instanceof FixAnalysisResult)) {
52 log.warn("Invalid data stored in result.");
53 return;
54 }
55
56 FixAnalysisResult result = (FixAnalysisResult)data;
57 parametersList.add(result.getParameters());
58 }
59
60 @Override
61 public void generate()
62 throws IOException
63 {
64 log.debug("ParametersExporter.generate");
65
66 if (facet == null) {
67 throw new IOException("invalid (null) facet for exporter");
68 }
69
70 if (facet.equals(FIX_PARAMETERS)) {
71 generateCSV();
72 }
73 else {
74 throw new IOException(
75 "invalid facet for exporter: '" + facet + "'");
76 }
77 }
78
79 @Override
80 protected void writeCSVData(final CSVWriter writer) throws IOException {
81
82 if (parametersList.isEmpty()) {
83 return;
84 }
85
86 Parameters parameters = parametersList.get(0);
87 writer.writeNext(parameters.getColumnNames());
88
89 final int numColumns = parameters.getNumberColumns();
90
91 parameters.visit(new Parameters.Visitor() {
92
93 String [] row = new String[numColumns];
94
95 NumberFormat format = NumberFormat.getInstance(
96 Resources.getLocale(context.getMeta()));
97
98 @Override
99 public void visit(double [] data) {
100 for (int i = 0; i < data.length; ++i) {
101 row[i] = format.format(data[i]);
102 }
103 writer.writeNext(row);
104 }
105 }, new double[numColumns]);
106
107 writer.flush();
108 }
109
110 @Override
111 protected void writePDF(OutputStream out) {
112 // TODO: Implement me!
113 }
114 }
115 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org