view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DataFacet.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 79a94c4171cb
children
line wrap: on
line source
package de.intevation.flys.artifacts.model;

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

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.FLYSArtifact;

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

public class DataFacet
extends      BlackboardDataFacet
{
    protected ComputeType type;
    protected String      hash;
    protected String      stateId;


    /** Trivial constructor. */
    public DataFacet() {
    }

    /**
     * Defaults to ADVANCE Compute type.
     * @param name Name of the facet.
     * @param description maybe localized description of the facet.
     */
    public DataFacet(String name, String description) {
        this(name, description, ComputeType.ADVANCE);
    }


    public DataFacet(String name, String description, ComputeType type) {
        this(name, description, type, null);
    }


    public DataFacet(
        String      name,
        String      description,
        ComputeType type,
        String      hash
    ) {
        super(name, description);
        this.type = type;
        this.hash = hash;
    }


    public DataFacet(
        String      name,
        String      description,
        ComputeType type,
        String      hash,
        String      stateId
    ) {
        super(name, description);
        this.type    = type;
        this.hash    = hash;
        this.stateId = stateId;
    }


    public DataFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      hash,
        String      stateId
    ) {
        super(index, name, description);
        this.type    = type;
        this.hash    = hash;
        this.stateId = stateId;
    }


    /**
     * Return computation result.
     */
    @Override
    public Object getData(Artifact artifact, CallContext context) {
        FLYSArtifact flys = (FLYSArtifact)artifact;
        String    theHash = (hash != null) ? hash : flys.hash();

        return (stateId != null && stateId.length() > 0)
            ? flys.compute(context, theHash, stateId, type, false)
            : flys.compute(context, theHash, type, false);
    }


    /**
     * Return a deep copy.
     */
    @Override
    public Facet deepCopy() {
        DataFacet copy = new DataFacet();
        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=utf-8 :

http://dive4elements.wald.intevation.org