Mercurial > dive4elements > river
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 : |