gernotbelger@9195: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9195: * Software engineering by gernotbelger@9195: * Björnsen Beratende Ingenieure GmbH gernotbelger@9195: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9195: * gernotbelger@9195: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9195: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9195: * documentation coming with Dive4Elements River for details. gernotbelger@9195: */ gernotbelger@9195: package org.dive4elements.river.artifacts.common; gernotbelger@9195: gernotbelger@9195: import java.text.NumberFormat; gernotbelger@9195: gernotbelger@9195: import org.dive4elements.artifacts.CallContext; gernotbelger@9195: import org.dive4elements.river.artifacts.resources.Resources; gernotbelger@9195: import org.dive4elements.river.utils.Formatter; gernotbelger@9195: gernotbelger@9195: /** gernotbelger@9195: * @author Domenico Nardi Tironi gernotbelger@9195: */ gernotbelger@9195: public abstract class AbstractExportContext implements IExportContext { gernotbelger@9195: gernotbelger@9195: private NumberFormat qFormat = null; gernotbelger@9195: gernotbelger@9195: private NumberFormat flowDepthFormat = null; gernotbelger@9195: gernotbelger@9195: private NumberFormat kmFormat = null; gernotbelger@9195: gernotbelger@9195: /** The CallContext object. */ gernotbelger@9195: private final CallContext context; gernotbelger@9195: gernotbelger@9195: private final AbstractCalculationResults results; gernotbelger@9195: gernotbelger@9195: public AbstractExportContext(final CallContext context, final AbstractCalculationResults results) { gernotbelger@9195: this.context = context; gernotbelger@9195: this.results = results; gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: protected final CallContext getContext() { gernotbelger@9195: return this.context; gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: @Override gernotbelger@9195: public final > RESULTS getResults() { gernotbelger@9195: @SuppressWarnings("unchecked") gernotbelger@9195: final RESULTS resultsCast = (RESULTS) this.results; gernotbelger@9195: return resultsCast; gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: // copy from AbstractExporter TODO merge with ExportContextPDF gernotbelger@9195: protected NumberFormat getKmFormatter() { gernotbelger@9195: gernotbelger@9195: if (this.kmFormat == null) gernotbelger@9195: this.kmFormat = Formatter.getWaterlevelKM(getContext()); gernotbelger@9195: gernotbelger@9195: return this.kmFormat; gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: public NumberFormat getQFormatter() { gernotbelger@9195: if (this.qFormat == null) gernotbelger@9195: this.qFormat = Formatter.getWaterlevelQ(this.context); gernotbelger@9195: gernotbelger@9195: return this.qFormat; gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: public final NumberFormat getFlowDepthFormatter() { gernotbelger@9195: if (this.flowDepthFormat == null) gernotbelger@9195: this.flowDepthFormat = Formatter.getFlowDepth(this.context); gernotbelger@9195: gernotbelger@9195: return this.flowDepthFormat; gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: protected String msg(final String key) { gernotbelger@9195: return Resources.getMsg(this.context.getMeta(), key, key); gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: protected final String msg(final String key, final Object... args) { gernotbelger@9195: return Resources.getMsg(this.context.getMeta(), key, key, args); gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: @Override gernotbelger@9195: public final String formatRowValue(final ResultRow row, final IResultType type) { gernotbelger@9195: return row.exportValue(this.context, type); gernotbelger@9195: } gernotbelger@9195: }