diff artifact-database/src/main/java/org/dive4elements/artifactdatabase/state/Facet.java @ 473:d0ac790a6c89 dive4elements-move

Moved directories to org.dive4elements
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 10:57:18 +0200
parents artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java@71ff234713a6
children 415df0fc4fa1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifact-database/src/main/java/org/dive4elements/artifactdatabase/state/Facet.java	Thu Apr 25 10:57:18 2013 +0200
@@ -0,0 +1,90 @@
+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 :

http://dive4elements.wald.intevation.org