annotate artifact-database/src/main/java/org/dive4elements/artifactdatabase/state/DefaultFacet.java @ 488:83ee2c6a53b6

Add boundToOut property to facet and default facet This allows a facet to know for which out it should be relevant
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 31 May 2013 14:59:39 +0200
parents 415df0fc4fa1
children 97dc9b8ae68a
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;
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
4
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
5 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
6 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
7 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
8
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
9 import org.dive4elements.artifacts.Artifact;
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
10 import org.dive4elements.artifacts.ArtifactNamespaceContext;
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
11 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
12
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 473
diff changeset
13 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
14
226
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 /**
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 * 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
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 * @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
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 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
22
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
23 /** The index of this facet. */
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
24 protected int index;
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
25
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
26 /** 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
27 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
28
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
29 /** 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
30 protected String boundToOut;
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
31
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
32 /** 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
33 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
34
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
35
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
36 /** Trivial, empty constructor. */
322
93a774fe2bb4 Added deepCopy() method to facets and state data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 295
diff changeset
37 public DefaultFacet() {
93a774fe2bb4 Added deepCopy() method to facets and state data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 295
diff changeset
38 }
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
40
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 /**
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 * 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
43 *
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 * @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
45 * @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
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 public DefaultFacet(String name, String description) {
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
48 this(0, name, description);
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
49 }
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
50
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
51
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
52 /**
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
53 * The default constructor to create new Facet objects.
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 * @param index The index of this new facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
56 * @param name The name of this new facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
57 * @param description The description of this new facet.
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
58 */
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
59 public DefaultFacet(int index, String name, String description) {
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
60 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
61 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
62 this.description = description;
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
65
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
66 /** Get index. */
277
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
67 public int getIndex() {
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
68 return index;
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
69 }
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
70
0a579b71496b Facets have indices now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 226
diff changeset
71
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
72 /** 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
73 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
74 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
75 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
78 /** 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
79 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
80 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
81 }
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
82
7fbe674d758a Facets got a method that return its required data from the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 277
diff changeset
83
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
84 /**
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
85 * 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
86 *
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
87 * @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
88 */
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
89 public String getBoundToOut() {
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
90 return boundToOut;
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
91 }
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
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 * Binds this facet to an out.
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
96 */
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
97 public void setBoundToOut(String value) {
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
98 boundToOut = value;
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
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
102 /**
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
103 * @return null
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
104 */
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
105 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
106 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
107 }
283
7c33cac15134 Added DefaultFacet.toString() method to help debugging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 280
diff changeset
108
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
109
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
110 /**
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
111 * (Do not) provide data.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
112 * 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
113 * @return always null.
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 public Object provideBlackboardData(
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
116 Artifact artifact,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
117 Object key,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
118 Object param,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
119 CallContext context
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
120 ) {
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
121 return null;
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
122 }
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
123
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
124
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
125 /*
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
126 * 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
127 * ("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
128 * 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
129 * 'static').
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
130 * @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
131 */
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
132 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
133 return null;
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
134 }
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
135
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
136 /**
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
137 * 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
138 * ("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
139 * @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
140 */
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
141 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
142 return getStaticDataProviderKeys(artifact);
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
143 }
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
144
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
145
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
146 /** 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
147 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
148 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
149 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
150 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
151 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
152
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
153 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
154 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
155 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
156 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
157 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
158
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
159 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
160 }
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
161
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
162
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
163 /** Create a string representation. */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
164 public String toString() {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
165 return new StringBuilder("name = '")
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
166 .append(name).append("', index = ")
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
167 .append(index).append(", description = '")
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
168 .append(description).append("', bound_out = '")
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
169 .append(boundToOut).append("'")
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
170 .toString();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
171 }
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
172
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
173
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
174 /**
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
175 * Copies name, index and description of other facet.
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
176 */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
177 public void set(Facet other) {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
178 index = other.getIndex();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
179 name = other.getName();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
180 description = other.getDescription();
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
181 boundToOut = other.getBoundToOut();
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
182 }
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
183
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
184
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
185 /** Create a deep copy of this facet. */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
186 public Facet deepCopy() {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
187 DefaultFacet copy = new DefaultFacet();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
188 copy.set(this);
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
189 return copy;
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
190 }
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org