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@357: felix@355: /** The (native) facet. */ felix@355: protected Facet facet; felix@355: ingo@377: /** An alternative facet description that might be set from outside. */ ingo@377: protected String facetDescription; ingo@377: ingo@377: 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). */ sascha@375: @Override 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). */ sascha@375: @Override felix@355: public void register(CallContext context) { felix@378: List keys = facet.getDataProviderKeys(this.artifact, context); 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: ingo@377: /** ingo@377: * Returns the description for a facet. The return value depends on the ingo@377: * internal facetDescription instance variable. If this has been set ingo@377: * by setFacetDescription, this value is returned, otherwise the return ingo@377: * value of facet.getDescription(). ingo@377: */ felix@356: public String getFacetDescription() { ingo@377: if (facetDescription == null) { ingo@377: return facet.getDescription(); ingo@377: } ingo@377: ingo@377: return facetDescription; ingo@377: } ingo@377: ingo@377: ingo@377: public void setFacetDescription(String facetDescription) { ingo@377: this.facetDescription = facetDescription; felix@356: } felix@355: } felix@355: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :