Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java @ 8659:af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
For creating a digest of the parametrization we should use an
algorithm that does not create collisions if there are small changes
in the parametrization so that wrong results are returned.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 02 Apr 2015 17:40:18 +0200 |
parents | 7d1a32a543cb |
children | 5e38e2924c07 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5975
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5975
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
9 package org.dive4elements.river.artifacts; |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
3883
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
11 import java.util.ArrayList; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
12 import java.util.Collection; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
13 import java.util.HashMap; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
14 import java.util.HashSet; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
15 import java.util.LinkedList; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
16 import java.util.List; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
17 import java.util.Map; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
18 import java.util.Set; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
19 import java.util.TreeMap; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
20 |
8659
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
21 import java.security.MessageDigest; |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
22 import java.security.NoSuchAlgorithmException; |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
23 import java.io.ByteArrayOutputStream; |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
24 import java.io.ObjectOutputStream; |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
25 import java.io.IOException; |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
26 |
3883
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
27 import javax.xml.xpath.XPathConstants; |
8659
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
28 import javax.xml.bind.DatatypeConverter; |
3883
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
29 |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
30 import net.sf.ehcache.Cache; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
31 |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
32 import org.apache.log4j.Logger; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
33 import org.w3c.dom.Document; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
34 import org.w3c.dom.Element; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
35 import org.w3c.dom.Node; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
36 import org.w3c.dom.NodeList; |
f858028dde5f
Manual points (work in progress)
Christian Lins <christian.lins@intevation.de>
parents:
3556
diff
changeset
|
37 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
38 import org.dive4elements.artifactdatabase.ArtifactDatabaseImpl; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
39 import org.dive4elements.artifactdatabase.DefaultArtifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
40 import org.dive4elements.artifactdatabase.ProtocolUtils; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
41 import org.dive4elements.artifactdatabase.data.DefaultStateData; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
42 import org.dive4elements.artifactdatabase.data.StateData; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
43 import org.dive4elements.artifactdatabase.state.DefaultFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
44 import org.dive4elements.artifactdatabase.state.DefaultOutput; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
45 import org.dive4elements.artifactdatabase.state.Facet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
46 import org.dive4elements.artifactdatabase.state.Output; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
47 import org.dive4elements.artifactdatabase.state.State; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
48 import org.dive4elements.artifactdatabase.state.StateEngine; |
7845
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
49 import org.dive4elements.artifactdatabase.state.StaticFacet; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
50 import org.dive4elements.artifactdatabase.transition.TransitionEngine; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
51 import org.dive4elements.artifacts.Artifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
52 import org.dive4elements.artifacts.ArtifactDatabase; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
53 import org.dive4elements.artifacts.ArtifactDatabaseException; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
54 import org.dive4elements.artifacts.ArtifactFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
55 import org.dive4elements.artifacts.CallContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
56 import org.dive4elements.artifacts.CallMeta; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
57 import org.dive4elements.artifacts.Message; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
58 import org.dive4elements.artifacts.common.ArtifactNamespaceContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
59 import org.dive4elements.artifacts.common.utils.XMLUtils; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
60 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
61 import org.dive4elements.river.artifacts.cache.CacheFactory; |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
62 import org.dive4elements.river.artifacts.context.RiverContext; |
7227
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
63 import org.dive4elements.river.artifacts.context.RiverContextFactory; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
64 import org.dive4elements.river.artifacts.model.CalculationMessage; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
65 import org.dive4elements.river.artifacts.states.DefaultState; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4497
diff
changeset
|
66 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
67 import org.dive4elements.river.utils.RiverUtils; |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 /** |
2169
b817e680cf18
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2141
diff
changeset
|
70 * The default FLYS artifact with convenience added. |
b817e680cf18
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2141
diff
changeset
|
71 * (Subclass to get fully functional artifacts). |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 */ |
7843
2e45ff3f249b
D4EArtifact is no longer abstract.
Raimund Renkert <rrenkert@intevation.de>
parents:
7842
diff
changeset
|
75 public class D4EArtifact extends DefaultArtifact { |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7888
diff
changeset
|
77 /** The log that is used in this artifact. */ |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
78 private static Logger log = Logger.getLogger(D4EArtifact.class); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
80 public static final String COMPUTING_CACHE = "computed.values"; |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
81 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
82 /** The XPath that points to the input data elements of the FEED document. */ |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
83 public static final String XPATH_FEED_INPUT = |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
84 "/art:action/art:data/art:input"; |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
86 /** The XPath that points to the name of the target state of ADVANCE. */ |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
87 public static final String XPATH_ADVANCE_TARGET = |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
88 "/art:action/art:target/@art:name"; |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
89 |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
90 public static final String XPATH_MODEL_ARTIFACT = |
941
1b509e4cf99b
Added a computeInit() method to intialize data/facets after creating new artifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
940
diff
changeset
|
91 "/art:action/art:template/@uuid"; |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
92 |
1057
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
93 public static final String XPATH_FILTER = |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
94 "/art:action/art:filter/art:out"; |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
95 |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
96 /** Path to 'ids' (data) in doc that comes from datacage. */ |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
97 public static final String XPATH_IDS = "/art:action/art:ids/@value"; |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
98 |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
99 /** Path to 'target_out' (data) in doc that comes from datacage. */ |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
100 public static final String XPATH_TARGET_OUT = "/art:action/art:target_out/@value"; |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
101 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
102 /** The constant string that shows that an operation was successful. */ |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
103 public static final String OPERATION_SUCCESSFUL = "SUCCESS"; |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
104 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
105 /** The constant string that shows that an operation failed. */ |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
106 public static final String OPERATION_FAILED = "FAILURE"; |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
107 |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 /** The identifier of the current state. */ |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 protected String currentStateId; |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
111 /** The identifiers of previous states on a stack. */ |
661
fdc898a134a7
Use java.util.List instead of java.util.Vector. Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
658
diff
changeset
|
112 protected List<String> previousStateIds; |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
113 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
114 /** The data that have been inserted into this artifact. */ |
3920
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
115 private Map<String, StateData> data; |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
116 |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
117 /** Mapping of state names to created facets. */ |
4497
a2735a4bf75e
Change facets member variable to private
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4496
diff
changeset
|
118 private Map<String, List<Facet>> facets; |
687
06689035024c
Added a compute() method to WINFOArtifact which acts as a dispatcher for different computations. It triggers a calculation based on ComputeCallbacks that are generated by the current states.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
686
diff
changeset
|
119 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
120 /** |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
121 * Used to generates "view" on the facets (hides facets not matching the |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
122 * filter in output of collection); out -> facets. |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
123 */ |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
124 protected Map<String, List<Facet>> filterFacets; |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
125 |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
126 /** To which out this artifacts facets are bound by default. */ |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
127 private String boundToOut; |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
128 |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
129 |
7227
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
130 /** |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
131 * Interface to a global facet filter. |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
132 */ |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
133 public interface FacetFilter { |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
134 boolean accept(String outName, String facetName); |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
135 } // interface FacetFilter |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
136 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
137 |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
138 /** |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
139 * The default constructor that creates an empty D4EArtifact. |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
140 */ |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
141 public D4EArtifact() { |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
142 data = new TreeMap<String, StateData>(); |
661
fdc898a134a7
Use java.util.List instead of java.util.Vector. Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
658
diff
changeset
|
143 previousStateIds = new ArrayList<String>(); |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
144 facets = new HashMap<String, List<Facet>>(); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
145 } |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
146 |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4050
diff
changeset
|
147 |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
148 /** |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
149 * This method appends the static data - that has already been inserted by |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
150 * the user - to the static node of the DESCRIBE document. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
151 * |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
152 * @param doc The document. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
153 * @param ui The root node. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
154 * @param context The CallContext. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
155 * @param uuid The identifier of the artifact. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
156 */ |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
157 protected void appendStaticUI( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
158 Document doc, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
159 Node ui, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
160 CallContext context, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
161 String uuid) |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
162 { |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
163 List<String> stateIds = getPreviousStateIds(); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
164 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
165 RiverContext flysContext = RiverUtils.getFlysContext(context); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
166 StateEngine engine = (StateEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
167 RiverContext.STATE_ENGINE_KEY); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
168 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
169 boolean debug = log.isDebugEnabled(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
170 |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
171 for (String stateId: stateIds) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
172 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
173 log.debug("Append static data for state: " + stateId); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
174 } |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
175 DefaultState state = (DefaultState) engine.getState(stateId); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
176 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
177 ui.appendChild(state.describeStatic(this, doc, ui, context, uuid)); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
178 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
179 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
180 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
181 |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
182 /** |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
183 * Initialize the artifact and insert new data if <code>data</code> contains |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
184 * information necessary for this artifact. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
185 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
186 * @param identifier The UUID. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
187 * @param factory The factory that is used to create this artifact. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
188 * @param context The CallContext. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
189 * @param data Some optional data. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
190 */ |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
191 @Override |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
192 public void setup( |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
193 String identifier, |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
194 ArtifactFactory factory, |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
195 Object context, |
952
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
196 CallMeta callMeta, |
7842
8d5ca5175038
Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents:
7746
diff
changeset
|
197 Document data, |
8d5ca5175038
Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents:
7746
diff
changeset
|
198 List<Class> facets) |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
199 { |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
200 log.debug("Setup this artifact with the uuid: " + identifier); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
201 |
7842
8d5ca5175038
Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents:
7746
diff
changeset
|
202 super.setup(identifier, factory, context, callMeta, data, facets); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
203 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
204 RiverContext flysContext = RiverUtils.getFlysContext(context); |
1067
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
205 |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
206 List<State> states = getStates(context); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
207 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
208 String name = getName(); |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
209 |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
210 log.debug("setup(): Set initial state for artifact '" + name + "'"); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
211 |
2169
b817e680cf18
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2141
diff
changeset
|
212 if (states == null) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
213 log.error("No states found from which an initial " |
2766
7dc4681a2bed
Allow easy change of sticky axis for annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2701
diff
changeset
|
214 + "state could be picked."); |
2169
b817e680cf18
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2141
diff
changeset
|
215 } |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
216 setCurrentState(states.get(0)); |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
217 |
7746
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
218 handleInitModel(data, context, callMeta); |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
219 |
7888
49daff6c11ca
Use the new way of building static facets if such facets exist else ignore this way.
Raimund Renkert <rrenkert@intevation.de>
parents:
7845
diff
changeset
|
220 if (!facets.isEmpty()) { |
49daff6c11ca
Use the new way of building static facets if such facets exist else ignore this way.
Raimund Renkert <rrenkert@intevation.de>
parents:
7845
diff
changeset
|
221 buildStaticFacets(data, facets, callMeta); |
49daff6c11ca
Use the new way of building static facets if such facets exist else ignore this way.
Raimund Renkert <rrenkert@intevation.de>
parents:
7845
diff
changeset
|
222 } |
7845
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
223 |
7746
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
224 filterFacets = buildFilterFacets(data); |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
225 |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
226 extractOut(data); |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
227 } |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
228 |
7845
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
229 protected void buildStaticFacets( |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
230 Document data, |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
231 List<Class> facets, |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
232 CallMeta callMeta) |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
233 { |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
234 List<Facet> staticFacets = new ArrayList<Facet>(); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
235 String currentState = getCurrentStateId(); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
236 for (int i = 0; i < facets.size(); i++) { |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
237 try { |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
238 StaticFacet facet = (StaticFacet)facets.get(i).newInstance(); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
239 facet.setup(this, data, callMeta); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
240 staticFacets.add(facet); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
241 } |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
242 catch (InstantiationException ie) { |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
243 log.error(ie.getLocalizedMessage(), ie); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
244 } |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
245 catch (IllegalAccessException iae) { |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
246 log.error(iae.getLocalizedMessage(), iae); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
247 } |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
248 } |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
249 this.facets.put(currentState, staticFacets); |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
250 } |
4e264d6c6e06
Build static facets in D4EArtifact.
Raimund Renkert <rrenkert@intevation.de>
parents:
7844
diff
changeset
|
251 |
7746
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
252 protected void handleInitModel(Document data, Object context, CallMeta callMeta) { |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
253 RiverContext flysContext = RiverUtils.getFlysContext(context); |
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
254 |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
255 String model = XMLUtils.xpathString( |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
256 data, |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
257 XPATH_MODEL_ARTIFACT, |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
258 ArtifactNamespaceContext.INSTANCE); |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
259 |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
260 if (model != null && model.length() > 0) { |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
261 ArtifactDatabase db = (ArtifactDatabase) flysContext.get( |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
262 ArtifactDatabaseImpl.GLOBAL_CONTEXT_KEY); |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
263 |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
264 try { |
952
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
265 initialize(db.getRawArtifact(model), context, callMeta); |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
266 } |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
267 catch (ArtifactDatabaseException adbe) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
268 log.error(adbe, adbe); |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
269 } |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
270 } |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
271 } |
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
272 |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
273 protected void extractOut(Document data) { |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
274 String targetOut = XMLUtils.xpathString(data, XPATH_TARGET_OUT, |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
275 ArtifactNamespaceContext.INSTANCE); |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
276 if (targetOut.isEmpty()) { |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
277 targetOut = null; |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
278 } |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
279 |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
280 setBoundToOut(targetOut); |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
281 } |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
282 |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
283 /** |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
284 * Return the value of id element in Datacage data document. |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
285 * @param data Document as passed by datacage. |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
286 * @return the id element value of data document. |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
287 */ |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
288 public static String getDatacageIDValue(Document data) { |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
289 String ids = XMLUtils.xpathString(data, XPATH_IDS, |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
290 ArtifactNamespaceContext.INSTANCE); |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
291 |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
292 return ids; |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
293 } |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
294 |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
295 |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
296 |
2141
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2128
diff
changeset
|
297 /** Get copy of previous state ids as Strings in list. */ |
1059
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
298 protected List<String> clonePreviousStateIds() { |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
299 return new ArrayList<String>(previousStateIds); |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
300 } |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
301 |
2141
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2128
diff
changeset
|
302 |
1895
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
303 /** |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
304 * Copies data item from other artifact to this artifact. |
2111
85d31c2620e5
Avoid an unlikely NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2095
diff
changeset
|
305 * |
1895
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
306 * @param other Artifact from which to get data. |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
307 * @param name Name of data. |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
308 */ |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
309 protected void importData(D4EArtifact other, final String name) { |
1895
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
310 if (other == null) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
311 log.error("No other art. to import data " + name + " from."); |
2111
85d31c2620e5
Avoid an unlikely NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2095
diff
changeset
|
312 return; |
1895
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
313 } |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
314 |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
315 StateData sd = other.getData(name); |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
316 |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
317 if (sd == null) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
318 log.warn("Other artifact has no data " + name + "."); |
1895
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
319 return; |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
320 } |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
321 |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
322 this.addData(name, sd); |
1be3a4636ee3
New convenience function to copy data from one artifact to another.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1809
diff
changeset
|
323 } |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
324 |
2169
b817e680cf18
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2141
diff
changeset
|
325 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
326 /** Clone the internal map of map of state-name to state-data. */ |
1059
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
327 protected Map<String, StateData> cloneData() { |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
328 Map<String, StateData> copy = new TreeMap<String, StateData>(); |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
329 |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
330 for (Map.Entry<String, StateData> entry: data.entrySet()) { |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
331 copy.put(entry.getKey(), entry.getValue().deepCopy()); |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
332 } |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
333 |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
334 return copy; |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
335 } |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
336 |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4050
diff
changeset
|
337 |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
338 /** |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
339 * Return a copy of the facet mapping. |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
340 * @return Mapping of state-ids to facets. |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
341 */ |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
342 protected Map<String, List<Facet>> cloneFacets() { |
3306
1b41dc00b1f7
Create shapefile directory instead of shapefile 'file'
Christian Lins <christian.lins@intevation.de>
parents:
3203
diff
changeset
|
343 Map<String, List<Facet>> copy = new HashMap<String, List<Facet>>(); |
1059
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
344 |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
345 for (Map.Entry<String, List<Facet>> entry: facets.entrySet()) { |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
346 List<Facet> facets = entry.getValue(); |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
347 List<Facet> facetCopies = new ArrayList<Facet>(facets.size()); |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
348 for (Facet facet: facets) { |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
349 facetCopies.add(facet.deepCopy()); |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
350 } |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
351 copy.put(entry.getKey(), facetCopies); |
1059
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
352 } |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
353 |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
354 return copy; |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
355 } |
940
f4439e015278
Append artifact recommendations to the artifact's describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
937
diff
changeset
|
356 |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
357 |
1765
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
358 /** |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
359 * (called from setup). |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
360 * @param artifact master-artifact (if any, otherwise initialize is not called). |
1765
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
361 */ |
952
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
362 protected void initialize( |
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
363 Artifact artifact, |
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
364 Object context, |
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
365 CallMeta callMeta) |
7399401f728c
Adapted the method of FLYSArtifact.setup() which has been changed in the artifact package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
944
diff
changeset
|
366 { |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
367 if (!(artifact instanceof D4EArtifact)) { |
1059
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
368 return; |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
369 } |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
370 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
371 D4EArtifact flys = (D4EArtifact)artifact; |
1059
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
372 |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
373 currentStateId = flys.currentStateId; |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
374 previousStateIds = flys.clonePreviousStateIds(); |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
375 name = flys.name; |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
376 data = flys.cloneData(); |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
377 facets = flys.cloneFacets(); |
fdb0f4ef96f0
Made FLYS artifacts cloneable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1057
diff
changeset
|
378 // Do not clone filter facets! |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
379 |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
380 ArrayList<String> stateIds = (ArrayList<String>) getPreviousStateIds(); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
381 ArrayList<String> toInitialize = (ArrayList<String>) stateIds.clone(); |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
382 |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
383 toInitialize.add(getCurrentStateId()); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
384 |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
385 for (String stateId: toInitialize) { |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
386 State state = getState(context, stateId); |
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
387 |
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
388 if (state != null) { |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
389 state.initialize(artifact, this, context, callMeta); |
2093
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
390 } |
ebc2aa64c1be
Call State.initialize() for each State of an Artifact in FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2038
diff
changeset
|
391 } |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
392 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
393 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
394 |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
395 /** |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
396 * Builds filter facets from document. |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
397 * @see filterFacets |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
398 */ |
1057
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
399 protected Map<String, List<Facet>> buildFilterFacets(Document document) { |
4403
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
400 if (log.isDebugEnabled()) { |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
401 log.debug("Building filter factes for artifact " + this.getName()); |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
402 } |
1057
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
403 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
404 NodeList nodes = (NodeList)XMLUtils.xpath( |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
405 document, |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
406 XPATH_FILTER, |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
407 XPathConstants.NODESET, |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
408 ArtifactNamespaceContext.INSTANCE); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
409 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
410 if (nodes == null || nodes.getLength() == 0) { |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
411 return null; |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
412 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
413 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
414 Map<String, List<Facet>> result = new HashMap<String, List<Facet>>(); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
415 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
416 for (int i = 0, N = nodes.getLength(); i < N; ++i) { |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
417 Element element = (Element)nodes.item(i); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
418 String oName = element.getAttribute("name"); |
4403
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
419 if (oName == null || oName.isEmpty()) { |
1057
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
420 continue; |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
421 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
422 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
423 List<Facet> facets = new ArrayList<Facet>(); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
424 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
425 NodeList facetNodes = element.getElementsByTagNameNS( |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
426 ArtifactNamespaceContext.NAMESPACE_URI, |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
427 "facet"); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
428 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
429 for (int j = 0, M = facetNodes.getLength(); j < M; ++j) { |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
430 Element facetElement = (Element)facetNodes.item(j); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
431 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
432 String fName = facetElement.getAttribute("name"); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
433 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
434 int index; |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
435 try { |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
436 index = Integer.parseInt(facetElement.getAttribute("index")); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
437 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
438 catch (NumberFormatException nfe) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
439 log.warn(nfe); |
1057
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
440 index = 0; |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
441 } |
4403
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
442 if (log.isDebugEnabled()) { |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
443 log.debug("Creating filter facet " + fName + " with index " + index + |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
444 " for out " + oName); |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
445 } |
1057
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
446 facets.add(new DefaultFacet(index, fName, "")); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
447 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
448 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
449 if (!facets.isEmpty()) { |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
450 result.put(oName, facets); |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
451 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
452 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
453 |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
454 return result; |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
455 } |
d4a5d3941cc0
Build out/facet filter from XML document passed at creation time.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1056
diff
changeset
|
456 |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
457 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
458 /** |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
459 * Insert new data included in <code>input</code> into the current state. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
460 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
461 * @param target XML document that contains new data. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
462 * @param context The CallContext. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
463 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
464 * @return a document that contains a SUCCESS or FAILURE message. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
465 */ |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
466 @Override |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
467 public Document feed(Document target, CallContext context) { |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
468 log.debug("D4EArtifact.feed()"); |
123
ebb1cb69d847
The operations feed() and advance() return the current description of the artifact now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
122
diff
changeset
|
469 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
470 Document doc = XMLUtils.newDocument(); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
471 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
472 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
473 doc, |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
474 ArtifactNamespaceContext.NAMESPACE_URI, |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
475 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
476 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
477 Element result = creator.create("result"); |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
478 doc.appendChild(result); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
479 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
480 try { |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
481 saveData(target, context); |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
482 |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
483 compute(context, ComputeType.FEED, true); |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
484 |
123
ebb1cb69d847
The operations feed() and advance() return the current description of the artifact now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
122
diff
changeset
|
485 return describe(target, context); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
486 } |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
487 catch (IllegalArgumentException iae) { |
658
ed7c901ee712
If Artifact.feed() fails do not store invalid values in database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
655
diff
changeset
|
488 // do not store state if validation fails. |
ed7c901ee712
If Artifact.feed() fails do not store invalid values in database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
655
diff
changeset
|
489 context.afterCall(CallContext.NOTHING); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
490 creator.addAttr(result, "type", OPERATION_FAILED, true); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
491 |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
492 result.setTextContent(iae.getMessage()); |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
493 } |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
494 |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
495 return doc; |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
496 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
497 |
4147
db0b9cff8496
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4050
diff
changeset
|
498 |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
499 /** |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
500 * This method returns a description of this artifact. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
501 * |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
502 * @param data Some data. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
503 * @param context The CallContext. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
504 * |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
505 * @return the description of this artifact. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
506 */ |
3306
1b41dc00b1f7
Create shapefile directory instead of shapefile 'file'
Christian Lins <christian.lins@intevation.de>
parents:
3203
diff
changeset
|
507 @Override |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
508 public Document describe(Document data, CallContext context) { |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
509 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
510 if (log.isDebugEnabled()) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
511 log.debug( |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
512 "Describe: the current state is: " + getCurrentStateId()); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
513 dumpArtifact(); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
514 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
515 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
516 RiverContext flysContext = RiverUtils.getFlysContext(context); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
517 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
518 StateEngine stateEngine = (StateEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
519 RiverContext.STATE_ENGINE_KEY); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
520 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
521 TransitionEngine transitionEngine = (TransitionEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
522 RiverContext.TRANSITION_ENGINE_KEY); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
523 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
524 List<State> reachable = transitionEngine.getReachableStates( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
525 this, getCurrentState(context), stateEngine); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
526 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
527 Document description = XMLUtils.newDocument(); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
528 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
529 description, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
530 ArtifactNamespaceContext.NAMESPACE_URI, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
531 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
532 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
533 Element root = ProtocolUtils.createRootNode(creator); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
534 description.appendChild(root); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
535 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
536 State current = getCurrentState(context); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
537 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
538 ProtocolUtils.appendDescribeHeader(creator, root, identifier(), hash()); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
539 ProtocolUtils.appendState(creator, root, current); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
540 ProtocolUtils.appendReachableStates(creator, root, reachable); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
541 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
542 appendBackgroundActivity(creator, root, context); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
543 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
544 Element ui = ProtocolUtils.createArtNode( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
545 creator, "ui", null, null); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
546 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
547 Element staticUI = ProtocolUtils.createArtNode( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
548 creator, "static", null, null); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
549 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
550 Element outs = ProtocolUtils.createArtNode( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
551 creator, "outputmodes", null, null); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
552 appendOutputModes(description, outs, context, identifier()); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
553 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
554 appendStaticUI(description, staticUI, context, identifier()); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
555 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
556 Element name = ProtocolUtils.createArtNode( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
557 creator, "name", |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
558 new String[] { "value" }, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
559 new String[] { getName() }); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
560 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
561 Element dynamic = current.describe( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
562 this, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
563 description, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
564 root, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
565 context, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
566 identifier()); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
567 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
568 if (dynamic != null) { |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
569 ui.appendChild(dynamic); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
570 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
571 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
572 ui.appendChild(staticUI); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
573 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
574 root.appendChild(name); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
575 root.appendChild(ui); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
576 root.appendChild(outs); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
577 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
578 return description; |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
579 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
580 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
581 /** Override me! */ |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
582 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
583 protected void appendBackgroundActivity( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
584 ElementCreator cr, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
585 Element root, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
586 CallContext context |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
587 ) { |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
588 LinkedList<Message> messages = context.getBackgroundMessages(); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
589 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
590 if (messages == null) { |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
591 return; |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
592 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
593 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
594 Element inBackground = cr.create("background-processing"); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
595 root.appendChild(inBackground); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
596 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
597 cr.addAttr( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
598 inBackground, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
599 "value", |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
600 String.valueOf(context.isInBackground()), |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
601 true); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
602 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
603 CalculationMessage message = (CalculationMessage) messages.getLast(); |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
604 cr.addAttr( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
605 inBackground, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
606 "steps", |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
607 String.valueOf(message.getSteps()), |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
608 true); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
609 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
610 cr.addAttr( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
611 inBackground, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
612 "currentStep", |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
613 String.valueOf(message.getCurrentStep()), |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
614 true); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
615 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
616 inBackground.setTextContent(message.getMessage()); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
617 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
618 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
619 /** |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
620 * Append output mode nodes to a document. |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
621 */ |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
622 protected void appendOutputModes( |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
623 Document doc, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
624 Element outs, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
625 CallContext context, |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
626 String uuid) |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
627 { |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
628 List<Output> generated = getOutputs(context); |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
629 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
630 if (log.isDebugEnabled()) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
631 log.debug("This Artifact has " + generated.size() + " Outputs."); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
632 } |
3193
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
633 |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
634 ProtocolUtils.appendOutputModes(doc, outs, generated); |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
635 } |
2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2766
diff
changeset
|
636 |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
637 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
638 /** |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
639 * This method handles request for changing the current state of an |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
640 * artifact. It is possible to step forward or backward. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
641 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
642 * @param target The incoming ADVANCE document. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
643 * @param context The CallContext. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
644 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
645 * @return a document that contains a SUCCESS or FAILURE message. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
646 */ |
3306
1b41dc00b1f7
Create shapefile directory instead of shapefile 'file'
Christian Lins <christian.lins@intevation.de>
parents:
3203
diff
changeset
|
647 @Override |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
648 public Document advance(Document target, CallContext context) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
649 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
650 boolean debug = log.isDebugEnabled(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
651 |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
652 Document doc = XMLUtils.newDocument(); |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
653 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
654 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
655 doc, |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
656 ArtifactNamespaceContext.NAMESPACE_URI, |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
657 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
658 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
659 Element result = ec.create("result"); |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
660 |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
661 String currentStateId = getCurrentStateId(); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
662 String targetState = XMLUtils.xpathString( |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
663 target, XPATH_ADVANCE_TARGET, ArtifactNamespaceContext.INSTANCE); |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
664 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
665 if (debug) { |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
666 log.debug("D4EArtifact.advance() to '" + targetState + "'"); |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
667 } |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
668 |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
669 if (!currentStateId.equals(targetState) |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
670 && isStateReachable(targetState, context)) |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
671 { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
672 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
673 log.debug("Advance: Step forward"); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
674 } |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
675 |
661
fdc898a134a7
Use java.util.List instead of java.util.Vector. Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
658
diff
changeset
|
676 List<String> prev = getPreviousStateIds(); |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
677 prev.add(currentStateId); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
678 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
679 setCurrentStateId(targetState); |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
680 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
681 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
682 log.debug("Compute data for state: " + targetState); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
683 } |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
684 compute(context, ComputeType.ADVANCE, true); |
693
af393c5eb2c8
Write computed facets into artifacts describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
692
diff
changeset
|
685 |
123
ebb1cb69d847
The operations feed() and advance() return the current description of the artifact now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
122
diff
changeset
|
686 return describe(target, context); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
687 } |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
688 else if (isPreviousState(targetState, context)) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
689 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
690 log.debug("Advance: Step back to"); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
691 } |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
692 |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
693 List<String> prevs = getPreviousStateIds(); |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
694 int targetIdx = prevs.indexOf(targetState); |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
695 int start = prevs.size() - 1; |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
696 |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
697 destroyStates(prevs, context); |
1084
583314dafdb6
Call State.endOfLife() in FLYSArtifact when stepping back to a previous state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1067
diff
changeset
|
698 |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
699 for (int i = start; i >= targetIdx; i--) { |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
700 String prev = prevs.get(i); |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
701 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
702 log.debug("Remove state id '" + prev + "'"); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
703 } |
1084
583314dafdb6
Call State.endOfLife() in FLYSArtifact when stepping back to a previous state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1067
diff
changeset
|
704 |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
705 prevs.remove(prev); |
691
2600aa2c7319
Store facets for each state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
690
diff
changeset
|
706 facets.remove(prev); |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
707 } |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
708 |
1094
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
709 destroyState(getCurrentStateId(), context); |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
710 setCurrentStateId(targetState); |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
711 |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
712 return describe(target, context); |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
713 } |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
714 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
715 log.warn("Advance: Cannot advance to '" + targetState + "'"); |
123
ebb1cb69d847
The operations feed() and advance() return the current description of the artifact now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
122
diff
changeset
|
716 ec.addAttr(result, "type", OPERATION_FAILED, true); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
717 |
123
ebb1cb69d847
The operations feed() and advance() return the current description of the artifact now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
122
diff
changeset
|
718 doc.appendChild(result); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
719 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
720 return doc; |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
721 } |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
722 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
723 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
724 /** |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
725 * Returns the identifier of the current state. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
726 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
727 * @return the identifier of the current state. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
728 */ |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
729 public String getCurrentStateId() { |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
730 return currentStateId; |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
731 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
732 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
733 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
734 /** |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
735 * Sets the identifier of the current state. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
736 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
737 * @param id the identifier of a state. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
738 */ |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
739 protected void setCurrentStateId(String id) { |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
740 currentStateId = id; |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
741 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
742 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
743 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
744 /** |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
745 * Set the current state of this artifact. <b>NOTE</b>We don't store the |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
746 * State object itself - which is not necessary - but its identifier. So |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
747 * this method will just call the setCurrentStateId() method with the |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
748 * identifier of <i>state</i>. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
749 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
750 * @param state The new current state. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
751 */ |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
752 protected void setCurrentState(State state) { |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
753 setCurrentStateId(state.getID()); |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
754 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
755 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
756 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
757 /** |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
758 * Returns the current state of the artifact. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
759 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
760 * @return the current State of the artifact. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
761 */ |
1654
33ade8153d74
Little modifications for making recommendations - will now work for states with background calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1628
diff
changeset
|
762 public State getCurrentState(Object context) { |
1067
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
763 return getState(context, getCurrentStateId()); |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
764 } |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
765 |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
766 |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
767 /** |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
768 * Get list of existant states for this Artifact. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
769 * @param context Contex to get StateEngine from. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
770 * @return list of states. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
771 */ |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
772 protected List<State> getStates(Object context) { |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
773 RiverContext flysContext = RiverUtils.getFlysContext(context); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
774 StateEngine engine = (StateEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
775 RiverContext.STATE_ENGINE_KEY); |
1067
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
776 return engine.getStates(getName()); |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
777 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
778 |
1067
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
779 |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
780 /** |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
781 * Get state with given ID. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
782 * @param context Context to get StateEngine from. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
783 * @param stateID ID of state to get. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
784 * @return state with given ID. |
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
785 */ |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
786 protected State getState(Object context, String stateID) { |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
787 RiverContext flysContext = RiverUtils.getFlysContext(context); |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
788 StateEngine engine = (StateEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
789 RiverContext.STATE_ENGINE_KEY); |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
790 return engine.getState(stateID); |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
791 } |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
792 |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
793 |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
794 /** |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
795 * Returns the vector of previous state identifiers. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
796 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
797 * @return the vector of previous state identifiers. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
798 */ |
661
fdc898a134a7
Use java.util.List instead of java.util.Vector. Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
658
diff
changeset
|
799 protected List<String> getPreviousStateIds() { |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
800 return previousStateIds; |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
801 } |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
802 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
803 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
804 /** |
1783
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
805 * Get all previous and the current state id. |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
806 * @return #getPreviousStateIds() + #getCurrentStateId() |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
807 */ |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
808 public List<String> getStateHistoryIds() { |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
809 ArrayList<String> prevIds = (ArrayList) getPreviousStateIds(); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
810 ArrayList<String> allIds = (ArrayList) prevIds.clone(); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
811 |
1783
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
812 allIds.add(getCurrentStateId()); |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
813 return allIds; |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
814 } |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
815 |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
816 |
376c81aa7d55
Added method to FLYSArtifact to access ids of states.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1777
diff
changeset
|
817 /** |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
818 * Adds a new StateData item to the data pool of this artifact. |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
819 * |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
820 * @param name the name of the data object. |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
821 * @param data the data object itself. |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
822 */ |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
823 protected void addData(String name, StateData data) { |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
824 this.data.put(name, data); |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
825 } |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
826 |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
827 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
828 /** Remove and return statedata associated to name. */ |
1656
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
829 protected StateData removeData(String name) { |
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
830 return this.data.remove(name); |
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
831 } |
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
832 |
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
833 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
834 /** |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
835 * This method returns a specific StateData object that is stored in the |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
836 * data pool of this artifact. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
837 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
838 * @param name The name of the data object. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
839 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
840 * @return the StateData object if existing, otherwise null. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
841 */ |
298
fc694a43a7e5
Changed the visibility of getData() method of FLYSArtifacts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
140
diff
changeset
|
842 public StateData getData(String name) { |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
843 return data.get(name); |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
844 } |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
845 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
846 |
3920
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
847 /** |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
848 * A derived Artifact class can use this method to set the data |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
849 */ |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
850 protected void setData(Map<String, StateData> data) { |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
851 this.data = data; |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
852 } |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
853 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
854 |
2169
b817e680cf18
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2141
diff
changeset
|
855 /** Return named data item, null if not found. */ |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
856 public String getDataAsString(String name) { |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
857 StateData data = getData(name); |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
858 return data != null ? (String) data.getValue() : null; |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
859 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
860 |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
861 |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
862 /** |
2013
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
863 * This method returns the value of a StateData object stored in the data |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
864 * pool of this Artifact as Integer. |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
865 * |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
866 * @param name The name of the StateData object. |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
867 * |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
868 * @return an Integer representing the value of the data object or null if |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
869 * no object was found for <i>name</i>. |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
870 * |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
871 * @throws NumberFormatException if the value of the data object could not |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
872 * be transformed into an Integer. |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
873 */ |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
874 public Integer getDataAsInteger(String name) |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
875 throws NumberFormatException |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
876 { |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
877 String value = getDataAsString(name); |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
878 |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
879 if (value != null && value.length() > 0) { |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
880 return Integer.parseInt(value); |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
881 } |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
882 |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
883 return null; |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
884 } |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
885 |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
886 |
9d5f339d83a3
#380 Validate the user selected DEM in the server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1895
diff
changeset
|
887 /** |
2038
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
888 * This method returns the value of a StateData object stored in the data |
2701
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
889 * pool of this Artifact as Double. |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
890 * |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
891 * @param name The name of the StateData object. |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
892 * |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
893 * @return an Double representing the value of the data object or null if |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
894 * no object was found for <i>name</i>. |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
895 * |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
896 * @throws NumberFormatException if the value of the data object could not |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
897 * be transformed into a Double. |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
898 */ |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
899 public Double getDataAsDouble(String name) |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
900 throws NumberFormatException |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
901 { |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
902 String value = getDataAsString(name); |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
903 |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
904 if (value != null && value.length() > 0) { |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
905 return Double.parseDouble(value); |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
906 } |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
907 |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
908 return null; |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
909 } |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
910 |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
911 |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
912 /** |
c553d4fa3957
Moved the implementation of getDataAsDouble() from concrete Artifacts into FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2606
diff
changeset
|
913 * This method returns the value of a StateData object stored in the data |
2128
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
914 * pool of this Artifact as Long. |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
915 * |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
916 * @param name The name of the StateData object. |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
917 * |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
918 * @return a Long representing the value of the data object or null if |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
919 * no object was found for <i>name</i>. |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
920 * |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
921 * @throws NumberFormatException if the value of the data object could not |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
922 * be transformed into a Long. |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
923 */ |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
924 public Long getDataAsLong(String name) |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
925 throws NumberFormatException |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
926 { |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
927 String value = getDataAsString(name); |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
928 |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
929 if (value != null && value.length() > 0) { |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
930 return Long.parseLong(value); |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
931 } |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
932 |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
933 return null; |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
934 } |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
935 |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
936 |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
937 /** |
bf67eb014443
Added convinience functions to FLYSArtifact and FLYSUtils.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2111
diff
changeset
|
938 * This method returns the value of a StateData object stored in the data |
2038
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
939 * pool of this Artifact is Boolean using Boolean.valueOf(). |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
940 * |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
941 * @param name The name of the StateData object. |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
942 * |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
943 * @return a Boolean representing the value of the data object or null if no |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
944 * such object is existing. |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
945 */ |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
946 public Boolean getDataAsBoolean(String name) { |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
947 String value = getDataAsString(name); |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
948 |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
949 if (value == null || value.length() == 0) { |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
950 return null; |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
951 } |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
952 |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
953 return Boolean.valueOf(value); |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
954 } |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
955 |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
956 |
f73036b991e2
Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2013
diff
changeset
|
957 /** |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
958 * Add StateData containing a given string. |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
959 * @param name Name of the data object. |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
960 * @param value String to store. |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
961 */ |
1724
0349dd524f9c
Add convenience method to add default data as string.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1709
diff
changeset
|
962 public void addStringData(String name, String value) { |
0349dd524f9c
Add convenience method to add default data as string.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1709
diff
changeset
|
963 addData(name, new DefaultStateData(name, null, null, value)); |
0349dd524f9c
Add convenience method to add default data as string.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1709
diff
changeset
|
964 } |
0349dd524f9c
Add convenience method to add default data as string.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1709
diff
changeset
|
965 |
3920
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
966 /** |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
967 * This method returns all stored StateData in this artifact as a Collection |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
968 * @return a Collection of all StateData objects in this artifact |
8483d190b2e7
Convert FKYSArtifact data member to a private variable
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3883
diff
changeset
|
969 */ |
960
92027887775a
DataCage: Added a recommend() method to generate recommendations for
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
958
diff
changeset
|
970 public Collection<StateData> getAllData() { |
92027887775a
DataCage: Added a recommend() method to generate recommendations for
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
958
diff
changeset
|
971 return data.values(); |
92027887775a
DataCage: Added a recommend() method to generate recommendations for
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
958
diff
changeset
|
972 } |
92027887775a
DataCage: Added a recommend() method to generate recommendations for
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
958
diff
changeset
|
973 |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
974 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
975 /** Return all produced facets. */ |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
976 public List<Facet> getFacets() { |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
977 List<Facet> all = new ArrayList<Facet>(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
978 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
979 // Iterate over facets of each state. |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
980 for (List<Facet> fs: facets.values()) { |
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
981 all.addAll(fs); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
982 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
983 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
984 return all; |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
985 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
986 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
987 |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
988 /** |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
989 * Get facet as stored internally, with equalling name and index than given |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
990 * facet. |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
991 * @param facet that defines index and name of facet searched. |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
992 * @return facet instance or null if not found. |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
993 */ |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
994 public Facet getNativeFacet(Facet facet, String outName) { |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
995 String name = facet.getName(); |
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
996 int index = facet.getIndex(); |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
997 if (getBoundToOut() != null && !getBoundToOut().isEmpty() && |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
998 !getBoundToOut().equals(outName)) { |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
999 log.debug(name + ": not returning facets for " + outName + |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1000 " because bound to " + getBoundToOut()); |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1001 return null; |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1002 } |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1003 log.debug("Facet: " + facet.getName()); |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1004 log.debug("Bound to out: " + getBoundToOut()); |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1005 log.debug("OutName: " + outName); |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1006 |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
1007 for (List<Facet> fs: facets.values()) { |
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
1008 for (Facet f: fs) { |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
1009 if (f.getIndex() == index && f.getName().equals(name)) { |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
1010 return f; |
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
1011 } |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1012 } |
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1013 } |
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1014 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1015 log.warn("Could not find facet: " + name + " at " + index); |
4495
c095eb67c975
Improve loggin in FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4433
diff
changeset
|
1016 log.warn("Available facets for : " + getName() + " " + identifier() + |
c095eb67c975
Improve loggin in FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4433
diff
changeset
|
1017 ": " + facets.values()); |
696
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1018 return null; |
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1019 } |
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1020 |
708b270dfd30
OutGenerators use now facets to fetch necessary data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
693
diff
changeset
|
1021 |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1022 /** |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1023 * This method stores the data that is contained in the FEED document. |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1024 * |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1025 * @param feed The FEED document. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1026 * @param xpath The XPath that points to the data nodes. |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1027 */ |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
1028 public void saveData(Document feed, CallContext context) |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1029 throws IllegalArgumentException |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1030 { |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
1031 if (feed == null) { |
325
7a0907742cc0
Changed the error key that is written to the result document of the feed operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
322
diff
changeset
|
1032 throw new IllegalArgumentException("error_feed_no_data"); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1033 } |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1034 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1035 NodeList nodes = (NodeList) XMLUtils.xpath( |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1036 feed, |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
1037 XPATH_FEED_INPUT, |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1038 XPathConstants.NODESET, |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1039 ArtifactNamespaceContext.INSTANCE); |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1040 |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1041 if (nodes == null || nodes.getLength() == 0) { |
325
7a0907742cc0
Changed the error key that is written to the result document of the feed operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
322
diff
changeset
|
1042 throw new IllegalArgumentException("error_feed_no_data"); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1043 } |
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1044 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1045 boolean debug = log.isDebugEnabled(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1046 |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1047 int count = nodes.getLength(); |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1048 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1049 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1050 log.debug("Try to save " + count + " data items."); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1051 } |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1052 |
708
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1053 String uri = ArtifactNamespaceContext.NAMESPACE_URI; |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1054 |
1176
28154920e0b3
Introduced the possibility for States to transform/modify input before the data is added to FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1137
diff
changeset
|
1055 DefaultState current = (DefaultState) getCurrentState(context); |
28154920e0b3
Introduced the possibility for States to transform/modify input before the data is added to FLYSArtifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1137
diff
changeset
|
1056 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
1057 RiverContext flysContext = RiverUtils.getFlysContext(context); |
2205
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1058 StateEngine engine = (StateEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
1059 RiverContext.STATE_ENGINE_KEY); |
2205
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1060 |
708
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1061 for (int i = 0; i < count; i++) { |
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1062 Element node = (Element)nodes.item(i); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1063 |
708
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1064 String name = node.getAttributeNS(uri, "name"); |
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1065 String value = node.getAttributeNS(uri, "value"); |
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1066 |
757ff56b43b3
Added calculation "am Pegel" version to the "Wasserspiegellage" calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
707
diff
changeset
|
1067 if (name.length() > 0 && value.length() > 0) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1068 if (debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1069 log.debug("Save data item for '" + name + "' : " + value); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1070 } |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1071 |
2205
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1072 StateData model = engine.getStateData(getName(), name); |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1073 |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1074 StateData sd = model != null |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1075 ? model.deepCopy() |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1076 : new DefaultStateData(name, null, null, value); |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1077 |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1078 addData( |
a22e0cb6eace
Format the timerange (static ui) inserted in the 'historical discharge curves' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2169
diff
changeset
|
1079 name, current.transform(this, context, sd, name, value)); |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1080 } |
1656
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
1081 else if (name.length() > 0 && value.length() == 0) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1082 if (removeData(name) != null && debug) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1083 log.debug("Removed data '" + name + "' successfully."); |
1656
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
1084 } |
94732906b094
Made feed() operation able to remove existing data items from Artifact's data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1654
diff
changeset
|
1085 } |
121
e0ded17a4846
Implemented the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
119
diff
changeset
|
1086 } |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
321
diff
changeset
|
1087 |
8636
7d1a32a543cb
(issue1755) Extend validation to allow localized error messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8488
diff
changeset
|
1088 current.validate(this, context); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1089 } |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1090 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1091 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1092 /** |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1093 * Determines if the state with the identifier <i>stateId</i> is reachable |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1094 * from the current state. The determination itself takes place in the |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1095 * TransitionEngine. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1096 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1097 * @param stateId The identifier of a state. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1098 * @param context The context object. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1099 * |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1100 * @return true, if the state specified by <i>stateId</i> is reacahble, |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1101 * otherwise false. |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1102 */ |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1103 protected boolean isStateReachable(String stateId, Object context) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1104 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1105 if (log.isDebugEnabled()) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1106 log.debug("Determine if the state '" + stateId + "' is reachable."); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1107 } |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1108 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
1109 RiverContext flysContext = RiverUtils.getFlysContext(context); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1110 |
624
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
623
diff
changeset
|
1111 State currentState = getCurrentState(context); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1112 StateEngine sEngine = (StateEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
1113 RiverContext.STATE_ENGINE_KEY); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1114 |
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1115 TransitionEngine tEngine = (TransitionEngine) flysContext.get( |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
1116 RiverContext.TRANSITION_ENGINE_KEY); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1117 |
355
d97982627596
Bugfixes: Adapted a broken method call of TransitionEngine.isStateReachable() and added the outputs of a current state to the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
325
diff
changeset
|
1118 return tEngine.isStateReachable(this, stateId, currentState, sEngine); |
122
d3b8b0b1d010
Implemented the step-forward part of the advance operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
121
diff
changeset
|
1119 } |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1120 |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1121 |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1122 /** |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1123 * Determines if the state with the identifier <i>stateId</i> is a previous |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1124 * state of the current state. |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1125 * |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1126 * @param stateId The target state identifier. |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1127 * @param context The context object. |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1128 */ |
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1129 protected boolean isPreviousState(String stateId, Object context) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1130 if (log.isDebugEnabled()) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1131 log.debug("Determine if the state '" + stateId + "' is old."); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1132 } |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1133 |
3553
5da58c5c1517
FLYSArtifact: Some code simplifications.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3436
diff
changeset
|
1134 return getPreviousStateIds().contains(stateId); |
140
43f03f6047b9
Implemented the step-back part of the advance() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
123
diff
changeset
|
1135 } |
317
8f40a57229c3
FLYSArtifact provides methods to retrieve the real River, Gauge objects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
298
diff
changeset
|
1136 |
8f40a57229c3
FLYSArtifact provides methods to retrieve the real River, Gauge objects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
298
diff
changeset
|
1137 |
8f40a57229c3
FLYSArtifact provides methods to retrieve the real River, Gauge objects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
298
diff
changeset
|
1138 /** |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1139 * Computes the hash code of the entered values. |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1140 * |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1141 * @return a hash code. |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1142 */ |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1143 @Override |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1144 public String hash() { |
8659
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1145 try { |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1146 ByteArrayOutputStream ba = new ByteArrayOutputStream(); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1147 ObjectOutputStream oa = new ObjectOutputStream(ba); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1148 for (Map.Entry<String, StateData> entry: data.entrySet()) { |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1149 oa.writeObject(entry.getKey()); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1150 oa.writeObject(entry.getValue().getValue()); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1151 } |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1152 MessageDigest md = MessageDigest.getInstance("MD5"); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1153 byte[] md5sum = md.digest(ba.toByteArray()); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1154 return DatatypeConverter.printBase64Binary(md5sum); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1155 } catch (NoSuchAlgorithmException e) { |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1156 throw new RuntimeException("MD5 unavailable. Can't happen."); |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1157 } catch (IOException e) { |
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1158 throw new RuntimeException("Cant write parameter. Can't happen."); |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1159 } |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1160 } |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1161 |
1628
16c74ca3586e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1187
diff
changeset
|
1162 |
16c74ca3586e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1187
diff
changeset
|
1163 /** |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1164 * Return List of outputs, where combinations of outputname and filtername |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1165 * that match content in filterFacets is left out. |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1166 * @return filtered Outputlist. |
1628
16c74ca3586e
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1187
diff
changeset
|
1167 */ |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1168 protected List<Output> filterOutputs(List<Output> outs) { |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1169 if (filterFacets == null || filterFacets.isEmpty()) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1170 log.debug("No filter for Outputs."); |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1171 return outs; |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1172 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1173 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1174 boolean debug = log.isDebugEnabled(); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1175 |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1176 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1177 log.debug( |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1178 "Filter Facets with " + filterFacets.size() + " filters."); |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1179 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1180 |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1181 List<Output> filtered = new ArrayList<Output>(); |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1182 |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1183 for (Output out: outs) { |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1184 String outName = out.getName(); |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1185 |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1186 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1187 log.debug(" filter Facets for Output: " + outName); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1188 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1189 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1190 List<Facet> fFacets = filterFacets.get(outName); |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1191 if (fFacets != null) { |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1192 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1193 log.debug("" + fFacets.size() + " filters for: " + outName); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1194 for (Facet tmp: fFacets) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1195 log.debug(" filter = '" + tmp.getName() + "'"); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1196 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1197 } |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1198 |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1199 List<Facet> resultFacets = new ArrayList<Facet>(); |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1200 |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1201 for (Facet facet: out.getFacets()) { |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1202 for (Facet fFacet: fFacets) { |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1203 if (facet.getIndex() == fFacet.getIndex() |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1204 && facet.getName().equals(fFacet.getName())) { |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1205 resultFacets.add(facet); |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1206 break; |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1207 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1208 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1209 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1210 |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1211 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1212 log.debug( |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1213 "Facets after filtering = " + resultFacets.size()); |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1214 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1215 |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1216 if (!resultFacets.isEmpty()) { |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1217 DefaultOutput nout = new DefaultOutput( |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1218 out.getName(), |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1219 out.getDescription(), |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1220 out.getMimeType(), |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1221 resultFacets); |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1222 filtered.add(nout); |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1223 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1224 } |
4403
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
1225 else if (debug) { |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
1226 log.debug("No filter Factes for Output: " + outName); |
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
1227 } |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1228 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1229 |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1230 if (debug) { |
4403
d4f88fda6ed3
Improve debugging inf FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4206
diff
changeset
|
1231 log.debug("Number of outs after filtering = " + filtered.size()); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1232 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1233 |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1234 return filtered; |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1235 } |
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1236 |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1237 |
1765
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1238 /** |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1239 * Get all outputs that the Artifact can do in this state (which includes |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1240 * all previous states). |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1241 * |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1242 * @return list of outputs |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1243 */ |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
981
diff
changeset
|
1244 public List<Output> getOutputs(Object context) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1245 if (log.isDebugEnabled()) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1246 dumpArtifact(); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1247 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1248 |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1249 List<String> stateIds = getPreviousStateIds(); |
944
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1250 List<Output> generated = new ArrayList<Output>(); |
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1251 |
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1252 for (String stateId: stateIds) { |
1067
f364410c7bc9
Refactored (state access) to ease future development of more trivial artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1059
diff
changeset
|
1253 DefaultState state = (DefaultState) getState(context, stateId); |
981
799c7108ea6d
datacage: prepared access to outs of artifacts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
965
diff
changeset
|
1254 generated.addAll(getOutputForState(state)); |
944
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1255 } |
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1256 |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1257 generated.addAll(getCurrentOutputs(context)); |
944
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1258 |
1056
bd1b751deab3
Added optional positive filter for outs and facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1055
diff
changeset
|
1259 return filterOutputs(generated); |
944
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1260 } |
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1261 |
c256061287d7
Simplified the code to read all provided Outputs of an Artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
942
diff
changeset
|
1262 |
1765
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1263 /** |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1264 * Get output(s) for current state. |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1265 * @return list of outputs for current state. |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1266 */ |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
981
diff
changeset
|
1267 public List<Output> getCurrentOutputs(Object context) { |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1268 DefaultState cur = (DefaultState) getCurrentState(context); |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1269 |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1270 try { |
8636
7d1a32a543cb
(issue1755) Extend validation to allow localized error messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8488
diff
changeset
|
1271 if (context instanceof CallContext) { |
7d1a32a543cb
(issue1755) Extend validation to allow localized error messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8488
diff
changeset
|
1272 /* should be always true */ |
7d1a32a543cb
(issue1755) Extend validation to allow localized error messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8488
diff
changeset
|
1273 CallContext cc = (CallContext) context; |
7d1a32a543cb
(issue1755) Extend validation to allow localized error messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8488
diff
changeset
|
1274 cur.validate(this, cc); |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1275 } |
8636
7d1a32a543cb
(issue1755) Extend validation to allow localized error messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8488
diff
changeset
|
1276 return getOutputForState(cur); |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1277 } |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1278 catch (IllegalArgumentException iae) { } |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1279 |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1280 return new ArrayList<Output>(); |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1281 } |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1282 |
1137
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1283 |
1765
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1284 /** |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1285 * Get output(s) for a specific state. |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1286 * @param state State of interest |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1287 * @return list of output(s) for given state. |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1288 */ |
981
799c7108ea6d
datacage: prepared access to outs of artifacts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
965
diff
changeset
|
1289 protected List<Output> getOutputForState(DefaultState state) { |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1290 |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1291 if (state == null) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1292 log.error("state == null: This should not happen!"); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1293 return new ArrayList<Output>(); |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1294 } |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1295 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1296 boolean debug = log.isDebugEnabled(); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1297 |
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1298 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1299 log.debug("Find Outputs for State: " + state.getID()); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1300 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1301 |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1302 List<Output> list = state.getOutputs(); |
3555
b1912514e0f5
s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3554
diff
changeset
|
1303 if (list == null || list.isEmpty()) { |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1304 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1305 log.debug("-> No output modes for this state."); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1306 } |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1307 return new ArrayList<Output>(); |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1308 } |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1309 |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1310 String stateId = state.getID(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1311 |
4497
a2735a4bf75e
Change facets member variable to private
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4496
diff
changeset
|
1312 List<Facet> fs = getFacets(stateId); |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
1313 |
3555
b1912514e0f5
s/container.size() == 0/container.isEmpty()/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3554
diff
changeset
|
1314 if (fs == null || fs.isEmpty()) { |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1315 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1316 log.debug("No facets found."); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1317 } |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1318 return new ArrayList<Output>(); |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1319 } |
4495
c095eb67c975
Improve loggin in FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4433
diff
changeset
|
1320 if (debug) { |
8488
a63825ab9df9
Do not flood log with details about all facets.
Tom Gottfried <tom@intevation.de>
parents:
8364
diff
changeset
|
1321 log.debug("State '" + stateId + "' has " + fs.size() + " facets"); |
4495
c095eb67c975
Improve loggin in FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4433
diff
changeset
|
1322 } |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1323 |
7593
60a5fc522ec4
Rename the Global Facet filter to reduce ambiguity with the old facet filter
Andre Heinecke <aheinecke@intevation.de>
parents:
7245
diff
changeset
|
1324 List<Output> gen = generateOutputs(list, applyGlobalFilterFacets(fs)); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1325 |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1326 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1327 log.debug("State '" + stateId + "' has " + gen.size() + " outs"); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1328 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1329 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1330 return gen; |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1331 } |
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1332 |
7244
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1333 /** If we use a facet filter that bases the list of compatible facets |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1334 * on the output this artifact is bound to then return true. */ |
7593
60a5fc522ec4
Rename the Global Facet filter to reduce ambiguity with the old facet filter
Andre Heinecke <aheinecke@intevation.de>
parents:
7245
diff
changeset
|
1335 public boolean usesOutputGlobalFacetFilter() { |
7244
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1336 if (boundToOut == null || boundToOut.isEmpty()) { |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1337 return false; |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1338 } |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1339 |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1340 FacetFilter facetFilter = |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1341 (FacetFilter)RiverContextFactory.getGlobalContext() |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1342 .get(RiverContext.FACETFILTER_KEY); |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1343 |
7245
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1344 return facetFilter != null; |
7244
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1345 } |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1346 |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1347 /** |
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1348 * If a global facet filter and a bounded out are defined |
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1349 * use them to eliminate unwished facets. |
7227
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1350 */ |
7593
60a5fc522ec4
Rename the Global Facet filter to reduce ambiguity with the old facet filter
Andre Heinecke <aheinecke@intevation.de>
parents:
7245
diff
changeset
|
1351 protected List<Facet> applyGlobalFilterFacets(List<Facet> facets) { |
60a5fc522ec4
Rename the Global Facet filter to reduce ambiguity with the old facet filter
Andre Heinecke <aheinecke@intevation.de>
parents:
7245
diff
changeset
|
1352 if (!usesOutputGlobalFacetFilter()) { |
7227
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1353 return facets; |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1354 } |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1355 |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1356 FacetFilter facetFilter = |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1357 (FacetFilter)RiverContextFactory.getGlobalContext() |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1358 .get(RiverContext.FACETFILTER_KEY); |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1359 |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1360 List<Facet> result = new ArrayList<Facet>(facets.size()); |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1361 for (Facet facet: facets) { |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1362 if (facetFilter.accept(boundToOut, facet.getName())) { |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1363 result.add(facet); |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1364 } |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1365 } |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1366 return result; |
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7178
diff
changeset
|
1367 } |
965
79251b1d47da
Modified the CollectionMonitor to recommend artifacts for the current state's outputs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
960
diff
changeset
|
1368 |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1369 /** |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1370 * Generate a list of outputs with facets from fs if type is found in list |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1371 * of output. |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1372 * |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1373 * @param list List of outputs |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1374 * @param fs List of facets |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1375 */ |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1376 protected List<Output> generateOutputs(List<Output> list, List<Facet> fs) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1377 boolean debug = log.isDebugEnabled(); |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1378 |
7245
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1379 List<Output> generated = new ArrayList<Output>(); |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1380 |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1381 if (debug) { |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1382 log.debug("generateOutputs for Artifact " + getName() + " " |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1383 + identifier()); |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1384 } |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1385 |
7593
60a5fc522ec4
Rename the Global Facet filter to reduce ambiguity with the old facet filter
Andre Heinecke <aheinecke@intevation.de>
parents:
7245
diff
changeset
|
1386 boolean useFacetFilter = usesOutputGlobalFacetFilter(); |
7245
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1387 |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1388 for (Output out: list) { |
7245
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1389 if (debug) { |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1390 log.debug("check facets for output: " + out.getName()); |
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1391 } |
7178
12248d9eb326
Only filter the facets for unbound outs
Andre Heinecke <aheinecke@intevation.de>
parents:
6856
diff
changeset
|
1392 String outName = out.getName(); |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1393 Output o = new DefaultOutput( |
7178
12248d9eb326
Only filter the facets for unbound outs
Andre Heinecke <aheinecke@intevation.de>
parents:
6856
diff
changeset
|
1394 outName, |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1395 out.getDescription(), |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1396 out.getMimeType(), |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1397 out.getType()); |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1398 |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1399 Set<String> outTypes = new HashSet<String>(); |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1400 |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1401 for (Facet f: out.getFacets()) { |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1402 if (outTypes.add(f.getName()) && debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1403 log.debug("configured facet " + f); |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1404 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1405 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1406 |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1407 boolean facetAdded = false; |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1408 for (Facet f: fs) { |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1409 String type = f.getName(); |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1410 |
7178
12248d9eb326
Only filter the facets for unbound outs
Andre Heinecke <aheinecke@intevation.de>
parents:
6856
diff
changeset
|
1411 /* Match the facets to the output configuration. |
7244
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1412 * This is only done when we are not using the Output |
737dd43e32d6
Remove boundToOut facet pass. This is now only done if we filtered before.
Andre Heinecke <aheinecke@intevation.de>
parents:
7227
diff
changeset
|
1413 * we are bound to to determine the compatible facets. */ |
7245
965dbf2d4c44
Code simplification + moved code out of inner loop.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7244
diff
changeset
|
1414 if (useFacetFilter || outTypes.contains(type)) { |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1415 if (debug) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1416 log.debug("Add facet " + f); |
937
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1417 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1418 facetAdded = true; |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1419 o.addFacet(f); |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1420 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1421 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1422 |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1423 if (facetAdded) { |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1424 generated.add(o); |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1425 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1426 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1427 |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1428 return generated; |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1429 } |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1430 |
9e813e9137a5
Added a monitor that creates new artifacts for default themes in charts and maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
742
diff
changeset
|
1431 |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1432 /** |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1433 * Dispatches the computation request to compute(CallContext context, String |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1434 * hash) with the current hash value of the artifact which is provided by |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1435 * hash(). |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1436 * |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1437 * @param context The CallContext. |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1438 */ |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1439 public Object compute( |
742
c09c9e05ecfa
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
741
diff
changeset
|
1440 CallContext context, |
c09c9e05ecfa
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
741
diff
changeset
|
1441 ComputeType type, |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1442 boolean generateFacets |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1443 ) { |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1444 return compute(context, hash(), type, generateFacets); |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1445 } |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1446 |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1447 |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1448 /** |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1449 * Dispatches computation requests to the current state which needs to |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
1450 * implement a createComputeCallback(String hash, D4EArtifact artifact) |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1451 * method. |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1452 * |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1453 * @param context The CallContext. |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1454 * @param hash The hash value which is used to fetch computed data from |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1455 * cache. |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1456 * |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1457 * @return the computed data. |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1458 */ |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1459 public Object compute( |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1460 CallContext context, |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1461 String hash, |
742
c09c9e05ecfa
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
741
diff
changeset
|
1462 ComputeType type, |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1463 boolean generateFacets |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1464 ) { |
693
af393c5eb2c8
Write computed facets into artifacts describe document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
692
diff
changeset
|
1465 DefaultState current = (DefaultState) getCurrentState(context); |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1466 return compute(context, hash, current, type, generateFacets); |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1467 } |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1468 |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
1469 |
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
1470 /** |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1471 * Like compute, but identify State by its id (string). |
1704
e8627d1e2db6
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1656
diff
changeset
|
1472 */ |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1473 public Object compute( |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1474 CallContext context, |
1117
ea80e652f033
Reordered some parameters in a FLYSArtifact method.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1094
diff
changeset
|
1475 String hash, |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1476 String stateID, |
742
c09c9e05ecfa
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
741
diff
changeset
|
1477 ComputeType type, |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1478 boolean generateFacets |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1479 ) { |
2141
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2128
diff
changeset
|
1480 DefaultState current = |
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2128
diff
changeset
|
1481 (stateID == null) |
722
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1482 ? (DefaultState)getCurrentState(context) |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1483 : (DefaultState)getState(context, stateID); |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1484 |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1485 if (hash == null) { |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1486 hash = hash(); |
4800230fba8a
Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
708
diff
changeset
|
1487 } |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1488 |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1489 return compute(context, hash, current, type, generateFacets); |
689
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1490 } |
f8ac04b2dbd0
Added two more compute() methods to ComputeCallback to distinguish between different phases of the artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
687
diff
changeset
|
1491 |
1137
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1492 |
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1493 /** |
1765
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1494 * Let current state compute and register facets. |
5d8b3880a553
Do not store association of states to facets, let artifacts keep facets in a pure list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1763
diff
changeset
|
1495 * |
1137
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1496 * @param key key of state |
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1497 * @param state state |
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1498 * @param type Type of compute |
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1499 * @param generateFacets Whether new facets shall be generated. |
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1500 */ |
690
3481cd37e609
Use enums to dispatch computeFeed() and computeAdvance().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
689
diff
changeset
|
1501 public Object compute( |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1502 CallContext context, |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1503 String key, |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1504 DefaultState state, |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1505 ComputeType type, |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1506 boolean generateFacets |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1507 ) { |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1508 String stateID = state.getID(); |
691
2600aa2c7319
Store facets for each state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
690
diff
changeset
|
1509 |
1137
073c36bb94ed
Minor cosmetics
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1117
diff
changeset
|
1510 List<Facet> fs = (generateFacets) ? new ArrayList<Facet>() : null; |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1511 |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1512 try { |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1513 Cache cache = CacheFactory.getCache(COMPUTING_CACHE); |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1514 |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1515 Object old = null; |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1516 |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1517 if (cache != null) { |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1518 net.sf.ehcache.Element element = cache.get(key); |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1519 if (element != null) { |
8659
af415396d9ca
(issue1803) Use MD5 instead of a homegrown hashing algorithm
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8636
diff
changeset
|
1520 log.debug("Got computation result from cache for key: " + key); |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1521 old = element.getValue(); |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1522 } |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1523 } |
3203
1b9f791937c3
Moved FixationArtifactAccess to new access package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3193
diff
changeset
|
1524 else { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1525 log.debug("cache not configured."); |
3203
1b9f791937c3
Moved FixationArtifactAccess to new access package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3193
diff
changeset
|
1526 } |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1527 |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1528 Object res; |
690
3481cd37e609
Use enums to dispatch computeFeed() and computeAdvance().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
689
diff
changeset
|
1529 switch (type) { |
3481cd37e609
Use enums to dispatch computeFeed() and computeAdvance().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
689
diff
changeset
|
1530 case FEED: |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1531 res = state.computeFeed(this, key, context, fs, old); |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1532 break; |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1533 case ADVANCE: |
700
94f0f91be11c
call computeAdvance() if we want to advance.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
699
diff
changeset
|
1534 res = state.computeAdvance(this, key, context, fs, old); |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1535 break; |
942
796c54058dc4
Added artifacts/states for WMS background an river axis and a configuration for the output-defaults.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
941
diff
changeset
|
1536 case INIT: |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
952
diff
changeset
|
1537 res = state.computeInit(this, key, context, context.getMeta(), fs); |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1538 default: |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1539 res = null; |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1540 } |
690
3481cd37e609
Use enums to dispatch computeFeed() and computeAdvance().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
689
diff
changeset
|
1541 |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1542 if (cache != null && old != res && res != null) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1543 log.debug("Store computation result to cache."); |
697
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1544 net.sf.ehcache.Element element = |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1545 new net.sf.ehcache.Element(key, res); |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1546 cache.put(element); |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1547 } |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1548 |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1549 return res; |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1550 } |
b972eba2ed8a
Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
696
diff
changeset
|
1551 finally { |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1552 if (generateFacets) { |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1553 if (fs.isEmpty()) { |
1771
c62ff9e72cea
Restore mapping of state id to facets (revert, rev 3083 and 3088).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1765
diff
changeset
|
1554 facets.remove(stateID); |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1555 } |
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1556 else { |
3934
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1557 addFacets(stateID, fs); |
705
853dceead0f4
Only generate facets when needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
704
diff
changeset
|
1558 } |
690
3481cd37e609
Use enums to dispatch computeFeed() and computeAdvance().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
689
diff
changeset
|
1559 } |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1560 } |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1561 } |
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1562 |
3934
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1563 /** |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1564 * Sets the facets for an ID, which is normally a state ID. |
3934
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1565 * |
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1566 * @param id ID to map the facets to |
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1567 * @param facets List of facets to be stored |
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1568 */ |
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1569 protected void addFacets(String id, List<Facet> facets) { |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1570 for (Facet fac : facets) { |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1571 fac.setBoundToOut(getBoundToOut()); |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1572 } |
3934
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1573 this.facets.put(id, facets); |
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1574 } |
33fcc786f246
Add FLYSArtifact addFacets method
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3920
diff
changeset
|
1575 |
686
3dc61e00385e
Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
661
diff
changeset
|
1576 |
623
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1577 /** |
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1578 * Method to dump the artifacts state/data. |
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1579 */ |
6856
fbbba09ac6a8
Make debug functions of D4EArtifact public
Andre Heinecke <aheinecke@intevation.de>
parents:
6144
diff
changeset
|
1580 public void dumpArtifact() { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1581 log.debug("++++++++++++++ DUMP ARTIFACT DATA +++++++++++++++++"); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1582 // Include uuid, type, name |
4495
c095eb67c975
Improve loggin in FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4433
diff
changeset
|
1583 log.debug(" - Name: " + getName()); |
c095eb67c975
Improve loggin in FLYSArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4433
diff
changeset
|
1584 log.debug(" - UUID: " + identifier()); |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1585 log.debug(" - Class: " + getClass().getName()); |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1586 log.debug(" - BoundToOut: " + getBoundToOut()); |
623
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1587 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1588 log.debug("------ DUMP DATA ------"); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1589 Collection<StateData> allData = data.values(); |
623
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1590 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1591 for (StateData d: allData) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1592 String name = d.getName(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1593 String value = (String) d.getValue(); |
623
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1594 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1595 log.debug("- " + name + ": " + value); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1596 } |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1597 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1598 log.debug("------ DUMP PREVIOUS STATES ------"); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1599 List<String> stateIds = getPreviousStateIds(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1600 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1601 for (String id: stateIds) { |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1602 log.debug("- State: " + id); |
623
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1603 } |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1604 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1605 log.debug("CURRENT STATE: " + getCurrentStateId()); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1606 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1607 debugFacets(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1608 dumpFilterFacets(); |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1609 |
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1610 log.debug("++++++++++++++ END ARTIFACT DUMP +++++++++++++++++"); |
623
aa64fe4df8ab
Added a method to dump the artifacts state/data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
459
diff
changeset
|
1611 } |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1612 |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1613 |
6856
fbbba09ac6a8
Make debug functions of D4EArtifact public
Andre Heinecke <aheinecke@intevation.de>
parents:
6144
diff
changeset
|
1614 public void debugFacets() { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1615 log.debug("######### FACETS #########"); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1616 |
4050
975f608dd254
Cleaned up iterating over maps. Removed some dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3934
diff
changeset
|
1617 for (Map.Entry<String, List<Facet>> entry: facets.entrySet()) { |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1618 String out = entry.getKey(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1619 List<Facet> fs = entry.getValue(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1620 for (Facet f: fs) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1621 log.debug(" # " + out + " : " + f.getName()); |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1622 log.debug(" # boundToOut : " + f.getBoundToOut()); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1623 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1624 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1625 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1626 log.debug("######## FACETS END ########"); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1627 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1628 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1629 |
6856
fbbba09ac6a8
Make debug functions of D4EArtifact public
Andre Heinecke <aheinecke@intevation.de>
parents:
6144
diff
changeset
|
1630 public void dumpFilterFacets() { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1631 log.debug("######## FILTER FACETS ########"); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1632 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1633 if (filterFacets == null || filterFacets.isEmpty()) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1634 log.debug("No Filter Facets defined."); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1635 return; |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1636 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1637 |
4050
975f608dd254
Cleaned up iterating over maps. Removed some dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3934
diff
changeset
|
1638 for (Map.Entry<String, List<Facet>> entry: filterFacets.entrySet()) { |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1639 String out = entry.getKey(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1640 List<Facet> filters = entry.getValue(); |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1641 |
7746
56001dce01dd
Upcoming issue1532: Extracted method where 'cloning/initialize' takes place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7676
diff
changeset
|
1642 log.debug("There are " + filters.size() + " filters for: " + out); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1643 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1644 for (Facet filter: filters) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1645 log.debug(" filter: " + filter.getName()); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1646 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1647 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1648 |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1649 log.debug("######## FILTER FACETS END ########"); |
2095
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1650 } |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1651 |
8cb679d4ec49
Implemented initialize() in FloodMapState to enable cloning floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2093
diff
changeset
|
1652 |
4206
6b0683f5c530
Documentation added, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4147
diff
changeset
|
1653 /** Destroy and clean up state with given id. */ |
1094
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1654 protected void destroyState(String id, Object context) { |
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1655 State s = getState(context, id); |
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1656 s.endOfLife(this, context); |
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1657 } |
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1658 |
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1659 |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1660 /** |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1661 * Calls endOfLife() for each state in the list <i>ids</i>. |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1662 * |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1663 * @param ids The State IDs that should be destroyed. |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
1664 * @param context The RiverContext. |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1665 */ |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1666 protected void destroyStates(List<String> ids, Object context) { |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1667 for (int i = 0, num = ids.size(); i < num; i++) { |
1094
b1c6d945848d
Added a new method to FLYSArtifact to destroy a single state (call its endOfLife).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1086
diff
changeset
|
1668 destroyState(ids.get(i), context); |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1669 } |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1670 } |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1671 |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1672 |
1763
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1673 /** |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1674 * Destroy the states. |
0e748e8972b5
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1724
diff
changeset
|
1675 */ |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1676 @Override |
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1677 public void endOfLife(Object context) { |
3554
9b356ed24411
FLYSArtifact: Lowered logging output level from info to debug. Made some more debug outputs conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3553
diff
changeset
|
1678 if (log.isDebugEnabled()) { |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
1679 log.debug("D4EArtifact.endOfLife: " + identifier()); |
3436
0d63581c5df1
FLYSArtifact: Prevent NPE in getOutputForState(). Why does this happen?
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3306
diff
changeset
|
1680 } |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1681 |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
1682 ArrayList<String> ids = (ArrayList<String>) getPreviousStateIds(); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
1683 ArrayList<String> toDestroy = (ArrayList<String>) ids.clone(); |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1684 |
2606
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
1685 toDestroy.add(getCurrentStateId()); |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
1686 |
619f6dfec901
#460 Fixed duplicated Outputs in DESCRIBE documents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2205
diff
changeset
|
1687 destroyStates(toDestroy, context); |
1086
825ea312116d
Call State.endOfLife() for all States in the Artifact when Artifact.endOfLife() is called.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1084
diff
changeset
|
1688 } |
4496
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1689 |
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1690 /** |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1691 * Return the Facets which a state provides. |
4496
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1692 * @param stateid String that identifies the state |
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1693 * @return List of Facets belonging to the state identifier |
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1694 */ |
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1695 protected List<Facet> getFacets(String stateid) { |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1696 return facets.get(stateid); |
4496
d8992459b408
Add method to return the facets of an artifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4495
diff
changeset
|
1697 } |
5975
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
1698 |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
1699 public String getBoundToOut() { |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
1700 return boundToOut; |
95b9e40bbad0
Add handling for OUT id's parameter to D4EArtifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5867
diff
changeset
|
1701 } |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1702 |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1703 /** |
7676
da412a6c4f39
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7593
diff
changeset
|
1704 * Binds this artifact and all its facet to an out. |
6140
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1705 */ |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1706 public void setBoundToOut(String out) { |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1707 boundToOut = out; |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1708 for (List<Facet> stateFacets: facets.values()) { |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1709 for (Facet fac: stateFacets) { |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1710 fac.setBoundToOut(out); |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1711 } |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1712 } |
60b94dec104b
Add handling of bound artifacts.
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
1713 } |
119
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1714 } |
84c0b151203e
Added a FLYSArtifact that serves as the default artifact for the FLYS application.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1715 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |