comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/ParametersExporter.java @ 3217:79dd823733e2

FixA: Added parameter exporter. flys-artifacts/trunk@4840 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sat, 30 Jun 2012 22:02:37 +0000
parents
children 282c9da923ab
comparison
equal deleted inserted replaced
3216:a46910e61dfb 3217:79dd823733e2
1 package de.intevation.flys.exports.fixings;
2
3 import au.com.bytecode.opencsv.CSVWriter;
4
5 import de.intevation.artifacts.CallContext;
6
7 import de.intevation.flys.artifacts.model.CalculationResult;
8 import de.intevation.flys.artifacts.model.Parameters;
9
10 import de.intevation.flys.artifacts.model.fixings.FixResult;
11
12 import de.intevation.flys.artifacts.resources.Resources;
13
14 import de.intevation.flys.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(DeltaWtExporter.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 FixResult)) {
52 log.warn("Invalid data stored in result.");
53 }
54 FixResult result = (FixResult)data;
55 parametersList.add(result.getParameters());
56 }
57
58 @Override
59 protected void writeCSVData(final CSVWriter writer) throws IOException {
60
61 if (parametersList.isEmpty()) {
62 return;
63 }
64
65 Parameters parameters = parametersList.get(0);
66 writer.writeNext(parameters.getColumnNames());
67
68 final int numColumns = parameters.getNumberColumns();
69
70 parameters.visit(new Parameters.Visitor() {
71
72 String [] row = new String[numColumns];
73
74 NumberFormat format = NumberFormat.getInstance(
75 Resources.getLocale(context.getMeta()));
76
77 @Override
78 public void visit(double [] data) {
79 for (int i = 0; i < data.length; ++i) {
80 row[i] = format.format(data[i]);
81 }
82 writer.writeNext(row);
83 }
84 }, new double[numColumns]);
85
86 writer.flush();
87 }
88
89 @Override
90 protected void writePDF(OutputStream out) {
91 // TODO: Implement me!
92 }
93 }
94 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org