annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java @ 4619:05c9902c761d

Added example config for river 'Elbe' and read the config in context factory.
author Raimund Renkert <rrenkert@intevation.de>
date Mon, 03 Dec 2012 16:54:32 +0100
parents 58bdf95df5e4
children e29f368c09ba
rev   line source
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.context;
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.io.File;
4619
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
4 import java.text.ParseException;
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 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
6 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
7 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
8 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
9
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 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
11
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import org.apache.log4j.Logger;
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 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
15 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
16 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
17 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
18
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.artifacts.ArtifactContextFactory;
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
20 import de.intevation.artifacts.GlobalContext;
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import de.intevation.artifacts.common.utils.XMLUtils;
130
1fa38d60a702 Fixed build error coming from different import of XMLUtils.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 111
diff changeset
23 import de.intevation.artifacts.common.utils.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
24
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
25 import de.intevation.artifactdatabase.state.State;
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
26 import de.intevation.artifactdatabase.state.StateEngine;
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
27 import de.intevation.artifactdatabase.transition.Transition;
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
28 import de.intevation.artifactdatabase.transition.TransitionEngine;
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
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
30 import de.intevation.flys.artifacts.model.Module;
4619
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
31 import de.intevation.flys.artifacts.model.ZoomScale;
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
32 import de.intevation.flys.artifacts.states.StateFactory;
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 import de.intevation.flys.artifacts.transitions.TransitionFactory;
341
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
34 import de.intevation.flys.themes.Theme;
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
35 import de.intevation.flys.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
36 import de.intevation.flys.themes.ThemeFactory;
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
37 import de.intevation.flys.themes.ThemeMapping;
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 /**
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 * 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
42 * 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
43 *
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 * @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
45 */
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 public class FLYSContextFactory implements ArtifactContextFactory {
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
1826
8d9b573d1b9a Minor comsetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1822
diff changeset
48 /** The logger that is used in this 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
49 private static Logger logger = Logger.getLogger(FLYSContextFactory.class);
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 /** 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
52 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
53 "/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
54
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 /** 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
56 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
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 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
59 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
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 /** 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
62 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
63 "/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
64
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
65 /** 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
66 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
67 "/artifact/states/state";
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
68
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
69 public static final String 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
70 "/artifact-database/output-generators/output-generator";
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
71
341
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
72 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
73 "/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
74
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
75 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
76 "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
77
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
78 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
79 "/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
80
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
81 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
82 "/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
83
958
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
84 public static final String XPATH_RIVER_WMS =
1062
ee105e5d5ead Repaired broken river wms initialization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 958
diff changeset
85 "/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
86
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
87 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
88
4619
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
89 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
90
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 /**
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 * Creates a new FLYSArtifactContext object and initialize all
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 * 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
94 *
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 * @param config The artifact server configuration.
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 * @return a FLYSArtifactContext.
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 */
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
98 public GlobalContext createArtifactContext(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
99 FLYSContext context = new FLYSContext(config);
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 configureTransitions(config, context);
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
102 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
103 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
104 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
105 configureThemesMappings(config, context);
958
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
106 configureRiverWMS(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
107 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
108 configureZoomScales(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
109
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 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
111 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113
4619
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
114 private void configureZoomScales(Document config, FLYSContext context) {
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
115 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
116 config,
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
117 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
118 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
119 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
120 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
121 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
122 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
123 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
124 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
125 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
126 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
127 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
128 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
129 continue;
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
130 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
131 else {
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
132 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
133 try {
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
134 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
135 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
136 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
137 continue;
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
138 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
139 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
140 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
141 continue;
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
142 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
143 else {
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
144 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
145 try {
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
146 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
147 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
148 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
149 continue;
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
150 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
151 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
152 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
153 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
154 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
155 }
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
156
05c9902c761d Added example config for river 'Elbe' and read the config in context factory.
Raimund Renkert <rrenkert@intevation.de>
parents: 4051
diff changeset
157
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 /**
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 * 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
160 *
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 * @param config the config document.
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 * @param context the FLYSContext.
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 */
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 protected void configureTransitions(Document config, FLYSContext context) {
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 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
166
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 Document[] artifacts = getArtifactConfigurations(config);
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168 logger.info("Found " + artifacts.length + " artifacts in the config.");
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 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
171
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 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
173 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
174
111
7222d8fb53ea Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 107
diff changeset
175 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
176 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
177
111
7222d8fb53ea Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 107
diff changeset
178 if (list == null) {
2141
79a94c4171cb Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1828
diff changeset
179 logger.warn("The artifact " + artName +
79a94c4171cb Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1828
diff changeset
180 " has no transitions configured.");
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
181 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
182 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183
111
7222d8fb53ea Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 107
diff changeset
184 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
185
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 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
187 "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
188
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 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
190 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
191 String s = t.getFrom();
7222d8fb53ea Changed the way of storing transitions in the TransitionEngine.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 107
diff changeset
192 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
193 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 context.put(FLYSContext.TRANSITION_ENGINE_KEY, engine);
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199
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 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
202 * <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
203 * 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
204 *
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
205 * @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
206 *
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
207 * @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
208 */
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
209 protected Document[] getArtifactConfigurations(Document config) {
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
210 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
211 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
212
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
213 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
214
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215 Document[] artifactDocs = new Document[count];
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
217 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
218 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
219
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
220 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
221 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
222
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
223 File artifactFile = new File(xlink);
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
224 artifactDocs[i] = XMLUtils.parseDocument(artifactFile);
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
225 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
226
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
227 return artifactDocs;
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
228 }
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
229
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
230
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
231 /**
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
232 * 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
233 *
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
234 * @param config the config document.
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
235 * @param context the FLYSContext.
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
236 */
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
237 protected void configureStates(Document config, FLYSContext context) {
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
238 StateEngine engine = new StateEngine();
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
239
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
240 Document[] artifacts = getArtifactConfigurations(config);
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
241 logger.info("Found " + artifacts.length + " artifacts in the config.");
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
242
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
243 for (Document doc: artifacts) {
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
244 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
245
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
246 String artName = (String) XMLUtils.xpath(
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
247 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
248
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
249 NodeList stateList = (NodeList) XMLUtils.xpath(
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
250 doc, XPATH_STATES, XPathConstants.NODESET);
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
251
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
252 if (stateList == null) {
2141
79a94c4171cb Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1828
diff changeset
253 logger.warn("The artifact " + artName +
79a94c4171cb Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1828
diff changeset
254 " has no states configured.");
107
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
255 continue;
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
256 }
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
257
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
258 int count = stateList.getLength();
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
259
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
260 logger.info(
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
261 "Artifact '" + artName + "' has " + count + " states.");
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
262
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
263 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
264 states.add(StateFactory.createState(
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
265 stateList.item(i)));
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
266 }
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
267
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
268 engine.addStates(artName, states);
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
269 }
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
270
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
271 context.put(FLYSContext.STATE_ENGINE_KEY, engine);
a228b39494a9 Improved the bootstrap process - the states are initialized.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 106
diff changeset
272 }
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
273
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
274
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
275 /**
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
276 * 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
277 *
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
278 * @param config the config document.
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
279 * @param context the FLYSContext.
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
280 */
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
281 protected void configureOutGenerators(Document config, FLYSContext context){
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
282 Map<String, Class> generators = new HashMap<String, Class>();
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
283
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
284 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
285 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
286 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
287 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
288
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
289 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
290
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
291 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
292 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
293 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
294 }
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
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
296 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
297
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
298 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
299
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
300 for (int i = 0; i < num; i++) {
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
301 Node item = outGenerators.item(i);
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
302
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
303 String name = (String) 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
304 item, "@name", XPathConstants.STRING);
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
305
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
306 String clazz = (String) 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
307 item, "text()", XPathConstants.STRING);
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
308
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
309 if (name == null || clazz == null) {
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
310 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
311 }
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
312
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
313 try {
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
314 generators.put(name, Class.forName(clazz));
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
315
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
316 idx++;
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
317 }
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
318 catch (ClassNotFoundException cnfe) {
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
319 logger.warn(cnfe, cnfe);
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
320 }
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
321 }
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 logger.info("Successfully loaded " + idx + " 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
324 context.put(FLYSContext.OUTGENERATORS_KEY, 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
325 }
341
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
326
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
327
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
328 /**
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
329 * This methods reads the configured themes and puts them into the
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
330 * FLYSContext.
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
331 *
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
332 * @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
333 * @param context The FLYSContext.
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
334 */
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
335 protected void configureThemes(Document config, FLYSContext context) {
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
336 logger.debug("FLYSContextFactory.configureThemes");
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
337
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
338 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
339
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
340 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
341 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
342
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
343 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
344
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
345 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
346 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
347 }
3256
17ca0a43027a Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3239
diff changeset
348
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
349 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
350
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
351 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
352
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
353 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
354 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
355 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
356 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
357
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
358 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
359
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
360 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
361 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
362 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
363 }
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
364
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
365 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
366
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
367 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
368
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
369 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
370 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
371
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
372 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
373
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
374 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
375 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
376 }
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
377 }
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
378 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
379 groups.add(new ThemeGroup(gName, theThemes));
3256
17ca0a43027a Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3239
diff changeset
380
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
381 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
382 "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
383 "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
384 }
83b22ccf48da Introduced theme groups and added new service to get themes filtered by name.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2141
diff changeset
385 context.put(FLYSContext.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
386 }
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
387
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
388 /**
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
389 * 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
390 *
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
391 * @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
392 *
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
393 * @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
394 */
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
395 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
396 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
397 config,
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
398 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
399 XPathConstants.STRING);
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
400
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
401 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
402
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
403 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
404
eca7892bf8ff Added a first small theme configuration and code to read it.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 295
diff changeset
405 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
406 }
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
407
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
408
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
409 protected void configureThemesMappings(Document cfg, FLYSContext context) {
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
410 logger.debug("FLYSContextFactory.configureThemesMappings");
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
411
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
412 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
413
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
414 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
415 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
416
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
417 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
418
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
419 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
420 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
421 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
422 }
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
423
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
424 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
425 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
426
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
427 for (int i = 0; i < num; i++) {
2742
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
428 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
429
2742
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
430 String from = node.getAttribute("from");
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
431 String to = node.getAttribute("to");
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
432 String pattern = node.getAttribute("pattern");
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
433 String masterAttrPattern = node.getAttribute("masterAttr");
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
434 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
435
2742
faf73245ec73 Improved startup performance.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2737
diff changeset
436 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
437 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
438
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
439 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
440 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
441 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
442 }
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
443
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
444 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
445 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
446 }
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
447 }
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
448
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
449 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
450
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
451 context.put(FLYSContext.THEME_MAPPING, 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
452 }
958
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
453
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
454
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
455 protected void configureRiverWMS(Document cfg, FLYSContext context) {
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
456 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
457
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
458 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
459 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
460
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
461 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
462
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
463 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
464 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
465
1062
ee105e5d5ead Repaired broken river wms initialization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 958
diff changeset
466 String river = e.getAttribute("name");
ee105e5d5ead Repaired broken river wms initialization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 958
diff changeset
467 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
468
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
469 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
470 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
471 }
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
472 }
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
473
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
474 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
475
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
476 context.put(FLYSContext.RIVER_WMS, riverWMS);
ae198bef4ba0 Added configurations for river WMSe (currently for Saar, Mosel, Elbe).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 939
diff changeset
477 }
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
478
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
479
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
480 /**
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
481 * 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
482 *
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
483 * @param config the config document.
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
484 * @param context the FLYSContext.
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
485 */
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
486 protected void configureModules(Document cfg, FLYSContext context) {
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
487 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
488 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
489
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
490 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
491 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
492
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
493 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
494 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
495 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
496 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
497 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
498 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
499 logger.debug("Loaded module " + modulename);
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
500 modules.add(new Module(modulename, 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
501 }
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
502 context.put(FLYSContext.MODULES, modules);
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
503 }
106
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
504 }
5864c41219db Initializes a TransitionEngine storing all transitions for each artifact at the application start.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
505 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org