diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixATExport.java	Fri Aug 17 11:25:37 2012 +0000
@@ -0,0 +1,99 @@
+package de.intevation.flys.exports.fixings;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+
+import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+
+import au.com.bytecode.opencsv.CSVWriter;
+
+import de.intevation.artifactdatabase.state.ArtifactAndFacet;
+import de.intevation.artifactdatabase.state.Settings;
+import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallContext;
+import de.intevation.artifacts.common.utils.XMLUtils;
+import de.intevation.flys.artifacts.FLYSArtifact;
+import de.intevation.flys.artifacts.access.FixAccess;
+import de.intevation.flys.artifacts.math.fitting.Function;
+import de.intevation.flys.artifacts.math.fitting.FunctionFactory;
+import de.intevation.flys.artifacts.model.CalculationResult;
+import de.intevation.flys.artifacts.model.Parameters;
+import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult;
+import de.intevation.flys.collections.FLYSArtifactCollection;
+import de.intevation.flys.exports.AbstractExporter;
+import de.intevation.flys.exports.OutGenerator;
+import de.intevation.flys.utils.FLYSUtils;
+
+public class FixATExport extends AbstractExporter {
+
+    private static Logger logger =
+        Logger.getLogger(FixATExport.class);
+
+    protected Function function;
+    protected Parameters parameters;
+
+
+    @Override
+    public void doOut(ArtifactAndFacet bundle, Document attr, boolean visible) {
+        logger.debug("AT Export doOut().");
+        Object data = bundle.getData(context);
+        if (data instanceof CalculationResult) {
+            CalculationResult cr = (CalculationResult)data;
+            Object resData = cr.getData();
+            if (resData instanceof FixAnalysisResult) {
+                this.parameters = ((FixAnalysisResult)resData).getParameters();
+            }
+        }
+        else {
+            logger.debug("No CalculationResult found for AT export.");
+            return;
+        }
+        FixAccess access = new FixAccess((FLYSArtifact)this.master);
+        String f = access.getFunction();
+        if (f == null || f.length() == 0) {
+            logger.debug("No function found for AT export.");
+            return;
+        }
+        this.function = FunctionFactory.getInstance().getFunction(f);
+    }
+
+    @Override
+    public void generate() throws IOException {
+        if (this.function == null || this.parameters == null) {
+            logger.debug("No function or paramters for AT export.");
+            return;
+        }
+
+        Writer writer = new OutputStreamWriter(out, DEFAULT_CSV_CHARSET);
+
+        FixATWriter atWriter = new FixATWriter(this.function, this.parameters);
+        logger.debug("the request: " + XMLUtils.toString(request));
+        NodeList nodes = request.getElementsByTagName("km");
+        String km = nodes.item(0).getTextContent();
+        logger.debug("the km: " + km);
+        double dkm = Double.valueOf(km);
+        String river = FLYSUtils.getRivername((FLYSArtifact)master);
+        atWriter.write(writer, context.getMeta(), river, dkm);
+        writer.close();
+    }
+
+    @Override
+    protected void writeCSVData(CSVWriter writer) throws IOException {
+        // The concrete writer is used to write csv data.
+    }
+
+    @Override
+    protected void writePDF(OutputStream out) {
+        // Implement me!
+    }
+
+    @Override
+    protected void addData(Object data) {
+        // Nothing to do here.
+    }
+
+}

http://dive4elements.wald.intevation.org