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@8996: package org.dive4elements.river.artifacts.uinfo.commons; 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@8996: public UInfoResultType(final String unit, final String csvHeader) { gernotbelger@8996: super(unit, csvHeader, csvHeader); gernotbelger@8996: gernotbelger@8996: } gernotbelger@8996: gernotbelger@8996: @Override gernotbelger@8996: public String exportValue(final CallContext context, final Object value) { gernotbelger@8996: // TODO Auto-generated method stub gernotbelger@8996: return null; gernotbelger@8996: } gernotbelger@8996: gernotbelger@8996: @Override gernotbelger@8996: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8996: // TODO Auto-generated method stub gernotbelger@8996: return null; gernotbelger@8996: } gernotbelger@8996: 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: gernotbelger@8996: public static final UInfoResultType salixlinehist = new UInfoResultType(null, "uinfo.export.salix_line.csv.header.hist") { 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: gernotbelger@8996: public static final UInfoResultType salixlinescen = new UInfoResultType(null, "uinfo.export.salix_line.csv.header.scen") { 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: 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@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@9069: return exportStringValue(value); gernotbelger@9069: // final double doubleValue = asDouble(value); gernotbelger@9069: // 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@9069: return exportStringValue(value); gernotbelger@9069: // final double doubleValue = asDouble(value); gernotbelger@9069: // 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@8996: }