diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java @ 88:1b12021905b9

Some CodeCleanup done. ExceptionDocument will now be returned gnv-artifacts/trunk@125 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Thu, 24 Sep 2009 10:45:24 +0000
parents 5eb62df21f9a
children cde042a0a395
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java	Thu Sep 24 10:05:07 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java	Thu Sep 24 10:45:24 2009 +0000
@@ -79,10 +79,12 @@
      */
     @Override
     public Document advance(Document target, CallContext context) {
+        
+        Document result = null;
         if (this.productArtifact == null){
             if (this.current != null){
-                try {
-                    String uuid = Config.getStringXPath(target, "action/uuid/@value"); // TODO: müssen wir für das subartifact eine veränderte uuid führen?
+                
+                    String uuid = Config.getStringXPath(target, "action/uuid/@value");
                     String hash = Config.getStringXPath(target, "action/hash/@value");
                     this.productArtifact = this.current.getArtifactFactory().createArtifact(uuid, context);
                     Document feedDocument =  xmlUtilities.reInitDocument(this.createFeedProductArtifactDocument(uuid, hash));
@@ -93,18 +95,16 @@
                     String targetName =  Config.getStringXPath(descibeDocument, "result/reachable-states/state/@name");
                     Document advanceDocument = xmlUtilities.reInitDocument(this.createAdvanceProductArtifactDocument(uuid, hash, targetName));
                     log.debug("Advance ==> "+this.xmlUtilities.writeDocument2String(advanceDocument));
-                    return this.productArtifact.advance(advanceDocument, context);
-                } catch (RuntimeException e) {
-                    log.error(e,e);
-                }
+                    result =  this.productArtifact.advance(advanceDocument, context);
             }else{
-                log.warn("Artifact is not configured properly. Call feed first.");
-                // TODO Fehlerdokument erzeugen.
+                String msg = "Artifact is not configured properly. Call feed first.";
+                log.error(msg);
+                result =  new ArtifactXMLUtilities().createExceptionReport(msg, XMLUtils.newDocument());
             }
-            return null;
         }else{
-            return this.productArtifact.advance(target, context);
+            result = this.productArtifact.advance(target, context);
         }
+        return result;
     }
     private Document createAdvanceProductArtifactDocument(String uuid, String hash, String targetName){
         Document document = XMLUtils.newDocument();
@@ -193,11 +193,13 @@
             String productName = Config.getStringXPath(target, "action/data/input[@name='product']/@value");
             if (this.products.containsKey(productName)) {
                 this.current = this.products.get(productName);
+                // TODO : success-Dokument erzeugen
+                return null;
             }else{
-                log.error("Product does not exists for "+productName);
-                // TODO: Fehlerdokument erzeugen.
+                String msg = "Product does not exists for "+productName;
+                log.error(msg);
+                return new ArtifactXMLUtilities().createExceptionReport(msg, XMLUtils.newDocument());
             }
-            return null;
         }else{
             return this.productArtifact.feed(target, context);
         }

http://dive4elements.wald.intevation.org