view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixingsFacet.java @ 9646:0380717105ba

Implemented alternative fitting strategy for Log-Linear function.
author Gernot Belger <g.belger@bjoernsen.de>
date Mon, 02 Dec 2019 17:56:15 +0100
parents 9744ce3c3853
children
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * 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.model.fixings;

import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM;

import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.artifacts.model.DataFacet;
import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;

/**
 * Facet to access the current Km from the context safely
 *
 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
 */
public abstract class FixingsFacet extends DataFacet {

    private static final long serialVersionUID = 1L;

    public static final Double INVALID_KM = Double.valueOf(-1d);

    public FixingsFacet() {
    }

    public FixingsFacet(final int index, final String name, final String description, final ComputeType type, final String hash, final String stateId) {
        super(index, name, description, type, hash, stateId);
    }

    /**
     * Returns the current km from the context.
     * If the context is null or doesn't contain a currentKm
     * then a double value of -1 will be returned.
     *
     * @param context
     *            The CallContext instance
     * @return the current km as double
     */
    protected final double getCurrentKm(final CallContext context) {
        if (context == null) {
            return INVALID_KM;
        }
        final Double dkm = (Double) context.getContextValue(CURRENT_KM);
        if (dkm == null) {
            return INVALID_KM;
        }
        return dkm.doubleValue();
    }
}

http://dive4elements.wald.intevation.org