felix@355: package de.intevation.artifactdatabase.state; felix@355: felix@355: import java.util.List; felix@355: felix@355: import de.intevation.artifacts.Artifact; felix@355: import de.intevation.artifacts.CallContext; felix@355: import de.intevation.artifacts.DataProvider; felix@355: felix@355: felix@355: /** felix@355: * A bundle of a "native" Facet and its Artifact. felix@355: */ felix@355: public class ArtifactAndFacet implements DataProvider { felix@355: /** The Artifact. */ felix@355: protected Artifact artifact; felix@355: /** The (native) facet. */ felix@355: protected Facet facet; felix@355: felix@355: felix@355: /** Trivial constructor. */ felix@355: public ArtifactAndFacet( felix@355: Artifact a, felix@355: Facet f felix@355: ) { felix@355: this.artifact = a; felix@355: this.facet = f; felix@355: } felix@355: felix@355: felix@355: /** Get data (to plot). */ felix@355: public Object getData(CallContext context) { felix@355: return facet.getData(artifact, context); felix@355: } felix@355: felix@355: felix@355: /** Get data (for other facet). */ felix@355: public Object provideData(Object key, Object param, CallContext context) { felix@355: return facet.provideBlackboardData(artifact, key, param, context); felix@355: } felix@355: felix@355: felix@355: /** (Maybe) Register on blackboard (depending on facet). */ felix@355: public void register(CallContext context) { felix@355: List keys = facet.getDataProviderKeys(); felix@355: if (keys == null) { felix@355: return; felix@355: } felix@355: for (Object key: keys) { felix@355: context.registerDataProvider(key, this); felix@355: } felix@355: } felix@355: felix@355: felix@355: /** Access the artifact. */ felix@355: public Artifact getArtifact() { felix@355: return artifact; felix@355: } felix@355: felix@355: felix@355: /** Access the (native) facet. */ felix@355: public Facet getFacet() { felix@355: return facet; felix@355: } felix@355: felix@355: felix@355: /** Shortcut to facets name. */ felix@355: public String getFacetName() { felix@355: return facet.getName(); felix@355: } felix@356: felix@356: felix@356: /** Shortcut to facets name. */ felix@356: public String getFacetDescription() { felix@356: return facet.getDescription(); felix@356: } felix@355: } felix@355: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :