view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DifferenceCurveFacet.java @ 3272:31168ac9c7e7

Partial fix for issue694 (heightmarks snap to nearest cross section). flys-artifacts/trunk@4916 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 10 Jul 2012 15:31:56 +0000
parents ed07dd55f487
children
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import org.apache.log4j.Logger;

import de.intevation.artifactdatabase.state.Facet;
import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.CallContext;
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