Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixATExport.java @ 8254:c87c87544cc6
Made call context injectors a list of comma separated classes.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 10 Sep 2014 12:42:39 +0200 |
parents | e4606eae8ea5 |
children | 5e38e2924c07 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
9 package org.dive4elements.river.exports.fixings; |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 |
3601
6c94153cc4a4
Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3600
diff
changeset
|
11 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
|
12 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
13 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
3601
6c94153cc4a4
Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3600
diff
changeset
|
14 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
15 import org.dive4elements.river.artifacts.D4EArtifact; |
3601
6c94153cc4a4
Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3600
diff
changeset
|
16 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
17 import org.dive4elements.river.artifacts.access.FixAccess; |
3601
6c94153cc4a4
Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3600
diff
changeset
|
18 |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6325
diff
changeset
|
19 import org.dive4elements.river.themes.ThemeDocument; |
6325
ee701de9c875
Add special case handling for Fixing AT export at a gauge
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
20 import org.dive4elements.river.utils.RiverUtils; |
ee701de9c875
Add special case handling for Fixing AT export at a gauge
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
21 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
22 import org.dive4elements.river.artifacts.math.fitting.Function; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
23 import org.dive4elements.river.artifacts.math.fitting.FunctionFactory; |
3601
6c94153cc4a4
Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3600
diff
changeset
|
24 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
25 import org.dive4elements.river.artifacts.model.CalculationResult; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
26 import org.dive4elements.river.artifacts.model.Parameters; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
27 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
28 import org.dive4elements.river.artifacts.model.fixings.FixResult; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
29 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5148
diff
changeset
|
30 import org.dive4elements.river.exports.AbstractExporter; |
3601
6c94153cc4a4
Removed superfluous import. s/Double.valueOf/Double.parseDouble/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3600
diff
changeset
|
31 |
6325
ee701de9c875
Add special case handling for Fixing AT export at a gauge
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
32 import org.dive4elements.river.model.River; |
ee701de9c875
Add special case handling for Fixing AT export at a gauge
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
33 |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 import java.io.IOException; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import java.io.OutputStream; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 import java.io.OutputStreamWriter; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 import java.io.Writer; |
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 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
|
40 |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 import org.w3c.dom.NodeList; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 |
3650
cbe2febe30cc
Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3601
diff
changeset
|
43 /** Export result of fixation analysis. */ |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 public class FixATExport extends AbstractExporter { |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
46 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
47 private static Logger log = |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 Logger.getLogger(FixATExport.class); |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 protected Function function; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 protected Parameters parameters; |
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 @Override |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6325
diff
changeset
|
55 public void doOut(ArtifactAndFacet bundle, ThemeDocument attr, boolean visible) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
56 log.debug("AT Export doOut()."); |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 Object data = bundle.getData(context); |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 if (data instanceof CalculationResult) { |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 CalculationResult cr = (CalculationResult)data; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 Object resData = cr.getData(); |
5055
3b974a24a8e1
Fixed AT-Export in 'ausgel. WSPL'.
Raimund Renkert <rrenkert@intevation.de>
parents:
4949
diff
changeset
|
61 if (resData instanceof FixResult) { |
3b974a24a8e1
Fixed AT-Export in 'ausgel. WSPL'.
Raimund Renkert <rrenkert@intevation.de>
parents:
4949
diff
changeset
|
62 this.parameters = ((FixResult)resData).getParameters(); |
3599
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 } |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
66 log.debug("No CalculationResult found for AT export."); |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 return; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 } |
6101
a0078e5e3b39
Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
69 FixAccess access = new FixAccess((D4EArtifact)this.master); |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 String f = access.getFunction(); |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 if (f == null || f.length() == 0) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
72 log.debug("No function found for AT export."); |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 return; |
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 this.function = FunctionFactory.getInstance().getFunction(f); |
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 |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 @Override |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 public void generate() throws IOException { |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 if (this.function == null || this.parameters == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6905
diff
changeset
|
81 log.debug("No function or paramters for AT export."); |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 return; |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 } |
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 Writer writer = new OutputStreamWriter(out, DEFAULT_CSV_CHARSET); |
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 FixATWriter atWriter = new FixATWriter(this.function, this.parameters); |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 NodeList nodes = request.getElementsByTagName("km"); |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 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
|
90 double dkm = Double.parseDouble(km); |
6325
ee701de9c875
Add special case handling for Fixing AT export at a gauge
Andre Heinecke <aheinecke@intevation.de>
parents:
6101
diff
changeset
|
91 River river = RiverUtils.getRiver((D4EArtifact)master); |
3599
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 atWriter.write(writer, context.getMeta(), river, dkm); |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 writer.close(); |
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 writeCSVData(CSVWriter writer) throws IOException { |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 // 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
|
99 } |
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 @Override |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
102 protected void writePDF(OutputStream out) { |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
103 // Implement me! |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
104 } |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
105 |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
106 @Override |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
107 protected void addData(Object data) { |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
108 // Nothing to do here. |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
109 } |
659c1111db13
FixA: Added exporter for AT files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
110 } |
3650
cbe2febe30cc
Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3601
diff
changeset
|
111 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |