diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java @ 481:20dde2b6f1b5

Added end of life support for artifact states. Implemented ZIP download for "Horizontalschnitte". Laid some tracks for WMS (un-)publishing. gnv-artifacts/trunk@554 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 17 Jan 2010 16:34:11 +0000
parents d47b478e662b
children d265f5dc2979
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Sun Jan 17 12:22:56 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Sun Jan 17 16:34:11 2010 +0000
@@ -61,9 +61,9 @@
 import org.w3c.dom.NodeList;
 
 /**
- * @author Tim Englich <tim.englich@intevation.de>
- * @author Ingo Weinzierl <ingo.weinzierl@intevation.de>
- * 
+ * @author Tim Englich         (tim.englich@intevation.de)
+ * @author Ingo Weinzierl      (ingo.weinzierl@intevation.de)
+ * @author Sascha L. Teichmann (sascha.teichmann@intevation.de)
  */
 public abstract class GNVArtifactBase extends DefaultArtifact {
     /**
@@ -170,6 +170,10 @@
                 next.putInputData(current.getInputData(), identifier);
                 next.setParent(current);
 
+                if (current != null) {
+                    current.endOfLife(context.globalContext());
+                }
+
                 // 3. Switch to next State
                 current = next;
 
@@ -190,6 +194,10 @@
                 // remove data from future states from cache
                 resetDescribeData(current, identifier, targetState);
 
+                if (current != null) {
+                    current.endOfLife(context.globalContext());
+                }
+
                 current = next;
 
                 result = createReport(
@@ -814,7 +822,7 @@
         }
     }
 
-    protected String readOutputType(Document document) {
+    protected static String readOutputType(Document document) {
         String value = XMLUtils.xpathString(
             document, XPATH_OUTPUT_NAME, ArtifactNamespaceContext.INSTANCE);
         return value;
@@ -824,5 +832,13 @@
     public void setProduct(Product product) {
         this.product = product;        
     }
+
+    public void endOfLife(Object globalContext) {
+        super.endOfLife(globalContext);
+
+        if (current != null) {
+            current.endOfLife(globalContext);
+        }
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

http://dive4elements.wald.intevation.org