comparison artifacts/src/main/java/org/dive4elements/river/exports/fixings/ParametersExporter.java @ 9467:7d7aa54afe0c

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

http://dive4elements.wald.intevation.org