comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java @ 1190:f514894ec2fd

merged flys-artifacts/2.5
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:14:17 +0200
parents 7f5426c69ee0
children fde3db5e68e8
comparison
equal deleted inserted replaced
917:b48c36076e17 1190:f514894ec2fd
1 package de.intevation.flys.artifacts.states;
2
3 import java.util.HashMap;
4 import java.util.List;
5 import java.util.Map;
6
7 import javax.xml.xpath.XPathConstants;
8
9 import org.apache.log4j.Logger;
10
11 import org.w3c.dom.Document;
12 import org.w3c.dom.Node;
13
14 import de.intevation.artifacts.CallMeta;
15
16 import de.intevation.artifacts.common.utils.Config;
17 import de.intevation.artifacts.common.utils.XMLUtils;
18
19 import de.intevation.artifactdatabase.state.Facet;
20
21 import de.intevation.flys.artifacts.FLYSArtifact;
22 import de.intevation.flys.artifacts.model.WMSLayerFacet;
23 import de.intevation.flys.artifacts.resources.Resources;
24 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
25
26
27 public class WMSBackgroundState extends OutputState {
28
29 public static final String I18N_DESCRIPTION = "floodmap.wmsbackground";
30
31 public static final String XPATH_SRID =
32 "/artifact-database/floodmap/river[@name=$name]/srid/@value";
33
34 public static final String XPATH_WMS_URL =
35 "/artifact-database/floodmap/river[@name=$name]/background-wms/@url";
36
37 public static final String XPATH_WMS_LAYER =
38 "/artifact-database/floodmap/river[@name=$name]/background-wms/@layers";
39
40
41 protected String url;
42 protected String layer;
43 protected String srid;
44
45
46 private static final Logger logger = Logger.getLogger(WMSBackgroundState.class);
47
48
49 @Override
50 public void setup(Node config) {
51 super.setup(config);
52
53 logger.debug("WMSBackgroundState.setup()");
54 }
55
56
57 @Override
58 public Object computeInit(
59 FLYSArtifact artifact,
60 String hash,
61 Object context,
62 CallMeta meta,
63 List<Facet> facets
64 ) {
65 logger.debug("WMSBackgroundState.computeInit()");
66
67 if (url == null || layer == null) {
68 Document cfg = Config.getConfig();
69
70 String river = artifact.getDataAsString("river");
71
72 Map<String, String> variables = new HashMap<String, String>();
73 variables.put("name", river);
74
75 srid = (String) XMLUtils.xpath(
76 cfg,
77 XPATH_SRID,
78 XPathConstants.STRING,
79 null,
80 variables);
81
82 url = (String) XMLUtils.xpath(
83 cfg,
84 XPATH_WMS_URL,
85 XPathConstants.STRING,
86 null,
87 variables);
88
89 layer = (String) XMLUtils.xpath(
90 cfg,
91 XPATH_WMS_LAYER,
92 XPathConstants.STRING,
93 null,
94 variables);
95 }
96
97 if (url == null || layer == null) {
98 logger.warn("No background layers currently configured:");
99 logger.warn("... add config for WMS url: " + XPATH_WMS_URL);
100 logger.warn("... add config for WMS layer: " + XPATH_WMS_LAYER);
101 return null;
102 }
103
104 WMSLayerFacet facet = new WMSLayerFacet(
105 0,
106 FLOODMAP_WMSBACKGROUND,
107 Resources.getMsg(meta, I18N_DESCRIPTION, I18N_DESCRIPTION),
108 ComputeType.INIT,
109 getID(), hash,
110 url);
111
112 facet.addLayer(layer);
113 facet.setSrid(srid);
114
115 facets.add(facet);
116
117 return null;
118 }
119 }
120 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org