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 }

http://dive4elements.wald.intevation.org