annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixATExport.java @ 3723:7b14d00bca8a

Cosmetics, docs. flys-artifacts/trunk@5391 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 07 Sep 2012 13:49:14 +0000
parents 6c94153cc4a4
children acfd48384835
rev   line source
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports.fixings;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
3601
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
3 import au.com.bytecode.opencsv.CSVWriter;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
4
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
5 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
6
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
7 import de.intevation.flys.artifacts.FLYSArtifact;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
8
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
9 import de.intevation.flys.artifacts.access.FixAccess;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
10
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
11 import de.intevation.flys.artifacts.math.fitting.Function;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
12 import de.intevation.flys.artifacts.math.fitting.FunctionFactory;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
13
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
14 import de.intevation.flys.artifacts.model.CalculationResult;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
15 import de.intevation.flys.artifacts.model.Parameters;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
16
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
17 import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
18
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
19 import de.intevation.flys.exports.AbstractExporter;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
20
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
21 import de.intevation.flys.utils.FLYSUtils;
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
22
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import java.io.IOException;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import java.io.OutputStream;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import java.io.OutputStreamWriter;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import java.io.Writer;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 import org.apache.log4j.Logger;
3601
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
29
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import org.w3c.dom.Document;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 import org.w3c.dom.NodeList;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32
3723
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3601
diff changeset
33 /** Export result of fixation analysis. */
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 public class FixATExport extends AbstractExporter {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35
3723
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3601
diff changeset
36 /** Private logger. */
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 private static Logger logger =
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 Logger.getLogger(FixATExport.class);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 protected Function function;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 protected Parameters parameters;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 public void doOut(ArtifactAndFacet bundle, Document attr, boolean visible) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 logger.debug("AT Export doOut().");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 Object data = bundle.getData(context);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 if (data instanceof CalculationResult) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 CalculationResult cr = (CalculationResult)data;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 Object resData = cr.getData();
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 if (resData instanceof FixAnalysisResult) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 this.parameters = ((FixAnalysisResult)resData).getParameters();
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 else {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 logger.debug("No CalculationResult found for AT export.");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 return;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 FixAccess access = new FixAccess((FLYSArtifact)this.master);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 String f = access.getFunction();
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 if (f == null || f.length() == 0) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 logger.debug("No function found for AT export.");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 return;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 this.function = FunctionFactory.getInstance().getFunction(f);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 public void generate() throws IOException {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 if (this.function == null || this.parameters == null) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 logger.debug("No function or paramters for AT export.");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 return;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 Writer writer = new OutputStreamWriter(out, DEFAULT_CSV_CHARSET);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 FixATWriter atWriter = new FixATWriter(this.function, this.parameters);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 NodeList nodes = request.getElementsByTagName("km");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 String km = nodes.item(0).getTextContent();
3601
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
80 double dkm = Double.parseDouble(km);
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 String river = FLYSUtils.getRivername((FLYSArtifact)master);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 atWriter.write(writer, context.getMeta(), river, dkm);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 writer.close();
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 protected void writeCSVData(CSVWriter writer) throws IOException {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 // The concrete writer is used to write csv data.
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 protected void writePDF(OutputStream out) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 // Implement me!
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 protected void addData(Object data) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 // Nothing to do here.
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 }
3723
7b14d00bca8a Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3601
diff changeset
101 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org