Mercurial > dive4elements > framework
view artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java @ 405:e1738650bfca
FacetActivity: use Chain-of-responsibility pattern to figure out if facet should be active.
artifacts/trunk@5154 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 29 Jul 2012 11:38:40 +0000 |
parents | 71ff234713a6 |
children |
line wrap: on
line source
package de.intevation.artifactdatabase.state; import java.util.List; import java.io.Serializable; import org.w3c.dom.Document; import org.w3c.dom.Node; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public interface Facet extends Serializable { /** * Returns the index of this facet. * * @return the index of this facet. */ int getIndex(); /** * Returns the name of this facet. * * @return the name of this facet. */ String getName(); /** * Returns the description of this facet. * * @return the description of this facet. */ String getDescription(); /** * Returns the data this facet requires. * * @param artifact The owner artifact. * @param context The CallContext. * * @return the data. */ Object getData(Artifact artifact, CallContext context); /** * Get keys for which this Facet can provide data (for other facets, not * for plot). * @param artifact Artifact that this facet belongs to. * @return list of keys */ List getDataProviderKeys(Artifact artifact, CallContext context); /** * Provide data to other facet. * * @param art The artifact that this facet belongs to. * @param key the key of the requested service. * @param prm optional parameters. * @param ctxt the callcontext. * * @return the data */ Object provideBlackboardData( Artifact art, Object key, Object prm, CallContext ctxt); /** * Write the internal representation of a facet to a node. * * @param doc A Document. * * @return the representation as Node. */ Node toXML(Document doc); Facet deepCopy(); } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :