Mercurial > dive4elements > gnv-client
comparison 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 |
comparison
equal
deleted
inserted
replaced
163:1fe52a0cbd1f | 164:5570d9b3282f |
---|---|
37 import de.intevation.gnv.artifactdatabase.objects.Artifact; | 37 import de.intevation.gnv.artifactdatabase.objects.Artifact; |
38 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; | 38 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; |
39 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; | 39 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; |
40 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; | 40 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; |
41 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticValue; | 41 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticValue; |
42 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet; | |
42 import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticValue; | 43 import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticValue; |
44 import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticsSet; | |
43 import de.intevation.gnv.artifactdatabase.objects.DefaultOutputMode; | 45 import de.intevation.gnv.artifactdatabase.objects.DefaultOutputMode; |
44 import de.intevation.gnv.artifactdatabase.objects.DefaultOutputParameter; | 46 import de.intevation.gnv.artifactdatabase.objects.DefaultOutputParameter; |
45 import de.intevation.gnv.artifactdatabase.objects.InputParameter; | 47 import de.intevation.gnv.artifactdatabase.objects.InputParameter; |
46 import de.intevation.gnv.artifactdatabase.objects.OutputMode; | 48 import de.intevation.gnv.artifactdatabase.objects.OutputMode; |
47 import de.intevation.gnv.artifactdatabase.objects.OutputParameter; | 49 import de.intevation.gnv.artifactdatabase.objects.OutputParameter; |
686 throw new ArtifactDatabaseClientException(message); | 688 throw new ArtifactDatabaseClientException(message); |
687 } | 689 } |
688 | 690 |
689 } | 691 } |
690 | 692 |
691 public Collection<ArtifactStatisticValue> calculateStatistics( | 693 public Collection<ArtifactStatisticsSet> calculateStatistics( |
692 ArtifactObject artifactFactory, | 694 ArtifactObject artifactFactory, |
693 ArtifactObject currentArtifact) | 695 ArtifactObject currentArtifact) |
694 throws ArtifactDatabaseClientException { | 696 throws ArtifactDatabaseClientException { |
695 log.debug("DefaultArtifactDatabaseClient.calculateStatistics"); | 697 log.debug("DefaultArtifactDatabaseClient.calculateStatistics"); |
696 Collection<ArtifactStatisticValue> result; | 698 Collection<ArtifactStatisticsSet> resultValues = null; |
699 | |
697 try { | 700 try { |
698 result = null; | |
699 String targetName = "statistics"; | 701 String targetName = "statistics"; |
700 String requestUrl = this.getArtifactUrl(artifactFactory, | 702 String requestUrl = this.getArtifactUrl(artifactFactory, |
701 currentArtifact) | 703 currentArtifact) + "/" + targetName; |
702 + "/" + targetName; | |
703 Document requestBody = this.createOutRequestBody(currentArtifact, | 704 Document requestBody = this.createOutRequestBody(currentArtifact, |
704 targetName, "text/xml", null); | 705 targetName, "text/xml", null); |
705 XMLUtils xmlUtils = new XMLUtils(); | 706 XMLUtils xmlUtils = new XMLUtils(); |
706 InputStream is = this.doPostRequest(requestUrl, requestBody); | 707 InputStream is = this.doPostRequest(requestUrl, requestBody); |
707 Document resultDocument = xmlUtils.readDocument(is); | 708 Document resultDocument = xmlUtils.readDocument(is); |
708 if (resultDocument != null) { | 709 if (resultDocument != null) { |
709 NodeList resultNodes = xmlUtils.getNodeSetXPath(resultDocument, | 710 |
710 "/statistic-values/statistic"); | 711 NodeList statisticSetNodes = xmlUtils.getNodeSetXPath(resultDocument, |
711 if (resultNodes != null) { | 712 "/statistics/statistic"); |
712 result = new ArrayList<ArtifactStatisticValue>(resultNodes | 713 resultValues = new ArrayList<ArtifactStatisticsSet> |
713 .getLength()); | 714 (statisticSetNodes.getLength()); |
714 for (int i = 0; i < resultNodes.getLength(); i++) { | 715 for (int i = 0; i < statisticSetNodes.getLength(); i++) { |
715 Node statisticNode = resultNodes.item(i); | 716 Element statisticSetNode = (Element)statisticSetNodes.item(i); |
716 String name = xmlUtils.getStringXPath(statisticNode, | 717 String name = statisticSetNode.getAttribute("name"); |
717 "@name"); | 718 ArtifactStatisticsSet set = |
718 String value = xmlUtils.getStringXPath(statisticNode, | 719 new DefaultArtifactStatisticsSet(name); |
719 "@value"); | 720 NodeList resultNodes = xmlUtils.getNodeSetXPath(statisticSetNode, |
720 result.add(new DefaultArtifactStatisticValue(name, | 721 "statistic-value"); |
721 value)); | 722 if (resultNodes != null) { |
723 for (int j = 0; j < resultNodes.getLength(); j++) { | |
724 Element statisticNode = (Element)resultNodes.item(j); | |
725 String statisticName = statisticNode. | |
726 getAttribute("name"); | |
727 String statisticValue = statisticNode. | |
728 getAttribute("value"); | |
729 set.addStatisticValues( | |
730 new DefaultArtifactStatisticValue | |
731 (statisticName,statisticValue)); | |
732 } | |
722 } | 733 } |
734 resultValues.add(set); | |
723 } | 735 } |
724 } | 736 } |
725 } catch (IOException e) { | 737 } catch (IOException e) { |
726 log.error(e, e); | 738 log.error(e, e); |
727 throw new ArtifactDatabaseClientException(e); | 739 throw new ArtifactDatabaseClientException(e); |
728 } | 740 } |
729 | 741 |
730 return result; | 742 return resultValues; |
731 } | 743 } |
732 | 744 |
733 public void setLocale(Locale locale) { | 745 public void setLocale(Locale locale) { |
734 this.locale = locale; | 746 this.locale = locale; |
735 } | 747 } |