gernotbelger@8999: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9150: * Software engineering by gernotbelger@9150: * Björnsen Beratende Ingenieure GmbH gernotbelger@8999: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8999: * gernotbelger@8999: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8999: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8999: * documentation coming with Dive4Elements River for details. gernotbelger@8999: */ gernotbelger@8999: package org.dive4elements.river.artifacts.common; gernotbelger@8999: gernotbelger@8999: import java.text.NumberFormat; mschaefer@9157: import java.util.Date; gernotbelger@8999: gernotbelger@8999: import org.dive4elements.artifacts.CallContext; gernotbelger@9312: import org.dive4elements.river.artifacts.sinfo.common.SInfoI18NStrings; gernotbelger@8999: import org.dive4elements.river.utils.Formatter; gernotbelger@8999: gernotbelger@8999: /** gernotbelger@8999: * @author Domenico Nardi Tironi gernotbelger@8999: * gernotbelger@8999: */ gernotbelger@8999: public abstract class GeneralResultType extends AbstractResultType { gernotbelger@9150: gernotbelger@9150: private static final long serialVersionUID = 1L; gernotbelger@9150: gernotbelger@9150: public static final GeneralResultType station = new GeneralResultType(I18NStrings.UNIT_KM, I18NStrings.CSV_KM_HEADER) { gernotbelger@8999: @Override gernotbelger@8999: public String exportValue(final CallContext context, final Object value) { gernotbelger@8999: final double doubleValue = asDouble(value); gernotbelger@8999: return exportDoubleValue(context, doubleValue); gernotbelger@8999: } gernotbelger@8999: gernotbelger@8999: @Override gernotbelger@8999: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8999: return Formatter.getWaterlevelKM(context); gernotbelger@8999: } gernotbelger@8999: }; gernotbelger@9150: mschaefer@9157: public static final GeneralResultType date = new GeneralResultType(I18NStrings.UNIT_NONE, I18NStrings.CSV_META_DATE) { mschaefer@9157: @Override mschaefer@9157: public String exportValue(final CallContext context, final Object value) { mschaefer@9157: return exportDateValue(context, (Date) value); mschaefer@9157: } mschaefer@9157: mschaefer@9157: @Override mschaefer@9157: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9157: throw new UnsupportedOperationException(); mschaefer@9157: } mschaefer@9157: }; mschaefer@9157: gernotbelger@9150: private GeneralResultType(final String unit, final String csvHeader) { gernotbelger@9150: gernotbelger@8999: super(unit, csvHeader, csvHeader); gernotbelger@8999: } gernotbelger@9150: gernotbelger@9150: private GeneralResultType(final String unit, final String csvHeader, final String pdfHeader) { gernotbelger@8999: super(unit, csvHeader, pdfHeader); gernotbelger@8999: } gernotbelger@9312: gernotbelger@9312: public static final GeneralResultType location = new GeneralResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LOCATION_HEADER) { gernotbelger@9312: private static final long serialVersionUID = 1L; gernotbelger@9312: gernotbelger@9312: @Override gernotbelger@9312: public String exportValue(final CallContext context, final Object value) { gernotbelger@9312: return exportStringValue(value); gernotbelger@9312: } gernotbelger@9312: gernotbelger@9312: @Override gernotbelger@9312: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9312: throw new UnsupportedOperationException(); gernotbelger@9312: } gernotbelger@9312: }; gernotbelger@9312: gernotbelger@9312: public static final GeneralResultType dischargeQwithUnit = new GeneralResultType(I18NStrings.UNIT_NONE, "common.export.csv.header.q", gernotbelger@9312: "common.export.csv.header.q") { // Q [m³/s] gernotbelger@9312: private static final long serialVersionUID = 1L; gernotbelger@9312: gernotbelger@9312: @Override gernotbelger@9312: public String exportValue(final CallContext context, final Object value) { gernotbelger@9312: final double doubleValue = asDouble(value); gernotbelger@9312: return exportDoubleValue(context, doubleValue); gernotbelger@9312: } gernotbelger@9312: gernotbelger@9312: @Override gernotbelger@9312: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9312: return Formatter.getWaterlevelQ(context); gernotbelger@9312: } gernotbelger@9312: }; gernotbelger@9150: }