annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixATExport.java @ 5055:3b974a24a8e1

Fixed AT-Export in 'ausgel. WSPL'. * Added facet. * Fixed download link. * Use toplevel fixings result to get function parameters.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 20 Feb 2013 15:27:29 +0100
parents 53be73133104
children 3d01658d9c9c
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;
5055
3b974a24a8e1 Fixed AT-Export in 'ausgel. WSPL'.
Raimund Renkert <rrenkert@intevation.de>
parents: 4949
diff changeset
18 import de.intevation.flys.artifacts.model.fixings.FixResult;
3601
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
19
6c94153cc4a4 Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3600
diff changeset
20 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
21
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import java.io.IOException;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import java.io.OutputStream;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import java.io.OutputStreamWriter;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import java.io.Writer;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 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
28
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 import org.w3c.dom.Document;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import org.w3c.dom.NodeList;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3601
diff changeset
32 /** Export result of fixation analysis. */
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 public class FixATExport extends AbstractExporter {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3601
diff changeset
35 /** Private logger. */
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 private static Logger logger =
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 Logger.getLogger(FixATExport.class);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 protected Function function;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 protected Parameters parameters;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
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 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 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
45 logger.debug("AT Export doOut().");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 Object data = bundle.getData(context);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 if (data instanceof CalculationResult) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 CalculationResult cr = (CalculationResult)data;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 Object resData = cr.getData();
5055
3b974a24a8e1 Fixed AT-Export in 'ausgel. WSPL'.
Raimund Renkert <rrenkert@intevation.de>
parents: 4949
diff changeset
50 if (resData instanceof FixResult) {
3b974a24a8e1 Fixed AT-Export in 'ausgel. WSPL'.
Raimund Renkert <rrenkert@intevation.de>
parents: 4949
diff changeset
51 this.parameters = ((FixResult)resData).getParameters();
3599
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 }
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 else {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 logger.debug("No CalculationResult found for AT export.");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 return;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 }
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
58 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
59 String f = access.getFunction();
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 if (f == null || f.length() == 0) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 logger.debug("No function found for AT export.");
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 return;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 }
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 this.function = FunctionFactory.getInstance().getFunction(f);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 }
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 @Override
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 public void generate() throws IOException {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 if (this.function == null || this.parameters == null) {
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 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
71 return;
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 }
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 Writer writer = new OutputStreamWriter(out, DEFAULT_CSV_CHARSET);
659c1111db13 FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75
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
76 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
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);
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
81 String river = access.getRiver();
3599
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 }
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@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