view flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java @ 2134:024d986b4f5b

'New Chart' for duration curve. flys-artifacts/trunk@3710 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 18 Jan 2012 15:50:34 +0000
parents 81312f84689a
children 5642a83420f2
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import org.apache.log4j.Logger;

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

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.WINFOArtifact;

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


/**
 * Facet with the curve of a subtraction of two waterlevel-lines.
 * TODO inherit directly from DataFacet? Check whether this Facet is obsolete.
 */
public class DifferenceCurveFacet extends WaterlevelFacet {

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


    public DifferenceCurveFacet() {
    }

    public DifferenceCurveFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      stateID,
        String      hash

    ) {
        super(index, name, description, type, stateID, hash);
    }

    /**
     * Get difference curve data.
     * @return a WKms at given index.
     */
    @Override
    public Object getData(Artifact artifact, CallContext context) {
        WINFOArtifact winfo = (WINFOArtifact)artifact;

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

        WKms [] wkms = (WKms [])res.getData();

        WKms result = wkms[index];
        logger.debug("Got difference curve data (" + result.getName() 
            + ") at index: " + index);

        return result;
    }


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

http://dive4elements.wald.intevation.org