sascha@3217: package de.intevation.flys.exports.fixings; sascha@3217: sascha@3217: import au.com.bytecode.opencsv.CSVWriter; sascha@3217: sascha@3217: import de.intevation.artifacts.CallContext; sascha@3217: sascha@3217: import de.intevation.flys.artifacts.model.CalculationResult; sascha@3217: import de.intevation.flys.artifacts.model.Parameters; sascha@3217: sascha@3217: import de.intevation.flys.artifacts.model.fixings.FixResult; sascha@3217: sascha@3217: import de.intevation.flys.artifacts.resources.Resources; sascha@3217: sascha@3217: import de.intevation.flys.exports.AbstractExporter; sascha@3217: sascha@3217: import java.io.IOException; sascha@3217: import java.io.OutputStream; sascha@3217: sascha@3217: import java.text.NumberFormat; sascha@3217: sascha@3217: import java.util.ArrayList; sascha@3217: import java.util.List; sascha@3217: sascha@3217: import org.apache.log4j.Logger; sascha@3217: sascha@3217: import org.w3c.dom.Document; sascha@3217: sascha@3217: public class ParametersExporter sascha@3217: extends AbstractExporter sascha@3217: { sascha@3217: private static Logger log = Logger.getLogger(DeltaWtExporter.class); sascha@3217: sascha@3217: protected List parametersList; sascha@3217: sascha@3217: @Override sascha@3217: public void init(Document request, OutputStream out, CallContext context) { sascha@3217: log.debug("ParametersExporter.init"); sascha@3217: super.init(request, out, context); sascha@3217: parametersList = new ArrayList(); sascha@3217: } sascha@3217: sascha@3217: @Override sascha@3217: protected void addData(Object d) { sascha@3217: log.debug("ParametersExporter.addData"); sascha@3217: if (!(d instanceof CalculationResult)) { sascha@3217: log.warn("Invalid data type"); sascha@3217: return; sascha@3217: } sascha@3217: sascha@3217: Object data = ((CalculationResult)d).getData(); sascha@3217: if (!(data instanceof FixResult)) { sascha@3217: log.warn("Invalid data stored in result."); sascha@3217: } sascha@3217: FixResult result = (FixResult)data; sascha@3217: parametersList.add(result.getParameters()); sascha@3217: } sascha@3217: sascha@3217: @Override sascha@3217: protected void writeCSVData(final CSVWriter writer) throws IOException { sascha@3217: sascha@3217: if (parametersList.isEmpty()) { sascha@3217: return; sascha@3217: } sascha@3217: sascha@3217: Parameters parameters = parametersList.get(0); sascha@3217: writer.writeNext(parameters.getColumnNames()); sascha@3217: sascha@3217: final int numColumns = parameters.getNumberColumns(); sascha@3217: sascha@3217: parameters.visit(new Parameters.Visitor() { sascha@3217: sascha@3217: String [] row = new String[numColumns]; sascha@3217: sascha@3217: NumberFormat format = NumberFormat.getInstance( sascha@3217: Resources.getLocale(context.getMeta())); sascha@3217: sascha@3217: @Override sascha@3217: public void visit(double [] data) { sascha@3217: for (int i = 0; i < data.length; ++i) { sascha@3217: row[i] = format.format(data[i]); sascha@3217: } sascha@3217: writer.writeNext(row); sascha@3217: } sascha@3217: }, new double[numColumns]); sascha@3217: sascha@3217: writer.flush(); sascha@3217: } sascha@3217: sascha@3217: @Override sascha@3217: protected void writePDF(OutputStream out) { sascha@3217: // TODO: Implement me! sascha@3217: } sascha@3217: } sascha@3217: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :