Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java @ 3019:484f3dad4bfd
Let Artifacts of type WMSDBArtifact remove produced files and directories when endOfLife() is called.
flys-artifacts/trunk@4586 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 05 Jun 2012 13:34:50 +0000 |
parents | 2f7fed1eb4bf |
children | 4a76da133144 |
comparison
equal
deleted
inserted
replaced
3018:fb07f936b5ad | 3019:484f3dad4bfd |
---|---|
1 package de.intevation.flys.artifacts; | 1 package de.intevation.flys.artifacts; |
2 | |
3 import java.io.File; | |
2 | 4 |
3 import java.util.ArrayList; | 5 import java.util.ArrayList; |
4 import java.util.List; | 6 import java.util.List; |
5 | 7 |
6 import java.util.regex.Pattern; | 8 import java.util.regex.Pattern; |
15 import com.vividsolutions.jts.geom.Envelope; | 17 import com.vividsolutions.jts.geom.Envelope; |
16 | 18 |
17 import de.intevation.artifacts.Artifact; | 19 import de.intevation.artifacts.Artifact; |
18 import de.intevation.artifacts.ArtifactFactory; | 20 import de.intevation.artifacts.ArtifactFactory; |
19 import de.intevation.artifacts.CallMeta; | 21 import de.intevation.artifacts.CallMeta; |
22 | |
23 import de.intevation.artifacts.common.utils.FileTools; | |
20 | 24 |
21 import de.intevation.artifactdatabase.data.DefaultStateData; | 25 import de.intevation.artifactdatabase.data.DefaultStateData; |
22 import de.intevation.artifactdatabase.state.Facet; | 26 import de.intevation.artifactdatabase.state.Facet; |
23 import de.intevation.artifactdatabase.state.State; | 27 import de.intevation.artifactdatabase.state.State; |
24 | 28 |
27 | 31 |
28 import de.intevation.flys.artifacts.resources.Resources; | 32 import de.intevation.flys.artifacts.resources.Resources; |
29 import de.intevation.flys.artifacts.states.DefaultState; | 33 import de.intevation.flys.artifacts.states.DefaultState; |
30 import de.intevation.flys.artifacts.model.WMSDBLayerFacet; | 34 import de.intevation.flys.artifacts.model.WMSDBLayerFacet; |
31 import de.intevation.flys.utils.FLYSUtils; | 35 import de.intevation.flys.utils.FLYSUtils; |
36 import de.intevation.flys.utils.MapfileGenerator; | |
32 | 37 |
33 | 38 |
34 public abstract class WMSDBArtifact extends StaticFLYSArtifact { | 39 public abstract class WMSDBArtifact extends StaticFLYSArtifact { |
35 | 40 |
36 private static final Logger logger = Logger.getLogger(WMSDBArtifact.class); | 41 private static final Logger logger = Logger.getLogger(WMSDBArtifact.class); |
76 Artifact artifact, | 81 Artifact artifact, |
77 Object context, | 82 Object context, |
78 CallMeta callMeta) | 83 CallMeta callMeta) |
79 { | 84 { |
80 // do nothing | 85 // do nothing |
86 } | |
87 | |
88 | |
89 @Override | |
90 protected State getState(Object context, String stateID) { | |
91 return getCurrentState(context); | |
81 } | 92 } |
82 | 93 |
83 | 94 |
84 /** | 95 /** |
85 * Get a list containing the one and only State. | 96 * Get a list containing the one and only State. |
282 getFacetType(), | 293 getFacetType(), |
283 getFacetType()); | 294 getFacetType()); |
284 } | 295 } |
285 | 296 |
286 | 297 |
298 @Override | |
299 public void endOfLife(Artifact owner, Object context) { | |
300 logger.info("Destroy WMSDBState: " + getID()); | |
301 | |
302 String p = FLYSUtils.getXPathString(FLYSUtils.XPATH_SHAPEFILE_DIR); | |
303 File dir = new File(p, owner.identifier()); | |
304 | |
305 if (dir != null && dir.exists()) { | |
306 logger.debug("Try to delete directory '" + dir + "'"); | |
307 | |
308 FileTools.deleteRecursive(dir); | |
309 MapfileGenerator.getInstance().update(); | |
310 } | |
311 } | |
312 | |
313 | |
287 protected abstract String getFacetType(); | 314 protected abstract String getFacetType(); |
288 | 315 |
289 protected abstract String getUrl(); | 316 protected abstract String getUrl(); |
290 | 317 |
291 protected abstract String getSrid(); | 318 protected abstract String getSrid(); |