Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/exports/fixings/ParametersExporter.java @ 9467:7d7aa54afe0c
little improvements
author | gernotbelger |
---|---|
date | Thu, 30 Aug 2018 14:09:44 +0200 |
parents | 41567bf1e131 |
children |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.exports.fixings; import java.io.IOException; import java.io.OutputStream; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.model.Parameters; import org.dive4elements.river.artifacts.model.fixings.FixResult; import org.dive4elements.river.artifacts.resources.Resources; import org.dive4elements.river.exports.AbstractExporter; import au.com.bytecode.opencsv.CSVWriter; public class ParametersExporter extends AbstractExporter { private static Logger log = Logger.getLogger(ParametersExporter.class); protected List<Parameters> parametersList; public ParametersExporter() { this.parametersList = new ArrayList<>(); } @Override protected void addData(final Object d) { log.debug("ParametersExporter.addData"); if (!(d instanceof CalculationResult)) { log.warn("Invalid data type"); return; } final Object data = ((CalculationResult) d).getData(); if (!(data instanceof FixResult)) { log.warn("Invalid data stored in result."); return; } final FixResult result = (FixResult) data; this.parametersList.add(result.getParameters()); } @Override public void generate() throws IOException { log.debug("ParametersExporter.generate"); if (this.facet == null) { throw new IOException("invalid (null) facet for exporter"); } if (this.facet.equals(FIX_PARAMETERS)) { generateCSV(); } else { throw new IOException("invalid facet for exporter: '" + this.facet + "'"); } } @Override protected void writeCSVData(final CSVWriter writer) throws IOException { if (this.parametersList.isEmpty()) { return; } final Parameters parameters = this.parametersList.get(0); writer.writeNext(parameters.getColumnNames()); final int numColumns = parameters.getNumberColumns(); parameters.visit(new Parameters.Visitor() { String[] row = new String[numColumns]; NumberFormat format = NumberFormat.getInstance(Resources.getLocale(ParametersExporter.this.context.getMeta())); @Override public void visit(final double[] data) { for (int i = 0; i < data.length; ++i) { this.row[i] = this.format.format(data[i]); } writer.writeNext(this.row); } }, new double[numColumns]); writer.flush(); } @Override protected void writePDF(final OutputStream out) { // TODO: Implement me! } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :