view artifacts/src/main/java/org/dive4elements/river/artifacts/WaterLineArtifact.java @ 9638:6c1ebf2220f5

# 19b (check for usages of WaterlevelExporter.getWforGaugeAndQ) -> cleanup: removing calc.extreme.curve
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Thu, 31 Oct 2019 17:37:53 +0100
parents 3f49835a00c3
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;

import java.io.Serializable;

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

/**
 * Interface, Artifact can create WaterLines (Water against Cross-Profile).
 */
public interface WaterLineArtifact {

    /**
     * Get points that define a line of a (water)facet against a cross-
     * section.
     *
     * @param stateId
     * @param hash
     *
     * @param waterLineIndex
     *            The object whith wich this artifact determines which of the waterlevels to return. Given to the facet when
     *            constructed. Can be an integer in the simple case, or a more complex description.
     */
    // REMARK: we are giving type, hash and stateId so individual artifacts may call back on their compute method, which
    // needs
    // those to hash the result data.
    // Currently, the old implementations don't do that but simply execute the whole computation each time they are
    // called...
    // TODO: instead we should compute outside and provide the computed data to this method.
    double getWaterLevel(ComputeType type, String hash, String stateId, double currentKm, Serializable waterLineIndex, double nextKm, double prevKm,
            CallContext context);
}

http://dive4elements.wald.intevation.org