view artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java @ 374:5420b96dd0b3

Added a method StateEngine.getStateData() that returns the StateData of a specific Artifact. artifacts/trunk@3827 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 30 Jan 2012 13:17:32 +0000
parents 1d11a0531242
children 33176e6e3c37
line wrap: on
line source
package de.intevation.artifactdatabase.state;

import java.util.List;

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


/**
 * A bundle of a "native" Facet and its Artifact.
 */
public class ArtifactAndFacet implements DataProvider {
    /** The Artifact. */
    protected Artifact artifact;

    /** The (native) facet. */
    protected Facet    facet;

    
    /** Trivial constructor. */
    public ArtifactAndFacet(
        Artifact a,
        Facet f
    ) {
        this.artifact   = a;
        this.facet      = f;
    }


    /** Get data (to plot). */
    public Object getData(CallContext context) {
        return facet.getData(artifact, context);
    }


    /** Get data (for other facet). */
    public Object provideData(Object key, Object param, CallContext context) {
        return facet.provideBlackboardData(artifact, key, param, context);
    }


    /** (Maybe) Register on blackboard (depending on facet). */
    public void register(CallContext context) {
        List keys = facet.getDataProviderKeys(this.artifact);
        if (keys == null) {
            return;
        }
        for (Object key: keys) {
            context.registerDataProvider(key, this);
        }
    }


    /** Access the artifact. */
    public Artifact getArtifact() {
        return artifact;
    }


    /** Access the (native) facet. */
    public Facet getFacet() {
        return facet;
    }


    /** Shortcut to facets name. */
    public String getFacetName() {
        return facet.getName();
    }


    /** Shortcut to facets name. */
    public String getFacetDescription() {
        return facet.getDescription();
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org