view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java @ 2004:94c4dd5aaf20

Made StaticState a bit more convenient to use. flys-artifacts/trunk@3446 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 16 Dec 2011 14:11:50 +0000
parents eb35570df0e8
children e384d78ff78b
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.DefaultFacet;
import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.WINFOArtifact;

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

/**
 * Facet of a Waterlevel (WQKms).
 */
public class WaterlevelFacet extends DefaultFacet {

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

    protected ComputeType type;
    protected String      stateID;
    protected String      hash;


    public WaterlevelFacet(int index, String name, String description) {
        this(index, name, description, ComputeType.ADVANCE, null, null);
    }


    public WaterlevelFacet() {
    }


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

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


    /**
     * Get waterlevel data.
     * @return a WQKms at given index.
     */
    public Object getData(Artifact artifact, CallContext context) {
        logger.debug("Get data for waterlevels at index: " + index);

        WINFOArtifact winfo = (WINFOArtifact)artifact;

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

        WQKms [] wqkms = (WQKms [])res.getData();

        return wqkms[index];
    }


    /** Copy deeply. */
    @Override
    public Facet deepCopy() {
        WaterlevelFacet copy = new WaterlevelFacet();
        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