gernotbelger@9318: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9318: * Software engineering by gernotbelger@9318: * Björnsen Beratende Ingenieure GmbH gernotbelger@9318: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9318: * gernotbelger@9318: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9318: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9318: * documentation coming with Dive4Elements River for details. gernotbelger@9318: */ gernotbelger@9318: package org.dive4elements.river.artifacts.bundu; gernotbelger@9318: gernotbelger@9318: import java.text.NumberFormat; gernotbelger@9318: gernotbelger@9318: import org.dive4elements.artifacts.CallContext; gernotbelger@9318: import org.dive4elements.river.artifacts.common.AbstractResultType; gernotbelger@9318: import org.dive4elements.river.artifacts.common.I18NStrings; gernotbelger@9318: import org.dive4elements.river.utils.Formatter; gernotbelger@9318: gernotbelger@9318: /** gernotbelger@9318: * @author Domenico Nardi Tironi gernotbelger@9318: * gernotbelger@9318: */ gernotbelger@9318: public abstract class BunduResultType extends AbstractResultType { gernotbelger@9318: gernotbelger@9318: protected BunduResultType(final String unit, final String csvHeader, final String pdfHeader) { gernotbelger@9318: super(unit, csvHeader, pdfHeader); gernotbelger@9318: } gernotbelger@9318: gernotbelger@9330: protected BunduResultType(final String unit, final String csvHeader) { gernotbelger@9330: super(unit, csvHeader, csvHeader); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9318: private static final long serialVersionUID = 1L; gernotbelger@9318: gernotbelger@9330: public static final BunduResultType bezugswst = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.wst.export.csv.meta.header.bezugswst", mschaefer@9432: "bundu.wst.export.pdf.meta.header.bezugswst") { // Unit dynamic mschaefer@9432: gernotbelger@9318: private static final long serialVersionUID = 1L; gernotbelger@9318: gernotbelger@9318: @Override gernotbelger@9318: public String exportValue(final CallContext context, final Object value) { gernotbelger@9318: final double doubleValue = asDouble(value); gernotbelger@9318: return exportDoubleValue(context, doubleValue); gernotbelger@9318: } gernotbelger@9318: gernotbelger@9318: @Override gernotbelger@9318: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getFlowDepth(context); // REMARK same as SInfoResultType.waterlevel gernotbelger@9318: } gernotbelger@9318: }; gernotbelger@9318: gernotbelger@9330: public static final BunduResultType sounding = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.sounding") { mschaefer@9432: gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: return exportStringValue(value); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9330: throw new UnsupportedOperationException(); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: gernotbelger@9330: public static final BunduResultType channelLowerEdge = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.channel.lower_edge", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.channel.lower_edge") { // Unit dynamic mschaefer@9432: gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getFlowDepth(context); // REMARK same as SInfoResultType.waterlevel gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: mschaefer@9432: public static final BunduResultType channelDepth = new BunduResultType(I18NStrings.UNIT_M, "bundu.export.bezugswst.csv.meta.miss.channel.min_depth", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.channel.min_depth") { mschaefer@9432: gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9330: return Formatter.getWaterlevelQ(context); // Richtiges Format? TODO check! gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: gernotbelger@9330: public static final BunduResultType hasMissingDepth = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.exists", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.exists") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: return exportStringValue(value); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9330: throw new UnsupportedOperationException(); gernotbelger@9330: } gernotbelger@9330: }; mschaefer@9432: public static final BunduResultType missVolumeTotal = new BunduResultType(I18NStrings.UNIT_CUBIC_M, "bundu.export.bezugswst.csv.meta.miss.volume.total") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getIntegerFormatter(context); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: mschaefer@9432: public static final BunduResultType missMassTotal = new BunduResultType(I18NStrings.UNIT_TON, "bundu.export.bezugswst.csv.meta.miss.mass.total", gernotbelger@9330: "bundu.export.bezugswst.csv.meta.miss.mass") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getMassFormat(context); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: gernotbelger@9330: public static final BunduResultType excavationVolume = new BunduResultType(I18NStrings.UNIT_CUBIC_M, "bundu.export.bezugswst.csv.meta.miss.excavation", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.excavation") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getIntegerFormatter(context); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: gernotbelger@9330: public static final BunduResultType excavationCosts = new BunduResultType(I18NStrings.UNIT_EURO, "bundu.export.bezugswst.csv.meta.miss.costs", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.costs") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getCurrencyFormat(context); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: gernotbelger@9330: public static final BunduResultType channelWidth = new BunduResultType(I18NStrings.UNIT_M, "bundu.export.bezugswst.csv.meta.miss.channel.width", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.channel.width") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getChannelWidth(context); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: gernotbelger@9330: public static final BunduResultType density = new BunduResultType(I18NStrings.UNIT_M, "bundu.export.bezugswst.csv.meta.miss.density", gernotbelger@9330: "bundu.export.bezugswst.pdf.meta.miss.density") { gernotbelger@9330: private static final long serialVersionUID = 1L; gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9330: final double doubleValue = asDouble(value); gernotbelger@9330: return exportDoubleValue(context, doubleValue); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getDensityFormat(context); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9330: mschaefer@9432: public static final BunduResultType missVolumeMeanBed = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.volume.mean_bed") { gernotbelger@9330: 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: final double doubleValue = asDouble(value); mschaefer@9432: return exportDoubleValue(context, doubleValue); mschaefer@9432: } mschaefer@9432: mschaefer@9432: @Override mschaefer@9432: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getIntegerFormatter(context); mschaefer@9432: } mschaefer@9432: }; mschaefer@9432: mschaefer@9432: public static final BunduResultType missMassMeanBed = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.mass.mean_bed") { mschaefer@9432: 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: final double doubleValue = asDouble(value); mschaefer@9432: return exportDoubleValue(context, doubleValue); mschaefer@9432: } mschaefer@9432: mschaefer@9432: @Override mschaefer@9432: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getIntegerFormatter(context); mschaefer@9432: } mschaefer@9432: }; mschaefer@9432: mschaefer@9432: // RESULT TYPE FIELDS mschaefer@9432: public static final BunduResultType missVolumeFields = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.volume.field") { mschaefer@9432: 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: final double doubleValue = asDouble(value); mschaefer@9432: return exportDoubleValue(context, doubleValue); mschaefer@9432: } mschaefer@9432: mschaefer@9432: @Override mschaefer@9432: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getMassFormat(context); mschaefer@9432: } mschaefer@9432: }; mschaefer@9432: mschaefer@9432: public static final BunduResultType missMassfields = new BunduResultType(I18NStrings.UNIT_NONE, "bundu.export.bezugswst.csv.meta.miss.mass.field") { mschaefer@9432: 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: final double doubleValue = asDouble(value); mschaefer@9432: return exportDoubleValue(context, doubleValue); mschaefer@9432: } mschaefer@9432: mschaefer@9432: @Override mschaefer@9432: protected NumberFormat createFormatter(final CallContext context) { mschaefer@9432: return Formatter.getMassFormat(context); mschaefer@9432: } mschaefer@9432: }; mschaefer@9432: mschaefer@9432: public static final BunduResultType missStationRange = new BunduResultType(I18NStrings.UNIT_KM, I18NStrings.CSV_KM_HEADER) { gernotbelger@9330: @Override gernotbelger@9330: public String exportValue(final CallContext context, final Object value) { gernotbelger@9331: return exportStringValue(value); gernotbelger@9330: } gernotbelger@9330: gernotbelger@9330: @Override gernotbelger@9330: protected NumberFormat createFormatter(final CallContext context) { gernotbelger@9331: throw new UnsupportedOperationException(); gernotbelger@9330: } gernotbelger@9330: }; gernotbelger@9331: gernotbelger@9318: }