annotate artifact-database/src/main/java/org/dive4elements/artifactdatabase/state/Facet.java @ 524:ab13ab6acc5c facet-metadata

New method to add meta data to a facet.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 02 Jul 2014 12:29:21 +0200
parents 97dc9b8ae68a
children
rev   line source
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
1 package org.dive4elements.artifactdatabase.state;
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
3 import java.util.List;
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
4 import java.util.Map;
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
5
278
9ad188df72f2 Facets are serializable now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
6 import java.io.Serializable;
9ad188df72f2 Facets are serializable now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
7
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
8 import org.w3c.dom.Document;
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
9 import org.w3c.dom.Node;
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
10
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
11 import org.dive4elements.artifacts.Artifact;
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
12 import org.dive4elements.artifacts.CallContext;
280
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
13
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 /**
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 */
278
9ad188df72f2 Facets are serializable now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
18 public interface Facet extends Serializable {
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 /**
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
21 * Returns the index of this facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
22 *
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
23 * @return the index of this facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
24 */
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
25 int getIndex();
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
26
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
27 /**
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 * Returns the name of this facet.
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 *
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 * @return the name of this facet.
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 */
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 String getName();
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
34 /**
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
35 * Returns the name of the out this facet is bound to.
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
36 *
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
37 * @return the name of the out this facet is bound to.
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
38 */
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
39 String getBoundToOut();
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
40
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
41 /**
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
42 * Binds this facet to an out.
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
43 */
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
44 void setBoundToOut(String value);
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 /**
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 * Returns the description of this facet.
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 *
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 * @return the description of this facet.
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 */
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 String getDescription();
280
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
52
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
53
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
54 /**
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
55 * Returns the data this facet requires.
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
56 *
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
57 * @param artifact The owner artifact.
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
58 * @param context The CallContext.
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
59 *
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
60 * @return the data.
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
61 */
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 278
diff changeset
62 Object getData(Artifact artifact, CallContext context);
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
63
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
64
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
65 /**
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
66 * Returns the meta data this facet provides.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
67 *
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
68 * @return the meta data.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
69 */
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
70 Map<String, String> getMetaData();
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
71
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
72 /**
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
73 * Returns the meta data this facet provides.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
74 *
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
75 * @param artifact The owner artifact.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
76 * @param context The CallContext.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
77 *
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
78 * @return the meta data.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
79 */
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
80 Map<String, String> getMetaData(Artifact artifact, CallContext context);
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
81
524
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
82 /**
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
83 * Add a key value pair to the facets metadata.
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
84 *
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
85 * @param key The meta data key.
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
86 * @param value The meta data value.
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
87 */
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
88 void addMetaData(String key, String value);
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
89
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
90 /**
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
91 * Get keys for which this Facet can provide data (for other facets, not
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
92 * for plot).
357
1d11a0531242 Added artifact parameter to facets getDataProviderKeys.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 351
diff changeset
93 * @param artifact Artifact that this facet belongs to.
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
94 * @return list of keys
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
95 */
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
96 List getDataProviderKeys(Artifact artifact, CallContext context);
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
97
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
98
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
99 /**
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
100 * Provide data to other facet.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
101 *
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
102 * @param art The artifact that this facet belongs to.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
103 * @param key the key of the requested service.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
104 * @param prm optional parameters.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
105 * @param ctxt the callcontext.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
106 *
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
107 * @return the data
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
108 */
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
109 Object provideBlackboardData(
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
110 Artifact art,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
111 Object key,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
112 Object prm,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
113 CallContext ctxt);
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
114
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
115
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
116 /**
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
117 * Write the internal representation of a facet to a node.
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
118 *
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
119 * @param doc A Document.
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
120 *
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
121 * @return the representation as Node.
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
122 */
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 280
diff changeset
123 Node toXML(Document doc);
322
93a774fe2bb4 Added deepCopy() method to facets and state data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 295
diff changeset
124
93a774fe2bb4 Added deepCopy() method to facets and state data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 295
diff changeset
125 Facet deepCopy();
524
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
126
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org