Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixATExport.java @ 3599:659c1111db13
FixA: Added exporter for AT files.
flys-artifacts/trunk@5224 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 17 Aug 2012 11:25:37 +0000 |
parents | |
children | b5b3e73143a6 |
comparison
equal
deleted
inserted
replaced
3598:a1cdf8be9fd0 | 3599:659c1111db13 |
---|---|
1 package de.intevation.flys.exports.fixings; | |
2 | |
3 import java.io.IOException; | |
4 import java.io.OutputStream; | |
5 import java.io.OutputStreamWriter; | |
6 import java.io.Writer; | |
7 | |
8 import org.apache.log4j.Logger; | |
9 import org.w3c.dom.Document; | |
10 import org.w3c.dom.NodeList; | |
11 | |
12 import au.com.bytecode.opencsv.CSVWriter; | |
13 | |
14 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | |
15 import de.intevation.artifactdatabase.state.Settings; | |
16 import de.intevation.artifacts.Artifact; | |
17 import de.intevation.artifacts.CallContext; | |
18 import de.intevation.artifacts.common.utils.XMLUtils; | |
19 import de.intevation.flys.artifacts.FLYSArtifact; | |
20 import de.intevation.flys.artifacts.access.FixAccess; | |
21 import de.intevation.flys.artifacts.math.fitting.Function; | |
22 import de.intevation.flys.artifacts.math.fitting.FunctionFactory; | |
23 import de.intevation.flys.artifacts.model.CalculationResult; | |
24 import de.intevation.flys.artifacts.model.Parameters; | |
25 import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult; | |
26 import de.intevation.flys.collections.FLYSArtifactCollection; | |
27 import de.intevation.flys.exports.AbstractExporter; | |
28 import de.intevation.flys.exports.OutGenerator; | |
29 import de.intevation.flys.utils.FLYSUtils; | |
30 | |
31 public class FixATExport extends AbstractExporter { | |
32 | |
33 private static Logger logger = | |
34 Logger.getLogger(FixATExport.class); | |
35 | |
36 protected Function function; | |
37 protected Parameters parameters; | |
38 | |
39 | |
40 @Override | |
41 public void doOut(ArtifactAndFacet bundle, Document attr, boolean visible) { | |
42 logger.debug("AT Export doOut()."); | |
43 Object data = bundle.getData(context); | |
44 if (data instanceof CalculationResult) { | |
45 CalculationResult cr = (CalculationResult)data; | |
46 Object resData = cr.getData(); | |
47 if (resData instanceof FixAnalysisResult) { | |
48 this.parameters = ((FixAnalysisResult)resData).getParameters(); | |
49 } | |
50 } | |
51 else { | |
52 logger.debug("No CalculationResult found for AT export."); | |
53 return; | |
54 } | |
55 FixAccess access = new FixAccess((FLYSArtifact)this.master); | |
56 String f = access.getFunction(); | |
57 if (f == null || f.length() == 0) { | |
58 logger.debug("No function found for AT export."); | |
59 return; | |
60 } | |
61 this.function = FunctionFactory.getInstance().getFunction(f); | |
62 } | |
63 | |
64 @Override | |
65 public void generate() throws IOException { | |
66 if (this.function == null || this.parameters == null) { | |
67 logger.debug("No function or paramters for AT export."); | |
68 return; | |
69 } | |
70 | |
71 Writer writer = new OutputStreamWriter(out, DEFAULT_CSV_CHARSET); | |
72 | |
73 FixATWriter atWriter = new FixATWriter(this.function, this.parameters); | |
74 logger.debug("the request: " + XMLUtils.toString(request)); | |
75 NodeList nodes = request.getElementsByTagName("km"); | |
76 String km = nodes.item(0).getTextContent(); | |
77 logger.debug("the km: " + km); | |
78 double dkm = Double.valueOf(km); | |
79 String river = FLYSUtils.getRivername((FLYSArtifact)master); | |
80 atWriter.write(writer, context.getMeta(), river, dkm); | |
81 writer.close(); | |
82 } | |
83 | |
84 @Override | |
85 protected void writeCSVData(CSVWriter writer) throws IOException { | |
86 // The concrete writer is used to write csv data. | |
87 } | |
88 | |
89 @Override | |
90 protected void writePDF(OutputStream out) { | |
91 // Implement me! | |
92 } | |
93 | |
94 @Override | |
95 protected void addData(Object data) { | |
96 // Nothing to do here. | |
97 } | |
98 | |
99 } |