diff gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java @ 32:0f4362d75e9e

Adding StatisticsOutput to the GUI gnv/trunk@142 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 28 Sep 2009 09:36:02 +0000
parents 07e9c137a2f1
children 25fdec8b4c69
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java	Fri Sep 25 15:11:26 2009 +0000
+++ b/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java	Mon Sep 28 09:36:02 2009 +0000
@@ -30,6 +30,8 @@
 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription;
 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory;
 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
+import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticValue;
+import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticValue;
 import de.intevation.gnv.artifactdatabase.objects.DefaultOutputMode;
 import de.intevation.gnv.artifactdatabase.objects.DefaultOutputParameter;
 import de.intevation.gnv.artifactdatabase.objects.InputParameter;
@@ -535,4 +537,36 @@
         }
         
     }
+
+    public Collection<ArtifactStatisticValue> calculateStatistics(
+            ArtifactObject artifactFactory, ArtifactObject currentArtifact) throws ArtifactDatabaseClientException{
+        log.debug("DefaultArtifactDatabaseClient.calculateStatistics") ;
+        Collection<ArtifactStatisticValue> result;
+        try {
+            result = null;
+            String targetName = "statistics";
+            String requestUrl = this.getArtifactUrl(artifactFactory, currentArtifact)+"/"+targetName;
+            Document requestBody = this.createOutRequestBody(currentArtifact, targetName, "text/xml", null);
+            XMLUtils xmlUtils = new XMLUtils();
+            InputStream is  = this.doPostRequest(requestUrl, requestBody);
+            Document resultDocument = xmlUtils.readDocument(is);
+            if (resultDocument != null){
+                NodeList resultNodes = xmlUtils.getNodeSetXPath(resultDocument, "/statistic-values/statistic");
+                if (resultNodes != null){
+                    result = new ArrayList<ArtifactStatisticValue>(resultNodes.getLength());
+                    for (int i = 0; i < resultNodes.getLength(); i++){
+                        Node statisticNode = resultNodes.item(i);
+                        String name = xmlUtils.getStringXPath(statisticNode, "@name");
+                        String value = xmlUtils.getStringXPath(statisticNode, "@value");
+                        result.add(new DefaultArtifactStatisticValue(name, value));
+                    }
+                }
+            }
+        } catch (IOException e) {
+            log.error(e,e);
+            throw new ArtifactDatabaseClientException(e); 
+        }
+        
+        return result;
+    }
 }

http://dive4elements.wald.intevation.org