gernotbelger@8996: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8996: * Software engineering by gernotbelger@8996: * Björnsen Beratende Ingenieure GmbH gernotbelger@8996: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8996: * gernotbelger@8996: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8996: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8996: * documentation coming with Dive4Elements River for details. gernotbelger@8996: */ gernotbelger@9328: package org.dive4elements.river.artifacts.uinfo.common; gernotbelger@8996: gernotbelger@8996: import java.text.NumberFormat; gernotbelger@8996: gernotbelger@8996: import org.dive4elements.artifacts.CallContext; gernotbelger@8996: import org.dive4elements.river.artifacts.common.AbstractResultType; gernotbelger@8996: import org.dive4elements.river.utils.Formatter; gernotbelger@8996: gernotbelger@8996: /** gernotbelger@8996: * @author Domenico Nardi Tironi gernotbelger@8996: * gernotbelger@8996: */ gernotbelger@8996: public abstract class UInfoResultType extends AbstractResultType { gernotbelger@8996: gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9429: protected UInfoResultType(final String unit, final String csvHeader) { gernotbelger@8996: super(unit, csvHeader, csvHeader); gernotbelger@8996: } gernotbelger@8996: mschaefer@9361: public static final UInfoResultType customMultiRowColSalixScenarios = new UInfoResultType(null, "uinfo.export.salix_line.csv.header.scenario") { gernotbelger@9243: private static final long serialVersionUID = 1L; gernotbelger@9243: gernotbelger@9243: @Override gernotbelger@9243: public String exportValue(final CallContext context, final Object value) { gernotbelger@9243: throw new UnsupportedOperationException(); gernotbelger@9243: } gernotbelger@9243: gernotbelger@9243: @Override gernotbelger@9243: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9243: throw new UnsupportedOperationException(); gernotbelger@9243: } gernotbelger@9243: }; gernotbelger@9243: mschaefer@9361: public static final UInfoResultType salix_mw_mnw = new UInfoResultType(null, "uinfo.export.salix_line.csv.header.mw_mnw") { gernotbelger@9243: private static final long serialVersionUID = 1L; gernotbelger@9243: gernotbelger@9243: @Override gernotbelger@9243: public String exportValue(final CallContext context, final Object value) { gernotbelger@9243: final double doubleValue = asDouble(value); gernotbelger@9243: return exportDoubleValue(context, doubleValue); gernotbelger@9243: } gernotbelger@9243: gernotbelger@9243: @Override gernotbelger@9243: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9243: // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of gernotbelger@9243: // digits. gernotbelger@9243: return Formatter.getSalixLine(context); gernotbelger@9243: } gernotbelger@9243: }; gernotbelger@9243: gernotbelger@8996: public static final UInfoResultType salixline = new UInfoResultType(null, "uinfo.export.salix_line.csv.header.salix_line") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8996: @Override gernotbelger@8996: public String exportValue(final CallContext context, final Object value) { gernotbelger@8996: final double doubleValue = asDouble(value); gernotbelger@8996: return exportDoubleValue(context, doubleValue); gernotbelger@8996: } gernotbelger@8996: gernotbelger@8996: @Override gernotbelger@8996: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8996: // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of gernotbelger@8996: // digits. gernotbelger@8996: return Formatter.getSalixLine(context); gernotbelger@8996: } gernotbelger@8996: }; gernotbelger@8996: mschaefer@9432: public static final UInfoResultType salixw = new UInfoResultType(null, null) { mschaefer@9432: private static final long serialVersionUID = 1L; mschaefer@9432: mschaefer@9432: @Override mschaefer@9432: public String exportValue(final CallContext context, final Object value) { mschaefer@9432: throw new UnsupportedOperationException(); mschaefer@9432: } mschaefer@9432: mschaefer@9432: @Override mschaefer@9432: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: throw new UnsupportedOperationException(); mschaefer@9432: } mschaefer@9432: }; mschaefer@9432: gernotbelger@9006: public static final UInfoResultType vegname = new UInfoResultType(null, "uinfo.export.csv.meta.header.veg.name") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9006: @Override gernotbelger@9006: public String exportValue(final CallContext context, final Object value) { gernotbelger@9006: return exportStringValue(value); gernotbelger@9006: } gernotbelger@9006: gernotbelger@9006: @Override gernotbelger@9006: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9006: throw new UnsupportedOperationException(); gernotbelger@9006: } gernotbelger@9006: }; gernotbelger@9006: gernotbelger@9260: public static final UInfoResultType vegzone_color = new UInfoResultType(null, "uinfo.export.csv.meta.header.veg.color") { gernotbelger@9260: private static final long serialVersionUID = 1L; gernotbelger@9260: gernotbelger@9260: @Override gernotbelger@9260: public String exportValue(final CallContext context, final Object value) { gernotbelger@9260: return exportStringValue(value); gernotbelger@9260: } gernotbelger@9260: gernotbelger@9260: @Override gernotbelger@9260: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9260: throw new UnsupportedOperationException(); gernotbelger@9260: } gernotbelger@9260: }; gernotbelger@9006: public static final UInfoResultType vegdauervon = new UInfoResultType(null, "uinfo.export.csv.meta.header.veg.dauervon") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9006: @Override gernotbelger@9006: public String exportValue(final CallContext context, final Object value) { gernotbelger@9101: final double doubleValue = asDouble(value); gernotbelger@9101: return exportDoubleValue(context, doubleValue); gernotbelger@9006: } gernotbelger@9006: gernotbelger@9006: @Override gernotbelger@9006: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9006: // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of gernotbelger@9006: // digits. gernotbelger@9006: return Formatter.getUeberflutungsdauer(context); gernotbelger@9006: } gernotbelger@9006: }; gernotbelger@9006: gernotbelger@9006: public static final UInfoResultType vegdauerbis = new UInfoResultType(null, "uinfo.export.csv.meta.header.veg.dauerbis") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9006: @Override gernotbelger@9006: public String exportValue(final CallContext context, final Object value) { gernotbelger@9260: // valix hex-Check? gernotbelger@9260: return String.valueOf(value); gernotbelger@9006: } gernotbelger@9006: gernotbelger@9006: @Override gernotbelger@9006: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9006: // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of gernotbelger@9006: // digits. gernotbelger@9006: return Formatter.getUeberflutungsdauer(context); gernotbelger@9006: } gernotbelger@9006: }; gernotbelger@9429: gernotbelger@9429: public static final UInfoResultType waterlevelMNW = new UInfoResultType(null, null) { gernotbelger@9429: private static final long serialVersionUID = 1L; gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: public String exportValue(final CallContext context, final Object value) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: }; gernotbelger@9429: public static final UInfoResultType waterlevelMW = new UInfoResultType(null, null) { gernotbelger@9429: private static final long serialVersionUID = 1L; gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: public String exportValue(final CallContext context, final Object value) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: }; gernotbelger@9429: public static final UInfoResultType waterlevelMHW = new UInfoResultType(null, null) { gernotbelger@9429: private static final long serialVersionUID = 1L; gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: public String exportValue(final CallContext context, final Object value) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: }; gernotbelger@9429: public static final UInfoResultType waterlevelMH5 = new UInfoResultType(null, null) { gernotbelger@9429: private static final long serialVersionUID = 1L; gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: public String exportValue(final CallContext context, final Object value) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: gernotbelger@9429: @Override gernotbelger@9429: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9429: throw new UnsupportedOperationException(); gernotbelger@9429: } gernotbelger@9429: }; gernotbelger@9429: }