view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/TauProcessor.java @ 8980:b194fa64506a

SINFO - show results themes according to spec, either raw data or floating mean values. Some improvements to error handling and handling of empty results.
author gernotbelger
date Thu, 05 Apr 2018 18:30:34 +0200
parents ee5ce13016ed
children 23945061daec
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.util.HashSet;
import java.util.Set;

import org.dive4elements.artifactdatabase.state.Facet;
import org.dive4elements.artifacts.CallContext;

public final class TauProcessor extends AbstractSInfoLineProcessor<AbstractTkhCalculationResult> {

    public static final String FACET_TKH_TAU_FILTERED = "sinfo_facet_tau";

    private static final String I18N_AXIS_LABEL = "sinfo.chart.tkh_tau.section.yaxis.label";

    private static final String SINFO_CHART_TAU_YAXIS_LABEL = "sinfo.chart.tkh_tau.yaxis.label";

    private static final String I18N_FACET_TKH_TAU_FILTERED_DESCRIPTION = "sinfo.facet.tkh_tau.description";

    private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();

    static {
        HANDLED_FACET_TYPES.add(FACET_TKH_TAU_FILTERED);
    }

    public TauProcessor() {
        super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
    }

    @Override
    protected double[][] doGetPoints(final AbstractTkhCalculationResult data, final String facetName) {

        if (FACET_TKH_TAU_FILTERED.contentEquals(facetName))
            return data.getStationPoints(SInfoResultType.tau);

        final String error = String.format("Unknown facet name: %s", facetName);
        throw new UnsupportedOperationException(error);
    }

    public static Facet createTauFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
            final int index) {
        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_TAU_YAXIS_LABEL, FACET_TKH_TAU_FILTERED,
                I18N_FACET_TKH_TAU_FILTERED_DESCRIPTION);
    }
}

http://dive4elements.wald.intevation.org