Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java @ 1805:5e9696c32f04
Added datacage config and loaders for KM WMS layer in floodmaps.
flys-artifacts/trunk@3131 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 01 Nov 2011 14:54:59 +0000 |
parents | |
children | 5364b86a0880 |
comparison
equal
deleted
inserted
replaced
1804:00f14b837e65 | 1805:5e9696c32f04 |
---|---|
1 package de.intevation.flys.artifacts; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
5 | |
6 import org.w3c.dom.Document; | |
7 | |
8 import org.apache.log4j.Logger; | |
9 | |
10 import com.vividsolutions.jts.geom.Envelope; | |
11 | |
12 import de.intevation.artifacts.Artifact; | |
13 import de.intevation.artifacts.ArtifactFactory; | |
14 import de.intevation.artifacts.CallMeta; | |
15 | |
16 import de.intevation.artifactdatabase.data.DefaultStateData; | |
17 import de.intevation.artifactdatabase.state.Facet; | |
18 import de.intevation.artifactdatabase.state.State; | |
19 | |
20 import de.intevation.artifacts.common.ArtifactNamespaceContext; | |
21 import de.intevation.artifacts.common.utils.XMLUtils; | |
22 | |
23 import de.intevation.flys.artifacts.states.DefaultState; | |
24 import de.intevation.flys.artifacts.model.WMSDBLayerFacet; | |
25 | |
26 | |
27 public abstract class WMSDBArtifact extends StaticFLYSArtifact { | |
28 | |
29 private static final Logger logger = Logger.getLogger(WMSDBArtifact.class); | |
30 | |
31 public static final String XPATH_IDS = "/art:action/art:ids/@value"; | |
32 | |
33 | |
34 @Override | |
35 public void setup( | |
36 String identifier, | |
37 ArtifactFactory factory, | |
38 Object context, | |
39 CallMeta callMeta, | |
40 Document data) | |
41 { | |
42 logger.debug("WMSDBArtifact.setup"); | |
43 | |
44 super.setup(identifier, factory, context, callMeta, data); | |
45 | |
46 String ids = XMLUtils.xpathString( | |
47 data, XPATH_IDS, ArtifactNamespaceContext.INSTANCE); | |
48 | |
49 if (ids != null && ids.length() > 0) { | |
50 addData("ids", new DefaultStateData("ids", null, null, ids)); | |
51 } | |
52 else { | |
53 throw new IllegalArgumentException("No attribute 'ids' found!"); | |
54 } | |
55 | |
56 List<Facet> fs = new ArrayList<Facet>(); | |
57 | |
58 WMSDBState state = (WMSDBState) getCurrentState(context); | |
59 state.computeInit(this, hash(), context, callMeta, fs); | |
60 | |
61 if (!fs.isEmpty()) { | |
62 facets.put(getCurrentStateId(), fs); | |
63 } | |
64 } | |
65 | |
66 | |
67 @Override | |
68 protected void initialize( | |
69 Artifact artifact, | |
70 Object context, | |
71 CallMeta callMeta) | |
72 { | |
73 // do nothing | |
74 } | |
75 | |
76 | |
77 /** | |
78 * Get a list containing the one and only State. | |
79 * @param context ignored. | |
80 * @return list with one and only state. | |
81 */ | |
82 @Override | |
83 protected List<State> getStates(Object context) { | |
84 ArrayList<State> states = new ArrayList<State>(); | |
85 states.add(getCurrentState(context)); | |
86 | |
87 return states; | |
88 } | |
89 | |
90 | |
91 | |
92 public static abstract class WMSDBState extends DefaultState { | |
93 private static final Logger logger = Logger.getLogger(WMSDBState.class); | |
94 | |
95 protected WMSDBArtifact artifact; | |
96 | |
97 public WMSDBState(WMSDBArtifact artifact) { | |
98 this.artifact = artifact; | |
99 } | |
100 | |
101 @Override | |
102 public Object computeInit( | |
103 FLYSArtifact artifact, | |
104 String hash, | |
105 Object context, | |
106 CallMeta meta, | |
107 List<Facet> facets | |
108 ) { | |
109 logger.debug("WMSDBState.computeInit"); | |
110 | |
111 String type = getFacetType(); | |
112 | |
113 WMSDBLayerFacet facet = new WMSDBLayerFacet( | |
114 0, | |
115 type, | |
116 getTitle(meta), | |
117 ComputeType.INIT, | |
118 getID(), hash, | |
119 getUrl()); | |
120 | |
121 String name = artifact.identifier() + "-" + type; | |
122 | |
123 facet.addLayer(name); | |
124 facet.setExtent(getExtent()); | |
125 facet.setSrid(getSrid()); | |
126 facet.setData(getDataString()); | |
127 facet.setFilter(getFilter()); | |
128 | |
129 facets.add(facet); | |
130 | |
131 return null; | |
132 } | |
133 | |
134 protected abstract String getFacetType(); | |
135 | |
136 protected abstract String getTitle(CallMeta meta); | |
137 | |
138 protected abstract String getUrl(); | |
139 | |
140 protected abstract String getSrid(); | |
141 | |
142 protected abstract Envelope getExtent(); | |
143 | |
144 protected abstract String getFilter(); | |
145 | |
146 protected abstract String getDataString(); | |
147 } // end of WMSDBState | |
148 } | |
149 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |