view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java @ 2089:0da8874bd378

Added initial state to map artifact to be able to advance and step back. The map artifact overrides describe() to have the complete UI information in the describe response document. flys-artifacts/trunk@3613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 06 Jan 2012 12:02:10 +0000
parents 9d79f6ceefca
children 81312f84689a
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 of a Waterlevel (WQKms).
 */
public class WaterlevelFacet extends BlackboardDataFacet {

    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