view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFacet.java @ 4478:6153c50f78cf

WaterLineArtifact: Added callcontext-parameter to interfaces getWaterLine. Update all implementations. The change was done to be able to compute the extreme values during getWaterLine to access data needed in CrossSectionProfile Diagrams.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 13 Nov 2012 14:46:44 +0100
parents 587b0e82924a
children cc6323401643
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.CallContext;

import de.intevation.flys.artifacts.FLYSArtifact;

import de.intevation.flys.artifacts.states.DefaultState.ComputeType;

import org.apache.log4j.Logger;

/**
 * Facet of a FlowVelocity curve.
 */
public class FlowVelocityFacet extends DataFacet {

    private static Logger logger = Logger.getLogger(FlowVelocityFacet.class);

    public FlowVelocityFacet() {
        // required for clone operation deepCopy()
    }


    public FlowVelocityFacet(
        int         idx,
        String      name,
        String      description,
        ComputeType type,
        String      stateId,
        String      hash
    ) {
        super(idx, name, description, type, hash, stateId);
    }


    public Object getData(Artifact artifact, CallContext context) {
        logger.debug("Get data for flow velocity at index: " + index);

        FLYSArtifact flys = (FLYSArtifact) artifact;

        CalculationResult res = (CalculationResult)
            flys.compute(context, hash, stateId, type, false);

        FlowVelocityData[] data = (FlowVelocityData[]) res.getData();

        return data[index];
    }


    /** Copy deeply. */
    @Override
    public Facet deepCopy() {
        FlowVelocityFacet copy = new FlowVelocityFacet();
        copy.set(this);
        copy.type    = type;
        copy.hash    = hash;
        copy.stateId = stateId;
        return copy;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org