gernotbelger@8948: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8948: * Software engineering by gernotbelger@8948: * Björnsen Beratende Ingenieure GmbH gernotbelger@8948: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8948: * gernotbelger@8948: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8948: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8948: * documentation coming with Dive4Elements River for details. gernotbelger@8948: */ gernotbelger@8948: package org.dive4elements.river.artifacts.sinfo.common; gernotbelger@8948: gernotbelger@8948: import java.text.NumberFormat; gernotbelger@8948: gernotbelger@8948: import org.apache.commons.lang.StringUtils; gernotbelger@8948: import org.dive4elements.artifacts.CallContext; gernotbelger@9000: import org.dive4elements.river.artifacts.common.AbstractResultType; gernotbelger@9000: import org.dive4elements.river.artifacts.common.I18NStrings; gernotbelger@8948: import org.dive4elements.river.artifacts.resources.Resources; gernotbelger@8948: import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKind; mschaefer@9229: import org.dive4elements.river.model.Attribute.AttributeKey; gernotbelger@8948: import org.dive4elements.river.utils.Formatter; gernotbelger@8948: import org.dive4elements.river.utils.RiverUtils; gernotbelger@8948: gernotbelger@8948: /** gernotbelger@8948: * Result type for data that goes into {@link SInfoResultRow}s. gernotbelger@8948: * gernotbelger@8948: * @author Gernot Belger gernotbelger@8948: */ gernotbelger@9000: public abstract class SInfoResultType extends AbstractResultType { gernotbelger@8948: gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: private SInfoResultType(final String unit, final String csvHeader) { gernotbelger@9000: super(unit, csvHeader, csvHeader); gernotbelger@9000: } gernotbelger@8948: gernotbelger@9000: private SInfoResultType(final String unit, final String csvHeader, final String pdfHeader) { gernotbelger@9000: super(unit, csvHeader, pdfHeader); gernotbelger@9000: } gernotbelger@8948: gernotbelger@9145: public static final SInfoResultType customMultiRowColWaterlevel = new SInfoResultType(null, SInfoI18NStrings.CSV_WATERLEVEL_HEADER, gernotbelger@9145: "sinfo.export.flow_depth.pdf.header.waterlevel") { gernotbelger@9145: private static final long serialVersionUID = 1L; gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: public String exportValue(final CallContext context, final Object value) { gernotbelger@9205: throw new UnsupportedOperationException(); gernotbelger@9145: } gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9205: throw new UnsupportedOperationException(); gernotbelger@9145: } gernotbelger@9145: gernotbelger@9145: }; gernotbelger@9145: mschaefer@9176: public static final SInfoResultType floodDischarge = new SInfoResultType(I18NStrings.UNIT_CUBIC_M, "sinfo.export.flood_duration.csv.header.discharge", mschaefer@9176: "sinfo.export.flood_duration.pdf.header.discharge") { gernotbelger@9145: private static final long serialVersionUID = 1L; gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: public String exportValue(final CallContext context, final Object value) { gernotbelger@9145: final double doubleValue = asDouble(value); mschaefer@9176: return exportDoubleValue(context, doubleValue); gernotbelger@9145: } gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9145: return Formatter.getWaterlevelQ(context); gernotbelger@9145: } gernotbelger@9145: }; gernotbelger@9145: mschaefer@9176: public static final SInfoResultType floodDuration = new SInfoResultType(null, "sinfo.export.flood_duration.csv.header.duration", mschaefer@9176: "sinfo.export.flood_duration.pdf.header.duration") { gernotbelger@9145: private static final long serialVersionUID = 1L; gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: public String exportValue(final CallContext context, final Object value) { gernotbelger@9145: final double doubleValue = asDouble(value); mschaefer@9176: return exportDoubleValue(context, doubleValue); mschaefer@9176: } mschaefer@9176: mschaefer@9176: @Override mschaefer@9176: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9176: return Formatter.getIntegerFormatter(context); mschaefer@9176: } mschaefer@9176: }; mschaefer@9176: gernotbelger@9000: public static final SInfoResultType waterlevel = new SInfoResultType(null, SInfoI18NStrings.CSV_WATERLEVEL_HEADER, gernotbelger@9000: "sinfo.export.flow_depth.pdf.header.waterlevel") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: final double doubleValue = asDouble(value); gernotbelger@8948: return exportDoubleValue(context, doubleValue); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of gernotbelger@8948: // digits. gernotbelger@8948: return Formatter.getFlowDepth(context); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: mschaefer@9202: public static final SInfoResultType waterlevel1 = new SInfoResultType(null, "sinfo.flood_duration.header.mainvalue.1.w", mschaefer@9202: "sinfo.flood_duration.header.pdf.mainvalue.1.w") { mschaefer@9202: private static final long serialVersionUID = 1L; mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: public String exportValue(final CallContext context, final Object value) { mschaefer@9202: final double doubleValue = asDouble(value); mschaefer@9202: return exportDoubleValue(context, doubleValue); mschaefer@9202: } mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9202: return Formatter.getFlowDepth(context); mschaefer@9202: } mschaefer@9202: }; mschaefer@9202: mschaefer@9202: public static final SInfoResultType waterlevel2 = new SInfoResultType(null, "sinfo.flood_duration.header.mainvalue.2.w", mschaefer@9202: "sinfo.flood_duration.header.pdf.mainvalue.2.w") { mschaefer@9202: private static final long serialVersionUID = 1L; mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: public String exportValue(final CallContext context, final Object value) { mschaefer@9202: final double doubleValue = asDouble(value); mschaefer@9202: return exportDoubleValue(context, doubleValue); mschaefer@9202: } mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9202: return Formatter.getFlowDepth(context); mschaefer@9202: } mschaefer@9202: }; mschaefer@9202: gernotbelger@9205: // public static final SInfoResultType waterlevel3 = new SInfoResultType(null, gernotbelger@9205: // "sinfo.flood_duration.header.mainvalue.3.w", gernotbelger@9205: // "sinfo.flood_duration.header.pdf.mainvalue.3.w") { gernotbelger@9205: // private static final long serialVersionUID = 1L; gernotbelger@9205: // gernotbelger@9205: // @Override gernotbelger@9205: // public String exportValue(final CallContext context, final Object value) { gernotbelger@9205: // final double doubleValue = asDouble(value); gernotbelger@9205: // return exportDoubleValue(context, doubleValue); gernotbelger@9205: // } gernotbelger@9205: // gernotbelger@9205: // @Override gernotbelger@9205: // protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9205: // return Formatter.getFlowDepth(context); gernotbelger@9205: // } gernotbelger@9205: // }; mschaefer@9202: gernotbelger@9000: public static final SInfoResultType waterlevelLabel = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LABEL_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: return exportStringValue(value); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: throw new UnsupportedOperationException(); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9145: public static final SInfoResultType infrastructuretype = new SInfoResultType(I18NStrings.UNIT_NONE, gernotbelger@9145: "sinfo.export.flood_duration.csv.header.infrastructure_type", "sinfo.export.flood_duration.pdf.header.infrastructure_type") { gernotbelger@9145: private static final long serialVersionUID = 1L; gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: public String exportValue(final CallContext context, final Object value) { gernotbelger@9145: return exportStringValue(value); gernotbelger@9145: } gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9145: throw new UnsupportedOperationException(); gernotbelger@9145: } gernotbelger@9145: }; gernotbelger@9145: gernotbelger@9000: public static final SInfoResultType discharge = new SInfoResultType(I18NStrings.UNIT_CUBIC_M, SInfoI18NStrings.CSV_DISCHARGE_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: final double doubleValue = asDouble(value); gernotbelger@8948: final double roundedDischarge = RiverUtils.roundQ(doubleValue); gernotbelger@8948: return exportDoubleValue(context, roundedDischarge); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: return Formatter.getWaterlevelQ(context); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: mschaefer@9202: public static final SInfoResultType discharge1 = new SInfoResultType(I18NStrings.UNIT_CUBIC_M, "sinfo.flood_duration.header.mainvalue.1.q", mschaefer@9202: "sinfo.flood_duration.header.pdf.mainvalue.1.q") { mschaefer@9202: private static final long serialVersionUID = 1L; mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: public String exportValue(final CallContext context, final Object value) { mschaefer@9202: final double doubleValue = asDouble(value); mschaefer@9202: final double roundedDischarge = RiverUtils.roundQ(doubleValue); mschaefer@9202: return exportDoubleValue(context, roundedDischarge); mschaefer@9202: } mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9202: return Formatter.getWaterlevelQ(context); mschaefer@9202: } mschaefer@9202: }; mschaefer@9202: mschaefer@9202: public static final SInfoResultType discharge2 = new SInfoResultType(I18NStrings.UNIT_CUBIC_M, "sinfo.flood_duration.header.mainvalue.2.q", mschaefer@9202: "sinfo.flood_duration.header.pdf.mainvalue.2.q") { mschaefer@9202: private static final long serialVersionUID = 1L; mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: public String exportValue(final CallContext context, final Object value) { mschaefer@9202: final double doubleValue = asDouble(value); mschaefer@9202: final double roundedDischarge = RiverUtils.roundQ(doubleValue); mschaefer@9202: return exportDoubleValue(context, roundedDischarge); mschaefer@9202: } mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9202: return Formatter.getWaterlevelQ(context); mschaefer@9202: } mschaefer@9202: }; mschaefer@9202: mschaefer@9202: public static final SInfoResultType discharge3 = new SInfoResultType(I18NStrings.UNIT_CUBIC_M, "sinfo.flood_duration.header.mainvalue.3.q", mschaefer@9202: "sinfo.flood_duration.header.pdf.mainvalue.3.q") { mschaefer@9202: private static final long serialVersionUID = 1L; mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: public String exportValue(final CallContext context, final Object value) { mschaefer@9202: final double doubleValue = asDouble(value); mschaefer@9202: final double roundedDischarge = RiverUtils.roundQ(doubleValue); mschaefer@9202: return exportDoubleValue(context, roundedDischarge); mschaefer@9202: } mschaefer@9202: mschaefer@9202: @Override mschaefer@9202: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9202: return Formatter.getWaterlevelQ(context); mschaefer@9202: } mschaefer@9202: }; mschaefer@9202: gernotbelger@9000: public static final SInfoResultType meanBedHeight = new SInfoResultType(null, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_HEADER, gernotbelger@9000: SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_HEADER_SHORT) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: final double doubleValue = asDouble(value); gernotbelger@8948: return exportDoubleValue(context, doubleValue); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: return Formatter.getMeanBedHeight(context); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9000: public static final SInfoResultType soundingLabel = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_SOUNDING_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: return exportStringValue(value); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: throw new UnsupportedOperationException(); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@9000: public static final SInfoResultType flowdepthDevelopmentPerYear = new SInfoResultType(I18NStrings.UNIT_CM_A, gernotbelger@9000: SInfoI18NStrings.CSV_FLOWDEPTH_DEVELOPMENT_PER_YEAR_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@8948: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getFlowDepthDevelopmentPerYear(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: gernotbelger@9000: public static final SInfoResultType flowdepthmin = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_MIN_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: final double doubleValue = asDouble(value); gernotbelger@8948: return exportDoubleValue(context, doubleValue); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: return Formatter.getFlowDepth(context); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9000: public static final SInfoResultType flowdepthmax = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_MAX_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: final double doubleValue = asDouble(value); gernotbelger@8948: return exportDoubleValue(context, doubleValue); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: return Formatter.getFlowDepth(context); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9145: public static final SInfoResultType riverside = new SInfoResultType(I18NStrings.UNIT_NONE, "sinfo.export.flood_duration.csv.header.riverside") { gernotbelger@9145: private static final long serialVersionUID = 1L; gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: public String exportValue(final CallContext context, final Object value) { mschaefer@9229: return localizeRiverside(context, (AttributeKey) value); gernotbelger@9145: } gernotbelger@9145: gernotbelger@9145: @Override gernotbelger@9145: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9145: throw new UnsupportedOperationException(); gernotbelger@9145: } gernotbelger@9145: }; gernotbelger@9145: mschaefer@9229: /** mschaefer@9229: * Returns the localized text of a riverside mschaefer@9229: * FIXME: Find a better place for this common method mschaefer@9229: */ mschaefer@9229: public static final String localizeRiverside(final CallContext context, final AttributeKey riverside) { mschaefer@9229: if (riverside == AttributeKey.LEFT) mschaefer@9229: return Resources.getMsg(context.getMeta(), "riverside.left"); mschaefer@9229: else if (riverside == AttributeKey.RIGHT) mschaefer@9229: return Resources.getMsg(context.getMeta(), "riverside.right"); mschaefer@9229: else mschaefer@9229: return "?"; mschaefer@9229: } mschaefer@9229: gernotbelger@9000: public static final SInfoResultType gaugeLabel = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_GAUGE_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: return exportStringValue(value); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: throw new UnsupportedOperationException(); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9000: public static final SInfoResultType location = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LOCATION_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: return exportStringValue(value); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: throw new UnsupportedOperationException(); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8950: gernotbelger@9000: public static final SInfoResultType soilkind = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_TKHKIND_HEADER, gernotbelger@9000: "sinfo.export.tkh.pdf.header.tkhkind") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8948: @Override gernotbelger@8948: public String exportValue(final CallContext context, final Object value) { gernotbelger@8948: gernotbelger@8948: if (value == null) gernotbelger@8948: return StringUtils.EMPTY; gernotbelger@8948: gernotbelger@8948: final SoilKind kind = (SoilKind) value; gernotbelger@8948: gernotbelger@8948: final String key = SInfoI18NStrings.PREFIX_TKH_KIND + kind.name(); gernotbelger@8948: return Resources.getMsg(context.getMeta(), key, key); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: @Override gernotbelger@8948: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8948: throw new UnsupportedOperationException(); gernotbelger@8948: } gernotbelger@9000: }; gernotbelger@8950: gernotbelger@9000: public static final SInfoResultType flowdepth = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@8951: @Override gernotbelger@8951: public String exportValue(final CallContext context, final Object value) { gernotbelger@8951: final double doubleValue = asDouble(value); gernotbelger@8951: return exportDoubleValue(context, doubleValue); gernotbelger@8951: } gernotbelger@8951: gernotbelger@8951: @Override gernotbelger@8951: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@8951: return Formatter.getFlowDepth(context); gernotbelger@8951: } gernotbelger@8948: }; gernotbelger@8948: gernotbelger@9000: public static final SInfoResultType d50 = new SInfoResultType(null, null) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@8948: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: throw new UnsupportedOperationException(); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9000: public static final SInfoResultType velocity = new SInfoResultType(null, null) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@8948: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: throw new UnsupportedOperationException(); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@8948: gernotbelger@9000: public static final SInfoResultType tau = new SInfoResultType(null, null) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@8949: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: throw new UnsupportedOperationException(); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: gernotbelger@9000: public static final SInfoResultType tkh = new SInfoResultType(I18NStrings.UNIT_CM, SInfoI18NStrings.CSV_TKH_HEADER, SInfoI18NStrings.CSV_TKH_HEADER_SHORT) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getTkh(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: gernotbelger@9000: public static final SInfoResultType tkhup = new SInfoResultType(I18NStrings.UNIT_M, null) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: throw new UnsupportedOperationException(); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: gernotbelger@9000: public static final SInfoResultType tkhdown = new SInfoResultType(I18NStrings.UNIT_M, null) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: throw new UnsupportedOperationException(); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: gernotbelger@9000: public static final SInfoResultType flowdepthtkh = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTHTKH_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getFlowDepth(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: mschaefer@9112: public static final SInfoResultType channelWidth = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_CHANNEL_WIDTH_HEADER) { mschaefer@9112: private static final long serialVersionUID = 1L; mschaefer@9112: mschaefer@9112: @Override mschaefer@9112: public String exportValue(final CallContext context, final Object value) { mschaefer@9112: final double doubleValue = asDouble(value); mschaefer@9112: return exportDoubleValue(context, doubleValue); mschaefer@9112: } mschaefer@9112: mschaefer@9112: @Override mschaefer@9112: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9112: return Formatter.getChannelWidth(context); mschaefer@9112: } mschaefer@9112: }; mschaefer@9112: mschaefer@9112: public static final SInfoResultType channelDepth = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_CHANNEL_DEPTH_HEADER) { mschaefer@9112: private static final long serialVersionUID = 1L; mschaefer@9112: mschaefer@9112: @Override mschaefer@9112: public String exportValue(final CallContext context, final Object value) { mschaefer@9112: final double doubleValue = asDouble(value); mschaefer@9112: return exportDoubleValue(context, doubleValue); mschaefer@9112: } mschaefer@9112: mschaefer@9112: @Override mschaefer@9112: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9112: return Formatter.getChannelDepth(context); mschaefer@9112: } mschaefer@9112: }; mschaefer@9112: gernotbelger@9000: public static final SInfoResultType flowdepthDevelopment = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_DEVELOPMENT_HEADER, gernotbelger@9000: SInfoI18NStrings.PDF_FLOWDEPTH_DEVELOPMENT_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getTkh(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: gernotbelger@9000: public static final SInfoResultType depthDevelopmentPerYear = new SInfoResultType(I18NStrings.UNIT_CM_A, gernotbelger@9000: SInfoI18NStrings.CSV_FLOWDEPTH_DEVELOPMENT_PER_YEAR_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getFlowDepthDevelopmentPerYear(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: public static final SInfoResultType waterlevelDifference = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_WATERLEVEL_DIFFERENCE_HEADER, gernotbelger@9109: "sinfo.export.csv.header.waterlevel.difference") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getTkh(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: public static final SInfoResultType bedHeightDifference = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_DIFFERENCE_HEADER, gernotbelger@9109: "sinfo.export.csv.header.mean_bed_height.difference") { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getTkh(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: public static final SInfoResultType flowdepthCurrent = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_CURRENT_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getFlowDepth(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: public static final SInfoResultType flowdepthHistorical = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_HISTORICAL_HEADER) { gernotbelger@9006: private static final long serialVersionUID = 1L; gernotbelger@9006: gernotbelger@9000: @Override gernotbelger@9000: public String exportValue(final CallContext context, final Object value) { gernotbelger@9000: final double doubleValue = asDouble(value); gernotbelger@9000: return exportDoubleValue(context, doubleValue); gernotbelger@9000: } gernotbelger@9000: gernotbelger@9000: @Override gernotbelger@9000: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9000: return Formatter.getFlowDepth(context); gernotbelger@9000: } gernotbelger@9000: }; gernotbelger@9000: mschaefer@9202: public static final SInfoResultType infrastructureHeight = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_INFRASTRUCTURE_HEIGHT_HEADER, mschaefer@9202: SInfoI18NStrings.PDF_INFRASTRUCTURE_HEIGHT_HEADER) { mschaefer@9115: private static final long serialVersionUID = 1L; mschaefer@9115: mschaefer@9115: @Override mschaefer@9115: public String exportValue(final CallContext context, final Object value) { mschaefer@9115: final double doubleValue = asDouble(value); mschaefer@9115: return exportDoubleValue(context, doubleValue); mschaefer@9115: } mschaefer@9115: mschaefer@9115: @Override mschaefer@9115: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9115: return Formatter.getInfrastructureHeight(context); mschaefer@9115: } mschaefer@9115: }; mschaefer@9115: mschaefer@9117: public static final SInfoResultType collisionCount = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_COLLISION_COUNT_HEADER) { mschaefer@9117: private static final long serialVersionUID = 1L; mschaefer@9117: mschaefer@9117: @Override mschaefer@9117: public String exportValue(final CallContext context, final Object value) { mschaefer@9117: final double doubleValue = asDouble(value); mschaefer@9117: return exportDoubleValue(context, doubleValue); mschaefer@9117: } mschaefer@9117: mschaefer@9117: @Override mschaefer@9117: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9117: return Formatter.getCollisionCount(context); mschaefer@9117: } mschaefer@9117: }; mschaefer@9117: mschaefer@9117: public static final SInfoResultType collisionGaugeW = new SInfoResultType(I18NStrings.UNIT_CM, SInfoI18NStrings.CSV_COLLISION_GAUGEW_HEADER) { mschaefer@9117: private static final long serialVersionUID = 1L; mschaefer@9117: mschaefer@9117: @Override mschaefer@9117: public String exportValue(final CallContext context, final Object value) { mschaefer@9117: final double doubleValue = asDouble(value); mschaefer@9117: return exportDoubleValue(context, doubleValue); mschaefer@9117: } mschaefer@9117: mschaefer@9117: @Override mschaefer@9117: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9117: return Formatter.getCollisionGaugeW(context); mschaefer@9117: } mschaefer@9117: }; mschaefer@9117: mschaefer@9157: public static final SInfoResultType years = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_YEARS_HEADER) { mschaefer@9157: private static final long serialVersionUID = 1L; mschaefer@9157: mschaefer@9157: @Override mschaefer@9157: public String exportValue(final CallContext context, final Object value) { mschaefer@9157: return exportStringValue(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: mschaefer@9157: public static final SInfoResultType dischargeZone = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_DISCHARGE_ZONE_HEADER) { mschaefer@9157: private static final long serialVersionUID = 1L; mschaefer@9157: mschaefer@9157: @Override mschaefer@9157: public String exportValue(final CallContext context, final Object value) { mschaefer@9157: return exportStringValue(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: }; gernotbelger@8948: }