annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixATExport.java @ 4866:acfd48384835

Changed data field names in fix analsis to ld_from, ld_to, ld step. * Changed names in state model. * Changed data fields in artifact. * Use RangeAccess to get location/distance data.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 25 Jan 2013 11:53:04 +0100
parents cbe2febe30cc
children 53be73133104
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
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@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
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@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 }
4866
acfd48384835 Changed data field names in fix analsis to ld_from, ld_to, ld step.
Raimund Renkert <rrenkert@intevation.de>
parents: 3650
diff changeset
59 FixAccess access = new FixAccess((FLYSArtifact)this.master, context);
3599
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
4866
acfd48384835 Changed data field names in fix analsis to ld_from, ld_to, ld step.
Raimund Renkert <rrenkert@intevation.de>
parents: 3650
diff changeset
77 FixAccess access = new FixAccess((FLYSArtifact)this.master, context);
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 FixATWriter atWriter = new FixATWriter(this.function, this.parameters);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 NodeList nodes = request.getElementsByTagName("km");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 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
81 double dkm = Double.parseDouble(km);
4866
acfd48384835 Changed data field names in fix analsis to ld_from, ld_to, ld step.
Raimund Renkert <rrenkert@intevation.de>
parents: 3650
diff changeset
82 String river = access.getRiver();
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 atWriter.write(writer, context.getMeta(), river, dkm);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 writer.close();
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
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 protected void writeCSVData(CSVWriter writer) throws IOException {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 // 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
90 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 protected void writePDF(OutputStream out) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 // Implement me!
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
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 protected void addData(Object data) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 // Nothing to do here.
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 }
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3601
diff changeset
102 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org