Mercurial > dive4elements > framework
view artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.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 org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.ArtifactNamespaceContext; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; /** * The default implementation of a Facet. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class DefaultFacet implements Facet { /** The index of this facet. */ protected int index; /** The name of this facet. */ protected String name; /** The description of this facet. */ protected String description; /** Trivial, empty constructor. */ public DefaultFacet() { } /** * The default constructor to create new Facet objects. * * @param name The name of this new facet. * @param description The description of this new facet. */ public DefaultFacet(String name, String description) { this(0, name, description); } /** * The default constructor to create new Facet objects. * * @param index The index of this new facet. * @param name The name of this new facet. * @param description The description of this new facet. */ public DefaultFacet(int index, String name, String description) { this.index = index; this.name = name; this.description = description; } /** Get index. */ public int getIndex() { return index; } /** Returns the name ('type'). */ public String getName() { return name; } /** Returns the description (e.g. displayed in gui). */ public String getDescription() { return description; } /** * @return null */ public Object getData(Artifact artifact, CallContext context) { return null; } /** * (Do not) provide data. * Override to allow other facets to access your data. * @return always null. */ public Object provideBlackboardData( Artifact artifact, Object key, Object param, CallContext context ) { return null; } /* * Return list of keys (objects) for which this facet can provide data * ("external parameterization"), for other facets, via blackboard. * These are the keys that are independent from the current call (thus * 'static'). * @param artifact that this facet belongs to. */ public List getStaticDataProviderKeys(Artifact artifact) { return null; } /** * Return list of keys (objects) for which this facet can provide data * ("external parameterization"), for other facets, via blackboard. * @param artifact that this facet belongs to. */ public List getDataProviderKeys(Artifact artifact, CallContext context) { return getStaticDataProviderKeys(artifact); } /** Create a xml represantation. */ public Node toXML(Document doc) { ElementCreator ec = new ElementCreator( doc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); Element facet = ec.create("facet"); ec.addAttr(facet, "description", description, true); ec.addAttr(facet, "name", name, true); ec.addAttr(facet, "index", String.valueOf(index), true); return facet; } /** Create a string representation. */ public String toString() { return new StringBuilder("name = '") .append(name).append("', index = ") .append(index).append(", description = '") .append(description).append("'") .toString(); } /** * Copies name, index and description of other facet. */ public void set(Facet other) { index = other.getIndex(); name = other.getName(); description = other.getDescription(); } /** Create a deep copy of this facet. */ public Facet deepCopy() { DefaultFacet copy = new DefaultFacet(); copy.set(this); return copy; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :