Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java @ 8157:1ccbd7f81c7d
Allow deeper nesting of output-generators in conf.xml. This allows better separation of concerns of different generator types.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 29 Aug 2014 11:31:17 +0200 |
parents | c27c04030a8d |
children | e4606eae8ea5 |
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:
5867
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:
5867
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:
5152
diff
changeset
|
9 package org.dive4elements.river.artifacts.context; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
11 import java.io.File; |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
12 |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import java.util.ArrayList; |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
14 import java.util.HashMap; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import java.util.List; |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
16 import java.util.Map; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 import javax.xml.xpath.XPathConstants; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 import org.apache.log4j.Logger; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
21 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
22 import org.dive4elements.artifactdatabase.state.State; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
23 import org.dive4elements.artifactdatabase.state.StateEngine; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
24 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
25 import org.dive4elements.artifactdatabase.transition.Transition; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
26 import org.dive4elements.artifactdatabase.transition.TransitionEngine; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
27 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
28 import org.dive4elements.artifacts.ArtifactContextFactory; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
29 import org.dive4elements.artifacts.GlobalContext; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
30 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
31 import org.dive4elements.artifacts.common.utils.Config; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
32 import org.dive4elements.artifacts.common.utils.ElementConverter; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
33 import org.dive4elements.artifacts.common.utils.XMLUtils; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
34 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
35 import org.dive4elements.river.artifacts.model.Module; |
7756
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
36 import org.dive4elements.river.artifacts.model.RiverFactory; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
37 import org.dive4elements.river.artifacts.model.ZoomScale; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
38 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
39 import org.dive4elements.river.artifacts.states.StateFactory; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
40 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
41 import org.dive4elements.river.artifacts.transitions.TransitionFactory; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
42 |
7226
8ab618dda850
Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7099
diff
changeset
|
43 import org.dive4elements.river.exports.GeneratorLookup; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
44 import org.dive4elements.river.exports.OutGenerator; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
45 |
7756
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
46 import org.dive4elements.river.model.River; |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
47 import org.dive4elements.river.themes.Theme; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
48 import org.dive4elements.river.themes.ThemeFactory; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
49 import org.dive4elements.river.themes.ThemeGroup; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
50 import org.dive4elements.river.themes.ThemeMapping; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
51 |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 import org.w3c.dom.Document; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 import org.w3c.dom.Element; |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
54 import org.w3c.dom.Node; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 import org.w3c.dom.NodeList; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 /** |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 * The ArtifactContextFactory is used to initialize basic components and put |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 * them into the global context of the application. |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 * |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
63 public class RiverContextFactory implements ArtifactContextFactory { |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 |
1826
8d9b573d1b9a
Minor comsetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1822
diff
changeset
|
65 /** The logger that is used in this class. */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
66 private static Logger logger = Logger.getLogger(RiverContextFactory.class); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 /** The XPath to the artifacts configured in the configuration. */ |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 public static final String XPATH_ARTIFACTS = |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 "/artifact-database/artifacts/artifact"; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 /** The XPath to the name of the artifact. */ |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
73 public static final String XPATH_ARTIFACT_NAME = "/artifact/@name"; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 /** The XPath to the xlink ref in an artifact configuration. */ |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 public static final String XPATH_XLINK = "xlink:href"; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 /** The XPath to the transitions configured in the artifact config. */ |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 public static final String XPATH_TRANSITIONS = |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 "/artifact/states/transition"; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
82 /** The XPath to the states configured in the artifact config. */ |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
83 public static final String XPATH_STATES = |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
84 "/artifact/states/state"; |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
85 |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
86 public static final String XPATH_OUTPUT_GENERATORS = |
8157
1ccbd7f81c7d
Allow deeper nesting of output-generators in conf.xml. This allows better separation of concerns of different generator types.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8093
diff
changeset
|
87 "/artifact-database/output-generators//output-generator"; |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
88 |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
89 public static final String XPATH_THEME_CONFIG = |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
90 "/artifact-database/flys/themes/configuration/text()"; |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
91 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
92 public static final String XPATH_THEMES = |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
93 "theme"; |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
94 |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
95 public static final String XPATH_THEME_GROUPS = |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
96 "/themes/themegroup"; |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
97 |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
98 public static final String XPATH_THEME_MAPPINGS = |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
99 "/themes/mappings/mapping"; |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
100 |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
101 public static final String XPATH_RIVER_WMS = |
1062
ee105e5d5ead
Repaired broken river wms initialization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
958
diff
changeset
|
102 "/artifact-database/floodmap/river"; |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
103 |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
104 public static final String XPATH_MODULES = "/artifact-database/modules/module"; |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
105 |
4619
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
106 private static final String XPATH_ZOOM_SCALES = "/artifact-database/options/zoom-scales/zoom-scale"; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
107 |
5152
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
108 private static final String XPATH_DGM_PATH = "/artifact-database/options/dgm-path/text()"; |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
109 |
6933
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
110 private static GlobalContext GLOBAL_CONTEXT_INSTANCE; |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
111 |
5152
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
112 |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 /** |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
114 * Creates a new D4EArtifactContext object and initialize all |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 * components required by the application. |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 * |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 * @param config The artifact server configuration. |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5866
diff
changeset
|
118 * @return a D4EArtifactContext. |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 */ |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
120 @Override |
939
32d0a543e3e8
Adapted a method signature of FLYSContextFactory to apply the changes in the artifact database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
345
diff
changeset
|
121 public GlobalContext createArtifactContext(Document config) { |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
122 RiverContext context = new RiverContext(config); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 configureTransitions(config, context); |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
125 configureStates(config, context); |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
126 configureOutGenerators(config, context); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
127 configureThemes(config, context); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
128 configureThemesMappings(config, context); |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
129 configureFloodmapWMS(config, context); |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
130 configureModules(config, context); |
4619
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
131 configureZoomScales(config, context); |
5152
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
132 configureDGMPath(config, context); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 |
6933
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
134 synchronized (RiverContextFactory.class) { |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
135 GLOBAL_CONTEXT_INSTANCE = context; |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
136 } |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
137 |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 return context; |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 } |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 |
6933
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
141 public static synchronized GlobalContext getGlobalContext() { |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
142 return GLOBAL_CONTEXT_INSTANCE; |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
143 } |
468d9ebda4ce
Datacage: Add dc:all-state-successors() to enable predicates like dc:contains(dc:all-state-successors($artifact-name, $current-state-id), 'state.winfo.calculation_mode') which recursively collects all successor state ids an check for containment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
144 |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
146 private void configureDGMPath(Document config, RiverContext context) { |
5152
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
147 String dgmPath = (String) XMLUtils.xpath( |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
148 config, |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
149 XPATH_DGM_PATH, |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
150 XPathConstants.STRING); |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
151 |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
152 context.put("dgm-path", dgmPath); |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
153 } |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
154 |
b26465581abf
Add a configurable path prefix to relative DGM path to allways have an absolute path.
Raimund Renkert <rrenkert@intevation.de>
parents:
4656
diff
changeset
|
155 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
156 protected void configureZoomScales(Document config, RiverContext context) { |
4619
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
157 NodeList list = (NodeList)XMLUtils.xpath( |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
158 config, |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
159 XPATH_ZOOM_SCALES, |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
160 XPathConstants.NODESET); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
161 ZoomScale scale = new ZoomScale(); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
162 for (int i = 0; i < list.getLength(); i++) { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
163 Element element = (Element)list.item(i); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
164 String river = "default"; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
165 double range = 0d; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
166 double radius = 10d; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
167 if (element.hasAttribute("river")) { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
168 river = element.getAttribute("river"); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
169 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
170 if (!element.hasAttribute("range")) { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
171 continue; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
172 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
173 else { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
174 String r = element.getAttribute("range"); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
175 try { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
176 range = Double.parseDouble(r); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
177 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
178 catch (NumberFormatException nfe) { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
179 continue; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
180 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
181 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
182 if (!element.hasAttribute("radius")) { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
183 continue; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
184 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
185 else { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
186 String r = element.getAttribute("radius"); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
187 try { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
188 radius = Double.parseDouble(r); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
189 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
190 catch (NumberFormatException nfe) { |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
191 continue; |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
192 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
193 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
194 scale.addRange(river, range, radius); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
195 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
196 context.put("zoomscale", scale); |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
197 } |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
198 |
05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents:
4051
diff
changeset
|
199 |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
200 /** |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
201 * This method initializes the transition configuration. |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
202 * |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
203 * @param config the config document. |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
204 * @param context the RiverContext. |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
205 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
206 protected void configureTransitions(Document config, RiverContext context) { |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
207 TransitionEngine engine = new TransitionEngine(); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
208 |
8086
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
209 List<Document> artifacts = getArtifactConfigurations(config); |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
210 logger.info("Found " + artifacts.size() + " artifacts in the config."); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
211 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
212 for (Document doc: artifacts) { |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
213 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
214 String artName = (String) XMLUtils.xpath( |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
215 doc, XPATH_ARTIFACT_NAME, XPathConstants.STRING); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
216 |
111
7222d8fb53ea
Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
107
diff
changeset
|
217 NodeList list = (NodeList) XMLUtils.xpath( |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
218 doc, XPATH_TRANSITIONS, XPathConstants.NODESET); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
219 |
111
7222d8fb53ea
Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
107
diff
changeset
|
220 if (list == null) { |
2141
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1828
diff
changeset
|
221 logger.warn("The artifact " + artName + |
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1828
diff
changeset
|
222 " has no transitions configured."); |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
223 continue; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
224 } |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
225 |
111
7222d8fb53ea
Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
107
diff
changeset
|
226 int trans = list.getLength(); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
227 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
228 logger.info( |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
229 "Artifact '" + artName + "' has " + trans + " transitions."); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
230 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
231 for (int i = 0; i < trans; i++) { |
111
7222d8fb53ea
Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
107
diff
changeset
|
232 Transition t = TransitionFactory.createTransition(list.item(i)); |
7222d8fb53ea
Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
107
diff
changeset
|
233 String s = t.getFrom(); |
7222d8fb53ea
Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
107
diff
changeset
|
234 engine.addTransition(s, t); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
235 } |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
236 } |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
237 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
238 context.put(RiverContext.TRANSITION_ENGINE_KEY, engine); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
239 } |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
240 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
241 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
242 /** |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
243 * This method returns all artifact documents defined in |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
244 * <code>config</code>. <br>NOTE: The artifact configurations need to be |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
245 * stored in own files referenced by an xlink. |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
246 * |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
247 * @param config The global configuration. |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
248 * |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
249 * @return an array of Artifact configurations. |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
250 */ |
8086
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
251 protected List<Document> getArtifactConfigurations(Document config) { |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
252 NodeList artifacts = (NodeList) XMLUtils.xpath( |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
253 config, XPATH_ARTIFACTS, XPathConstants.NODESET); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
254 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
255 int count = artifacts.getLength(); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
256 |
8086
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
257 ArrayList<Document> docs = new ArrayList<Document>(count); |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
258 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
259 for (int i = 0; i < count; i++) { |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
260 Element tmp = (Element) artifacts.item(i); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
261 |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
262 String xlink = tmp.getAttribute(XPATH_XLINK); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
263 xlink = Config.replaceConfigDir(xlink); |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
264 |
8086
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
265 File file = new File(xlink); |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
266 if (!file.isFile() || !file.canRead()) { |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
267 logger.warn("Artifact configuration '" + file + "' not found."); |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
268 continue; |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
269 } |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
270 |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
271 Document doc = XMLUtils.parseDocument(file); |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
272 if (doc != null) { |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
273 docs.add(doc); |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
274 } |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
275 } |
8086
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
276 return docs; |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
277 } |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
278 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
279 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
280 /** |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
281 * This method initializes the transition configuration. |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
282 * |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
283 * @param config the config document. |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
284 * @param context the RiverContext. |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
285 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
286 protected void configureStates(Document config, RiverContext context) { |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
287 StateEngine engine = new StateEngine(); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
288 |
8086
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
289 List<Document> artifacts = getArtifactConfigurations(config); |
7ede7904c8a5
Be more tolerant with not existing artifact configurations.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7756
diff
changeset
|
290 logger.info("Found " + artifacts.size() + " artifacts in the config."); |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
291 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
292 for (Document doc: artifacts) { |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
293 List<State> states = new ArrayList<State>(); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
294 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
295 String artName = (String) XMLUtils.xpath( |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
296 doc, XPATH_ARTIFACT_NAME, XPathConstants.STRING); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
297 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
298 NodeList stateList = (NodeList) XMLUtils.xpath( |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
299 doc, XPATH_STATES, XPathConstants.NODESET); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
300 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
301 if (stateList == null) { |
2141
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1828
diff
changeset
|
302 logger.warn("The artifact " + artName + |
79a94c4171cb
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1828
diff
changeset
|
303 " has no states configured."); |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
304 continue; |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
305 } |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
306 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
307 int count = stateList.getLength(); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
308 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
309 logger.info( |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
310 "Artifact '" + artName + "' has " + count + " states."); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
311 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
312 for (int i = 0; i < count; i++) { |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
313 states.add(StateFactory.createState( |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
314 stateList.item(i))); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
315 } |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
316 |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
317 engine.addStates(artName, states); |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
318 } |
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
319 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
320 context.put(RiverContext.STATE_ENGINE_KEY, engine); |
107
a228b39494a9
Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
106
diff
changeset
|
321 } |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
322 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
323 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
324 /** |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
325 * This method intializes the provided output generators. |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
326 * |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
327 * @param config the config document. |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
328 * @param context the RiverContext. |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
329 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
330 protected void configureOutGenerators(Document config, RiverContext context){ |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
331 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
332 NodeList outGenerators = (NodeList) XMLUtils.xpath( |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
333 config, |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
334 XPATH_OUTPUT_GENERATORS, |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
335 XPathConstants.NODESET); |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
336 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
337 int num = outGenerators == null ? 0 : outGenerators.getLength(); |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
338 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
339 if (num == 0) { |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
340 logger.warn("No output generators configured in this application."); |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
341 return; |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
342 } |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
343 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
344 logger.info("Found " + num + " configured output generators."); |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
345 |
7226
8ab618dda850
Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7099
diff
changeset
|
346 GeneratorLookup generators = new GeneratorLookup(); |
7037
5c6fd2c010dd
Add setup(Element config) method to Generator interface to be initialized from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6933
diff
changeset
|
347 |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
348 int idx = 0; |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
349 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
350 for (int i = 0; i < num; i++) { |
7037
5c6fd2c010dd
Add setup(Element config) method to Generator interface to be initialized from configuration.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6933
diff
changeset
|
351 Element item = (Element)outGenerators.item(i); |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
352 |
7074
a2abd87c0d3b
Trim "names" and "class" attribute of out generators before using.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7073
diff
changeset
|
353 String names = item.getAttribute("names").trim(); |
a2abd87c0d3b
Trim "names" and "class" attribute of out generators before using.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7073
diff
changeset
|
354 String clazz = item.getAttribute("class").trim(); |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
355 String converter = item.getAttribute("converter").trim(); |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
356 |
7074
a2abd87c0d3b
Trim "names" and "class" attribute of out generators before using.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7073
diff
changeset
|
357 if (names.isEmpty() || clazz.isEmpty()) { |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
358 continue; |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
359 } |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
360 |
7073
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
361 Class<OutGenerator> generatorClass = null; |
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
362 |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
363 try { |
7073
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
364 generatorClass = (Class<OutGenerator>)Class.forName(clazz); |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
365 } |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
366 catch (ClassNotFoundException cnfe) { |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
367 logger.error(cnfe, cnfe); |
7073
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
368 continue; |
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
369 } |
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
370 |
7099
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
371 Object cfg = null; |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
372 |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
373 if (!converter.isEmpty()) { |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
374 try { |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
375 ElementConverter ec = |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
376 (ElementConverter)Class.forName(converter) |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
377 .newInstance(); |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
378 cfg = ec.convert(item); |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
379 } |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
380 catch (ClassNotFoundException cnfe) { |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
381 logger.error(cnfe, cnfe); |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
382 } |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
383 catch (InstantiationException ie) { |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
384 logger.error(ie); |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
385 } |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
386 catch (IllegalAccessException iae) { |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
387 logger.error(iae); |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
388 } |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
389 } |
24f153ad1f40
Use pre-converted diagram attributes now.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7074
diff
changeset
|
390 |
7074
a2abd87c0d3b
Trim "names" and "class" attribute of out generators before using.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7073
diff
changeset
|
391 for (String key: names.split("[\\s,]")) { |
7073
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
392 if (!(key = key.trim()).isEmpty()) { |
7226
8ab618dda850
Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7099
diff
changeset
|
393 generators.putGenerator(key, generatorClass, cfg); |
7073
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
394 idx++; |
beb9e94f04d3
Allow comma separated names in "names" attribute in out generators to allow registering for more than one name. Old "name" attribute is removed.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7072
diff
changeset
|
395 } |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
396 } |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
397 } |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
398 |
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
399 logger.info("Successfully loaded " + idx + " output generators."); |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
400 context.put(RiverContext.OUTGENERATORS_KEY, generators); |
7227
744df5a03337
Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7226
diff
changeset
|
401 context.put(RiverContext.FACETFILTER_KEY, generators); |
295
53c155bfde07
Added code to parse the configured OutGenerators in the global configuration and to save a map of such in the FLYSContext.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
130
diff
changeset
|
402 } |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
403 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
404 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
405 /** |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
406 * This methods reads the configured themes and puts them into the |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
407 * RiverContext. |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
408 * |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
409 * @param config The global configuration. |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
410 * @param context The RiverContext. |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
411 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
412 protected void configureThemes(Document config, RiverContext context) { |
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
413 logger.debug("RiverContextFactory.configureThemes"); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
414 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
415 Document cfg = getThemeConfig(config); |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
416 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
417 NodeList themeGroups = (NodeList) XMLUtils.xpath( |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
418 cfg, XPATH_THEME_GROUPS, XPathConstants.NODESET); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
419 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
420 int groupNum = themeGroups != null ? themeGroups.getLength() : 0; |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
421 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
422 if (groupNum == 0) { |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
423 logger.warn("There are no theme groups configured!"); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
424 } |
3256
17ca0a43027a
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3239
diff
changeset
|
425 |
3239
fb11bd37ddb8
Improved the structure of themes.xml; moved theme groups to own XML files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2742
diff
changeset
|
426 logger.info("Found " + groupNum + " theme groups in configuration"); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
427 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
428 List<ThemeGroup> groups = new ArrayList<ThemeGroup>(); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
429 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
430 for (int g = 0; g < groupNum; g++) { |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
431 Element themeGroup = (Element) themeGroups.item(g); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
432 NodeList themes = (NodeList) XMLUtils.xpath( |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
433 themeGroup, XPATH_THEMES, XPathConstants.NODESET); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
434 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
435 int num = themes != null ? themes.getLength() : 0; |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
436 |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
437 if (num == 0) { |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
438 logger.warn("There are no themes configured!"); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
439 return; |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
440 } |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
441 |
3239
fb11bd37ddb8
Improved the structure of themes.xml; moved theme groups to own XML files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2742
diff
changeset
|
442 logger.info("Theme group has " + num + " themes."); |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
443 |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
444 Map<String, Theme> theThemes = new HashMap<String, Theme>(); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
445 |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
446 for (int i = 0; i < num; i++) { |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
447 Node theme = themes.item(i); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
448 |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
449 Theme theTheme = ThemeFactory.createTheme(cfg, theme); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
450 |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
451 if (theme != null) { |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
452 theThemes.put(theTheme.getName(), theTheme); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
453 } |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
454 } |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
455 String gName = themeGroup.getAttribute("name"); |
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
456 groups.add(new ThemeGroup(gName, theThemes)); |
3256
17ca0a43027a
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3239
diff
changeset
|
457 |
3239
fb11bd37ddb8
Improved the structure of themes.xml; moved theme groups to own XML files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2742
diff
changeset
|
458 logger.info( |
fb11bd37ddb8
Improved the structure of themes.xml; moved theme groups to own XML files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2742
diff
changeset
|
459 "Initialized " + theThemes.size() + "/" + num + " themes " + |
fb11bd37ddb8
Improved the structure of themes.xml; moved theme groups to own XML files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2742
diff
changeset
|
460 "of theme-group '" + gName + "'"); |
2737
83b22ccf48da
Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2141
diff
changeset
|
461 } |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
462 context.put(RiverContext.THEMES, groups); |
341
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
463 } |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
464 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
465 /** |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
466 * This method is used to retrieve the theme configuration document. |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
467 * |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
468 * @param config The global configuration. |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
469 * |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
470 * @return the theme configuration. |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
471 */ |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
472 protected Document getThemeConfig(Document config) { |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
473 String themeConfig = (String) XMLUtils.xpath( |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
474 config, |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
475 XPATH_THEME_CONFIG, |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
476 XPathConstants.STRING); |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
477 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
478 themeConfig = Config.replaceConfigDir(themeConfig); |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
479 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
480 logger.debug("Parse theme cfg: " + themeConfig); |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
481 |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
482 return XMLUtils.parseDocument(new File(themeConfig)); |
eca7892bf8ff
Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
295
diff
changeset
|
483 } |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
484 |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
485 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
486 protected void configureThemesMappings(Document cfg, RiverContext context) { |
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
487 logger.debug("RiverContextFactory.configureThemesMappings"); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
488 |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
489 Document config = getThemeConfig(cfg); |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
490 |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
491 NodeList mappings = (NodeList) XMLUtils.xpath( |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
492 config, XPATH_THEME_MAPPINGS, XPathConstants.NODESET); |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
493 |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
494 int num = mappings != null ? mappings.getLength() : 0; |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
495 |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
496 if (num == 0) { |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
497 logger.warn("No theme <--> facet mappins found!"); |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
498 return; |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
499 } |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
500 |
1747
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
501 Map<String, List<ThemeMapping>> mapping = |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
502 new HashMap<String, List<ThemeMapping>>(); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
503 |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
504 for (int i = 0; i < num; i++) { |
2742
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
505 Element node = (Element)mappings.item(i); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
506 |
2742
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
507 String from = node.getAttribute("from"); |
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
508 String to = node.getAttribute("to"); |
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
509 String pattern = node.getAttribute("pattern"); |
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
510 String masterAttrPattern = node.getAttribute("masterAttr"); |
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
511 String outputPattern = node.getAttribute("output"); |
1747
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
512 |
2742
faf73245ec73
Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2737
diff
changeset
|
513 if (from.length() > 0 && to.length() > 0) { |
1747
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
514 List<ThemeMapping> tm = mapping.get(from); |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
515 |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
516 if (tm == null) { |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
517 tm = new ArrayList<ThemeMapping>(); |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
518 mapping.put(from, tm); |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
519 } |
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
520 |
1822
6ed439ff61bf
Changed theme-mapping mechanism to include further condition (on master-artifacts attributes), added point themes for longitudinal.ws for calculations at locations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1747
diff
changeset
|
521 tm.add(new ThemeMapping( |
1828
9562ca537143
Added new optional condition for theme-mappings: the output name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1826
diff
changeset
|
522 from, to, pattern, masterAttrPattern, outputPattern)); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
523 } |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
524 } |
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
525 |
1747
d2a17e990c70
Improved the Themes: we now support special themes for facets which need to match a given pattern string.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1062
diff
changeset
|
526 logger.debug("Found " + mapping.size() + " theme mappings."); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
527 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
528 context.put(RiverContext.THEME_MAPPING, mapping); |
345
88a669785863
Initialized the facet2theme mappings configured in themes.xml and added a function to the ThemeFactory that retrieves a theme from FLYSContext based on its name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
341
diff
changeset
|
529 } |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
530 |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
531 |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
532 /** |
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
533 * Reads configured floodmap river WMSs from floodmap.xml and |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
534 * loads them into the given RiverContext. |
4656
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
535 * @param cfg |
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
536 * @param context |
442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents:
4629
diff
changeset
|
537 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
538 protected void configureFloodmapWMS(Document cfg, RiverContext context) { |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
539 Map<String, String> riverWMS = new HashMap<String, String>(); |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
540 |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
541 NodeList rivers = (NodeList) XMLUtils.xpath( |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
542 cfg, XPATH_RIVER_WMS, XPathConstants.NODESET); |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
543 |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
544 int num = rivers != null ? rivers.getLength() : 0; |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
545 |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
546 for (int i = 0; i < num; i++) { |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
547 Element e = (Element) rivers.item(i); |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
548 |
1062
ee105e5d5ead
Repaired broken river wms initialization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
958
diff
changeset
|
549 String river = e.getAttribute("name"); |
ee105e5d5ead
Repaired broken river wms initialization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
958
diff
changeset
|
550 String url = XMLUtils.xpathString(e, "river-wms/@url", null); |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
551 |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
552 if (river != null && url != null) { |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
553 riverWMS.put(river, url); |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
554 } |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
555 } |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
556 |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
557 logger.debug("Found " + riverWMS.size() + " river WMS."); |
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
558 |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
559 context.put(RiverContext.RIVER_WMS, riverWMS); |
958
ae198bef4ba0
Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
939
diff
changeset
|
560 } |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
561 |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
562 |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
563 /** |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
564 * This method initializes the modules configuration. |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
565 * |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
566 * @param config the config document. |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
567 * @param context the RiverContext. |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
568 */ |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
569 protected void configureModules(Document cfg, RiverContext context) { |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
570 NodeList modulenodes = (NodeList) XMLUtils.xpath( |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
571 cfg, XPATH_MODULES, XPathConstants.NODESET); |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
572 |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
573 int num = modulenodes != null ? modulenodes.getLength() : 0; |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
574 ArrayList<Module> modules = new ArrayList<Module>(num); |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
575 |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
576 for (int i = 0; i < num; i++) { |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
577 Element e = (Element) modulenodes.item(i); |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
578 String modulename = e.getAttribute("name"); |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
579 String attrselected = e.getAttribute("selected"); |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
580 boolean selected = attrselected == null ? false : |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
581 attrselected.equalsIgnoreCase("true"); |
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
582 logger.debug("Loaded module " + modulename); |
7756
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
583 NodeList children = e.getChildNodes(); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
584 List<String> rivers = new ArrayList<String>(children.getLength()); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
585 for (int j = 0; j < children.getLength(); j++) { |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
586 if (children.item(j).getNodeType() != Node.ELEMENT_NODE) { |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
587 continue; |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
588 } |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
589 Element ce = (Element)children.item(j); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
590 if (ce.hasAttribute("uuid")) { |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
591 rivers.add(ce.getAttribute("uuid")); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
592 } |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
593 else if (ce.hasAttribute("name")) { |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
594 List<River> allRivers = RiverFactory.getRivers(); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
595 String name = ce.getAttribute("name"); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
596 for (River r: allRivers) { |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
597 if (name.equals(r.getName())) { |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
598 rivers.add(r.getModelUuid()); |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
599 break; |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
600 } |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
601 } |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
602 } |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
603 } |
cd04a7389389
Read rivers supported by a module from config file.
Raimund Renkert <rrenkert@intevation.de>
parents:
7227
diff
changeset
|
604 modules.add(new Module(modulename, selected, rivers)); |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
605 } |
5866
9a6741ccf6d4
FLYS artifacts: Renamed FLYSContext(Factory) to RiverContext(Factory).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
606 context.put(RiverContext.MODULES, modules); |
3630
28be160b5870
Add a module service. It's now possible to configure the modules which are
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3256
diff
changeset
|
607 } |
106
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
608 } |
5864c41219db
Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
609 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |