d@9617: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde d@9617: * Software engineering by d@9617: * Björnsen Beratende Ingenieure GmbH d@9617: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt d@9617: * d@9617: * This file is Free Software under the GNU AGPL (>=v3) d@9617: * and comes with ABSOLUTELY NO WARRANTY! Check out the d@9617: * documentation coming with Dive4Elements River for details. d@9617: */ d@9617: d@9617: package org.dive4elements.river.artifacts.sinfo.common; d@9617: d@9617: import java.util.HashSet; d@9617: import java.util.Set; d@9617: d@9617: import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; d@9617: import org.dive4elements.artifactdatabase.state.Facet; d@9617: import org.dive4elements.artifacts.CallContext; d@9617: import org.dive4elements.artifacts.CallMeta; d@9617: import org.dive4elements.river.artifacts.common.AbstractCalculationResult; d@9617: import org.dive4elements.river.artifacts.common.AbstractProcessor; d@9617: import org.dive4elements.river.artifacts.resources.Resources; d@9617: import org.dive4elements.river.exports.DiagramGenerator; d@9617: import org.dive4elements.river.themes.ThemeDocument; d@9617: d@9617: public final class FlowDepthDischargeProcessor extends AbstractProcessor { d@9617: d@9617: /* discharge */ d@9617: public static final String FACET_FLOW_DEPTH_DISCHARGE = "sinfo_facet_flow_depth_discharge"; d@9617: public static final String FACET_FLOW_DEPTH_DISCHARGE_Y_AXIS_LABEL = "common.export.csv.header.q"; d@9617: public static final String FACET_FLOW_DEPTH_DISCHARGE_DESCRIPTION = "facet.flow_depth.discharge"; d@9617: d@9617: private static final Set HANDLED_FACET_TYPES = new HashSet<>(); d@9617: d@9617: static { d@9617: HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DISCHARGE); d@9617: } d@9617: d@9617: public FlowDepthDischargeProcessor() { d@9617: super(FACET_FLOW_DEPTH_DISCHARGE_Y_AXIS_LABEL, HANDLED_FACET_TYPES); d@9617: } d@9617: d@9617: protected SInfoResultType doGetType(final String facetName) { d@9617: d@9617: if (FACET_FLOW_DEPTH_DISCHARGE.contentEquals(facetName)) d@9617: return SInfoResultType.discharge; d@9617: d@9617: final String error = String.format("Unknown facet name: %s", facetName); d@9617: throw new UnsupportedOperationException(error); d@9617: } d@9617: d@9617: public static Facet createFlowDepthDischargeFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, d@9617: final int index, final String wstLabel) { d@9617: final CallMeta meta = context.getMeta(); d@9617: final String yAxisLabel = Resources.getMsg(meta, FACET_FLOW_DEPTH_DISCHARGE_Y_AXIS_LABEL, FACET_FLOW_DEPTH_DISCHARGE_Y_AXIS_LABEL); d@9617: return AbstractProcessor.createFacet(context, hash, id, result, index, yAxisLabel, FACET_FLOW_DEPTH_DISCHARGE, FACET_FLOW_DEPTH_DISCHARGE_DESCRIPTION, d@9617: wstLabel); d@9617: } d@9617: d@9617: @Override d@9617: protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { d@9617: d@9617: return buildSeriesForType(generator, bundle, theme, visible, doGetType(bundle.getFacetName()), GAP_DISTANCE); d@9617: } d@9617: }