diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.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 969faa37a11b
children cde042a0a395
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Thu Sep 24 10:05:07 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Thu Sep 24 10:45:24 2009 +0000
@@ -92,39 +92,47 @@
     @Override
     public Document advance(Document target, CallContext context) {
         Document result = XMLUtils.newDocument();
-        if (this.current != null){
-            String transitionName = this.readTransitionName(target);
-            if (this.current.isTransitionReachable(transitionName)){
-                // 1. Prüfung ob Transition valide ist
-                if (this.current.validate()){
-                    
-                    try {
-                        Transition nextStep = this.transitions.get(transitionName);
-                        // 2.Ergebnisse Berechnen
-                        this.current.advance();
-                        // 3. Ergebnisse übergeben
-                        nextStep.setDescibeData(this.current.getDescibeData());
-                        nextStep.putInputData(this.current.getInputData());
-                        // 4. Umschalten auf neue Transistion
-                        this.current = nextStep;
-                    } catch (TransitionException e) {
-                        log.error(e,e);
-                        // TODO: Errormmessage senden.
+        try {
+            if (this.current != null){
+                String transitionName = this.readTransitionName(target);
+                if (this.current.isTransitionReachable(transitionName)){
+                    // 1. Prüfung ob Transition valide ist
+                    if (this.current.validate()){
+                        
+                        try {
+                            Transition nextStep = this.transitions.get(transitionName);
+                            // 2.Ergebnisse Berechnen
+                            this.current.advance();
+                            // 3. Ergebnisse übergeben
+                            nextStep.setDescibeData(this.current.getDescibeData());
+                            nextStep.putInputData(this.current.getInputData());
+                            // 4. Umschalten auf neue Transistion
+                            this.current = nextStep;
+                        } catch (TransitionException e) {
+                            log.error(e,e);
+                            result = new ArtifactXMLUtilities().createExceptionReport(e.getLocalizedMessage(), XMLUtils.newDocument());
+                        }
+                        
+                    }else{
+                        String msg = "Advance nicht möglich, da die Bedingungen für den Übergang " +
+                                    "in den neuen Zustand noch nicht gegeben ist.";
+                        log.error(msg);
+                        result = new ArtifactXMLUtilities().createExceptionReport(msg, XMLUtils.newDocument());
                     }
                     
                 }else{
-                    log.error("Advance nicht möglich, da die Bedingungen für den Übergang " +
-                                "in den neuen Zustand noch nicht gegeben ist.");
-                    // TODO: Errormmessage senden.
+                    String msg = "Transitionsübergang wird nicht unterstützt.";
+                    log.error(msg);
+                    result = new ArtifactXMLUtilities().createExceptionReport(msg, XMLUtils.newDocument());
                 }
-                
             }else{
-                log.error("Transitionsübergang wird nicht unterstützt.");
-                // TODO: Errormmessage senden.
+                String msg = "Kein Transitionsschritt aktiviert.";
+                log.error(msg);
+                result = new ArtifactXMLUtilities().createExceptionReport(msg, XMLUtils.newDocument());
             }
-        }else{
-            log.error("Kein Transitionsschritt aktiviert.");
-            // TODO: Errormmessage senden.
+        } catch (Exception e) {
+            log.error(e,e);
+            result = new ArtifactXMLUtilities().createExceptionReport(e.getLocalizedMessage(), XMLUtils.newDocument());
         }
         return result;
     }
@@ -154,7 +162,7 @@
             }
         } catch (TransitionException e) {
             log.error(e,e);
-            //TODO: Fehlerdokumenterzeugen.
+            return new ArtifactXMLUtilities().createExceptionReport(e.getLocalizedMessage(), XMLUtils.newDocument());
         }
         return result;
     }
@@ -196,14 +204,13 @@
     protected Document createDescibeOutput(){
         log.debug("GNVArtifactBase.createDescibeOutput");
         Document document = XMLUtils.newDocument();
-        Element rootNode = this.createRootNode(document);
+         Element rootNode = this.createRootNode(document);
         this.createHeader(rootNode, document, "describe");
         this.createOutputs(rootNode, document);
         this.createCurrentState(rootNode, document);
         this.createReachableStates(rootNode, document);
         this.createModel(rootNode, document);
         this.createUserInterface(rootNode, document);
-        
         return document;
     }
     
@@ -236,6 +243,7 @@
                 String value = states.next();
                 Element currentNode = xmlUtilities.createArtifactElement(document,"state");
                 currentNode.setAttribute("name", value);
+                log.debug("Reachable State: "+value);
                 currentNode.setAttribute("description", transitions.get(value).getDescription());
                 stateNode.appendChild(currentNode);
             }

http://dive4elements.wald.intevation.org