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 }

http://dive4elements.wald.intevation.org