Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultType.java @ 9109:59cf6e6a452d
pdf export enhancements
author | gernotbelger |
---|---|
date | Fri, 01 Jun 2018 16:06:12 +0200 |
parents | 7134a4c7d1b6 |
children | 189cc8ededbd |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.sinfo.common; import java.text.NumberFormat; import org.apache.commons.lang.StringUtils; import org.dive4elements.artifacts.CallContext; import org.dive4elements.river.artifacts.common.AbstractResultType; import org.dive4elements.river.artifacts.common.I18NStrings; import org.dive4elements.river.artifacts.resources.Resources; import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKind; import org.dive4elements.river.utils.Formatter; import org.dive4elements.river.utils.RiverUtils; /** * Result type for data that goes into {@link SInfoResultRow}s. * * @author Gernot Belger */ public abstract class SInfoResultType extends AbstractResultType { private static final long serialVersionUID = 1L; private SInfoResultType(final String unit, final String csvHeader) { super(unit, csvHeader, csvHeader); } private SInfoResultType(final String unit, final String csvHeader, final String pdfHeader) { super(unit, csvHeader, pdfHeader); } public static final SInfoResultType waterlevel = new SInfoResultType(null, SInfoI18NStrings.CSV_WATERLEVEL_HEADER, "sinfo.export.flow_depth.pdf.header.waterlevel") { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of // digits. return Formatter.getFlowDepth(context); } }; public static final SInfoResultType waterlevelLabel = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LABEL_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { return exportStringValue(value); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType discharge = new SInfoResultType(I18NStrings.UNIT_CUBIC_M, SInfoI18NStrings.CSV_DISCHARGE_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); final double roundedDischarge = RiverUtils.roundQ(doubleValue); return exportDoubleValue(context, roundedDischarge); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getWaterlevelQ(context); } }; public static final SInfoResultType meanBedHeight = new SInfoResultType(null, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_HEADER, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_HEADER_SHORT) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getMeanBedHeight(context); } }; public static final SInfoResultType soundingLabel = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_SOUNDING_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { return exportStringValue(value); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType flowdepthDevelopmentPerYear = new SInfoResultType(I18NStrings.UNIT_CM_A, SInfoI18NStrings.CSV_FLOWDEPTH_DEVELOPMENT_PER_YEAR_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepthDevelopmentPerYear(context); } }; public static final SInfoResultType flowdepthmin = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_MIN_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepth(context); } }; public static final SInfoResultType flowdepthmax = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_MAX_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepth(context); } }; public static final SInfoResultType gaugeLabel = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_GAUGE_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { return exportStringValue(value); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType location = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LOCATION_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { return exportStringValue(value); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType soilkind = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_TKHKIND_HEADER, "sinfo.export.tkh.pdf.header.tkhkind") { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { if (value == null) return StringUtils.EMPTY; final SoilKind kind = (SoilKind) value; final String key = SInfoI18NStrings.PREFIX_TKH_KIND + kind.name(); return Resources.getMsg(context.getMeta(), key, key); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType flowdepth = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepth(context); } }; public static final SInfoResultType d50 = new SInfoResultType(null, null) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType velocity = new SInfoResultType(null, null) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType tau = new SInfoResultType(null, null) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType tkh = new SInfoResultType(I18NStrings.UNIT_CM, SInfoI18NStrings.CSV_TKH_HEADER, SInfoI18NStrings.CSV_TKH_HEADER_SHORT) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getTkh(context); } }; public static final SInfoResultType tkhup = new SInfoResultType(I18NStrings.UNIT_M, null) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType tkhdown = new SInfoResultType(I18NStrings.UNIT_M, null) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { throw new UnsupportedOperationException(); } }; public static final SInfoResultType flowdepthtkh = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTHTKH_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepth(context); } }; public static final SInfoResultType flowdepthDevelopment = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_DEVELOPMENT_HEADER, SInfoI18NStrings.PDF_FLOWDEPTH_DEVELOPMENT_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getTkh(context); } }; public static final SInfoResultType depthDevelopmentPerYear = new SInfoResultType(I18NStrings.UNIT_CM_A, SInfoI18NStrings.CSV_FLOWDEPTH_DEVELOPMENT_PER_YEAR_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepthDevelopmentPerYear(context); } }; public static final SInfoResultType waterlevelDifference = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_WATERLEVEL_DIFFERENCE_HEADER, "sinfo.export.csv.header.waterlevel.difference") { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getTkh(context); } }; public static final SInfoResultType bedHeightDifference = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_DIFFERENCE_HEADER, "sinfo.export.csv.header.mean_bed_height.difference") { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getTkh(context); } }; public static final SInfoResultType flowdepthCurrent = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_CURRENT_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepth(context); } }; public static final SInfoResultType flowdepthHistorical = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_HISTORICAL_HEADER) { private static final long serialVersionUID = 1L; @Override public String exportValue(final CallContext context, final Object value) { final double doubleValue = asDouble(value); return exportDoubleValue(context, doubleValue); } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getFlowDepth(context); } }; }