annotate artifact-database/src/main/java/org/dive4elements/artifactdatabase/state/DefaultFacet.java @ 519:97dc9b8ae68a facet-metadata

Introduced facet metadata.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 21 May 2014 11:23:45 +0200
parents 83ee2c6a53b6
children ab13ab6acc5c
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
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
3 import java.util.HashMap;
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
4 import java.util.List;
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
5 import java.util.Map;
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
6
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
7 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: 283
diff changeset
8 import org.w3c.dom.Element;
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
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: 283
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.ArtifactNamespaceContext;
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
13 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: 277
diff changeset
14
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
15 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
16
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 /**
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 * The default implementation of a Facet.
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 *
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 * @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
22 */
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 public class DefaultFacet implements Facet {
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
25 /** The index of this facet. */
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
26 protected int index;
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
27
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
28 /** The name of this facet. */
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 protected String name;
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
31 /** 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
32 protected String boundToOut;
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
33
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
34 /** The description of this facet. */
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 protected String description;
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
37 /** The meta data this facet provides. */
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
38 protected Map<String, String> metaData;
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
39
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
40 /** Trivial, empty constructor. */
322
93a774fe2bb4 Added deepCopy() method to facets and state data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 295
diff changeset
41 public DefaultFacet() {
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
42 this.metaData = new HashMap<String, String>();
322
93a774fe2bb4 Added deepCopy() method to facets and state data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 295
diff changeset
43 }
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
45
226
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 * The default constructor to create new Facet objects.
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 * @param name The name of this new 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 * @param description The description of this new facet.
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 */
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 public DefaultFacet(String name, String description) {
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
53 this(0, name, description);
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
54 }
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
55
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
56
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
57 /**
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
58 * The default constructor to create new Facet objects.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
59 *
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
60 * @param index The index of this new facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
61 * @param name The name of this new facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
62 * @param description The description of this new facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
63 */
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
64 public DefaultFacet(int index, String name, String description) {
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
65 this.index = index;
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 this.name = name;
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 this.description = description;
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
68 this.metaData = new HashMap<String, String>();
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
71
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
72 /** Get index. */
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
73 public int getIndex() {
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
74 return index;
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
75 }
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
76
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
77
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
78 /** Returns the name ('type'). */
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 public 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
80 return name;
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
84 /** Returns the description (e.g. displayed in gui). */
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 public String getDescription() {
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 return description;
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 }
280
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
88
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
89
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
90 /**
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
91 * 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
92 *
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
93 * @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
94 */
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
95 public String getBoundToOut() {
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
96 return boundToOut;
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
97 }
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
98
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
99
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
100 /**
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
101 * Binds this facet to an out.
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
102 */
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
103 public void setBoundToOut(String value) {
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
104 boundToOut = value;
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
105 }
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
106
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
107
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
108 /**
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
109 * @return null
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
110 */
280
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
111 public Object getData(Artifact artifact, CallContext context) {
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
112 return null;
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
113 }
283
7c33cac15134 Added DefaultFacet.toString() method to help debugging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 280
diff changeset
114
351
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 /**
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
117 * Returns the meta data this facet provides.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
118 *
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
119 * @param artifact The owner artifact.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
120 * @param context The CallContext.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
121 *
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
122 * @return the meta data.
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
123 */
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
124 @Override
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
125 public Map<String, String> getMetaData(
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
126 Artifact artifact,
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
127 CallContext context)
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
128 {
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
129 return this.metaData;
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
130 }
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
131
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
132 @Override
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
133 public Map<String, String> getMetaData() {
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
134 return this.metaData;
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
135 }
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
136
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
137 /**
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
138 * (Do not) provide data.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
139 * Override to allow other facets to access your data.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
140 * @return always null.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
141 */
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
142 public Object provideBlackboardData(
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
143 Artifact artifact,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
144 Object key,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
145 Object param,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
146 CallContext context
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
147 ) {
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
148 return null;
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
149 }
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
150
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
151
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
152 /*
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
153 * Return list of keys (objects) for which this facet can provide data
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
154 * ("external parameterization"), for other facets, via blackboard.
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
155 * These are the keys that are independent from the current call (thus
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
156 * 'static').
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
157 * @param artifact that this facet belongs to.
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
158 */
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
159 public List getStaticDataProviderKeys(Artifact artifact) {
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
160 return null;
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
161 }
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
162
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
163 /**
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
164 * Return list of keys (objects) for which this facet can provide data
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
165 * ("external parameterization"), for other facets, via blackboard.
357
1d11a0531242 Added artifact parameter to facets getDataProviderKeys.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 351
diff changeset
166 * @param 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
167 */
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
168 public List getDataProviderKeys(Artifact artifact, CallContext context) {
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
169 return getStaticDataProviderKeys(artifact);
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
170 }
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
171
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
172
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
173 /** Create a xml represantation. */
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
174 public Node toXML(Document doc) {
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
175 ElementCreator ec = new ElementCreator(
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
176 doc,
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
177 ArtifactNamespaceContext.NAMESPACE_URI,
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
178 ArtifactNamespaceContext.NAMESPACE_PREFIX);
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
179
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
180 Element facet = ec.create("facet");
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
181 ec.addAttr(facet, "description", description, true);
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
182 ec.addAttr(facet, "name", name, true);
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
183 ec.addAttr(facet, "index", String.valueOf(index), true);
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
184 ec.addAttr(facet, "boundToOut", boundToOut, true);
295
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
185
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
186 return facet;
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
187 }
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
188
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
189
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
190 /** Create a string representation. */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
191 public String toString() {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
192 return new StringBuilder("name = '")
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
193 .append(name).append("', index = ")
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
194 .append(index).append(", description = '")
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
195 .append(description).append("', bound_out = '")
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
196 .append(boundToOut).append("'")
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
197 .toString();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
198 }
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
199
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
200
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
201 /**
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
202 * Copies name, index and description of other facet.
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
203 */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
204 public void set(Facet other) {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
205 index = other.getIndex();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
206 name = other.getName();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
207 description = other.getDescription();
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
208 boundToOut = other.getBoundToOut();
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
209 metaData = other.getMetaData();
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
210 }
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
211
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
212
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
213 /** Create a deep copy of this facet. */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
214 public Facet deepCopy() {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
215 DefaultFacet copy = new DefaultFacet();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
216 copy.set(this);
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
217 return copy;
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
218 }
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
219 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
220 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org