Mercurial > dive4elements > gnv-client
diff gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java @ 164:5570d9b3282f
Implemented a better GUI-Structure for displaying the Statisticdata. issue83
gnv/trunk@327 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Thu, 12 Nov 2009 10:22:30 +0000 |
parents | 013d47662161 |
children | 183850730a90 |
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java Wed Nov 11 16:24:02 2009 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java Thu Nov 12 10:22:30 2009 +0000 @@ -39,7 +39,9 @@ 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.ArtifactStatisticsSet; import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticValue; +import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticsSet; import de.intevation.gnv.artifactdatabase.objects.DefaultOutputMode; import de.intevation.gnv.artifactdatabase.objects.DefaultOutputParameter; import de.intevation.gnv.artifactdatabase.objects.InputParameter; @@ -688,38 +690,48 @@ } - public Collection<ArtifactStatisticValue> calculateStatistics( + public Collection<ArtifactStatisticsSet> calculateStatistics( ArtifactObject artifactFactory, ArtifactObject currentArtifact) throws ArtifactDatabaseClientException { log.debug("DefaultArtifactDatabaseClient.calculateStatistics"); - Collection<ArtifactStatisticValue> result; + Collection<ArtifactStatisticsSet> resultValues = null; + try { - result = null; String targetName = "statistics"; String requestUrl = this.getArtifactUrl(artifactFactory, - currentArtifact) - + "/" + targetName; + 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)); + + NodeList statisticSetNodes = xmlUtils.getNodeSetXPath(resultDocument, + "/statistics/statistic"); + resultValues = new ArrayList<ArtifactStatisticsSet> + (statisticSetNodes.getLength()); + for (int i = 0; i < statisticSetNodes.getLength(); i++) { + Element statisticSetNode = (Element)statisticSetNodes.item(i); + String name = statisticSetNode.getAttribute("name"); + ArtifactStatisticsSet set = + new DefaultArtifactStatisticsSet(name); + NodeList resultNodes = xmlUtils.getNodeSetXPath(statisticSetNode, + "statistic-value"); + if (resultNodes != null) { + for (int j = 0; j < resultNodes.getLength(); j++) { + Element statisticNode = (Element)resultNodes.item(j); + String statisticName = statisticNode. + getAttribute("name"); + String statisticValue = statisticNode. + getAttribute("value"); + set.addStatisticValues( + new DefaultArtifactStatisticValue + (statisticName,statisticValue)); + } } + resultValues.add(set); } } } catch (IOException e) { @@ -727,7 +739,7 @@ throw new ArtifactDatabaseClientException(e); } - return result; + return resultValues; } public void setLocale(Locale locale) {