view artifacts/src/main/java/org/dive4elements/river/artifacts/WaterLineArtifact.java @ 9425:3f49835a00c3

Extended CrossSectionFacet so it may fetch different data from within the artifact result. Also allows to have acces to the potentially already computed artifact result via its normal computation cache.
author gernotbelger
date Fri, 17 Aug 2018 15:31:02 +0200
parents af13ceeba52a
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