annotate artifact-database/src/main/java/org/dive4elements/artifactdatabase/state/DefaultFacet.java @ 552:61255b610929

Jsut a comment
author gernotbelger
date Thu, 01 Mar 2018 12:08:06 +0100
parents ab13ab6acc5c
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
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
524
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
137 @Override
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
138 public void addMetaData(String key, String value) {
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
139 this.metaData.put(key, value);
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
140 }
ab13ab6acc5c New method to add meta data to a facet.
Raimund Renkert <rrenkert@intevation.de>
parents: 519
diff changeset
141
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
142 /**
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
143 * (Do not) provide data.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
144 * 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
145 * @return always null.
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
146 */
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
147 public Object provideBlackboardData(
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
148 Artifact artifact,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
149 Object key,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
150 Object param,
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
151 CallContext context
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
152 ) {
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
153 return null;
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
154 }
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
155
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
156
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
157 /*
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
158 * 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
159 * ("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
160 * 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
161 * 'static').
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
162 * @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
163 */
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
164 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
165 return null;
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
166 }
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
167
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
168 /**
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
169 * 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
170 * ("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
171 * @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
172 */
378
71ff234713a6 Pass context when asking facets for keys to write on blackboard.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 367
diff changeset
173 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
174 return getStaticDataProviderKeys(artifact);
351
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
175 }
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
176
eb1136134d09 Prepare inter-facet pre-rendering communication ('blackboard') phase.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 322
diff changeset
177
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
178 /** 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
179 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
180 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
181 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
182 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
183 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
184
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 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
186 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
187 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
188 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
189 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
190
e5bc48dc3ec3 Facets can write its internal representation to XML using a toXML() method now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 283
diff changeset
191 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
192 }
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
193
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
194
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
195 /** Create a string representation. */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
196 public String toString() {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
197 return new StringBuilder("name = '")
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
198 .append(name).append("', index = ")
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
199 .append(index).append(", description = '")
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
200 .append(description).append("', bound_out = '")
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
201 .append(boundToOut).append("'")
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
202 .toString();
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
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
205
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
206 /**
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
207 * Copies name, index and description of other facet.
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
208 */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
209 public void set(Facet other) {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
210 index = other.getIndex();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
211 name = other.getName();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
212 description = other.getDescription();
488
83ee2c6a53b6 Add boundToOut property to facet and default facet
Andre Heinecke <aheinecke@intevation.de>
parents: 475
diff changeset
213 boundToOut = other.getBoundToOut();
552
61255b610929 Jsut a comment
gernotbelger
parents: 524
diff changeset
214 // FIXME: metadata ist NOT immutable, but a reference is simply copied during a 'deep' copy operation...
519
97dc9b8ae68a Introduced facet metadata.
Raimund Renkert <rrenkert@intevation.de>
parents: 488
diff changeset
215 metaData = other.getMetaData();
367
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
216 }
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
217
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
218
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
219 /** Create a deep copy of this facet. */
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
220 public Facet deepCopy() {
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
221 DefaultFacet copy = new DefaultFacet();
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
222 copy.set(this);
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
223 return copy;
6431b7efe240 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 357
diff changeset
224 }
226
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
225 }
41404961c804 Added support for facets - facets of output modes are read from configuration now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
226 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org