Mercurial > dive4elements > river
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 : |