Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultType.java @ 9150:23945061daec
gigantic refactoring: exporter, result, results
to support multiple jaspers -> collisions
author | gernotbelger |
---|---|
date | Thu, 14 Jun 2018 16:56:31 +0200 |
parents | e6b63b2b41b9 |
children | f9bb5d0a6ff3 |
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 customMultiRowColWaterlevel = 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) { // TODO Auto-generated method stub return null; } @Override protected NumberFormat createFormatter(final CallContext context) { // TODO Auto-generated method stub return null; } }; public static final SInfoResultType inundationdurationq = new SInfoResultType(null, "sinfo.export.flood_duration.csv.header.inundation_duration_q", "sinfo.export.flood_duration.pdf.header.inundation_duration_q") { 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); // integer // als // double? // finde // gerade // kein // int-beispiel } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getWaterlevelQ(context); } }; public static final SInfoResultType inundationduration = new SInfoResultType(null, "sinfo.export.flood_duration.csv.header.inundation_duration", "sinfo.export.flood_duration.pdf.header.inundation_duration") { 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); // integer // als // double? // finde // gerade // kein // int-beispiel } @Override protected NumberFormat createFormatter(final CallContext context) { return Formatter.getIntegerFormatter(context); } }; 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 infrastructuretype = new SInfoResultType(I18NStrings.UNIT_NONE, "sinfo.export.flood_duration.csv.header.infrastructure_type", "sinfo.export.flood_duration.pdf.header.infrastructure_type") { 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 riverside = new SInfoResultType(I18NStrings.UNIT_NONE, "sinfo.export.flood_duration.csv.header.riverside") { 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 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 channelWidth = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_CHANNEL_WIDTH_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.getChannelWidth(context); } }; public static final SInfoResultType channelDepth = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_CHANNEL_DEPTH_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.getChannelDepth(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); } }; public static final SInfoResultType infrastructureHeightFloodDur = new SInfoResultType(I18NStrings.UNIT_M, "sinfo.export.flood_duration.csv.header.infrastructure.height", "sinfo.export.flood_duration.pdf.header.infrastructure.height") { 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.getInfrastructureHeight(context); } }; public static final SInfoResultType infrastructureHeight = new SInfoResultType(I18NStrings.UNIT_M, SInfoI18NStrings.CSV_INFRASTRUCTURE_HEIGHT_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.getInfrastructureHeight(context); } }; public static final SInfoResultType collisionCount = new SInfoResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_COLLISION_COUNT_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.getCollisionCount(context); } }; public static final SInfoResultType collisionGaugeW = new SInfoResultType(I18NStrings.UNIT_CM, SInfoI18NStrings.CSV_COLLISION_GAUGEW_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.getCollisionGaugeW(context); } }; }