From 3b63382d0e746dfdb1e6e73b5ff89f369494d5cf Mon Sep 17 00:00:00 2001 From: "f.revilla" Date: Mon, 5 Jul 2010 08:18:11 +0000 Subject: [PATCH] minor changes --- .../api/service/DescriptionServiceImpl.java | 5 ++-- .../cdm/api/service/DistributionTree.java | 29 +++++++++---------- .../cdm/api/service/IDescriptionService.java | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java index 459a0afdd6..bf018a9e21 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java @@ -206,13 +206,14 @@ public class DescriptionServiceImpl extends IdentifiableServiceBase taxonDescriptions, - Set omitLevels){ + Set omitLevels, + List propertyPaths){ DistributionTree tree = new DistributionTree(); List distList = new ArrayList(); for (TaxonDescription taxonDescription : taxonDescriptions) { - taxonDescription = (TaxonDescription) dao.load(taxonDescription.getUuid()); + taxonDescription = (TaxonDescription) dao.load(taxonDescription.getUuid(), propertyPaths); Set elements = taxonDescription.getElements(); for (DescriptionElementBase element : elements) { if(element.isInstanceOf(Distribution.class)){ diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DistributionTree.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DistributionTree.java index 080c748599..6d7f41f62d 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DistributionTree.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DistributionTree.java @@ -19,7 +19,7 @@ public class DistributionTree extends Tree{ NamedArea area = new NamedArea(); Distribution data = Distribution.NewInstance(); data.setArea(area); - data.addModifyingText("test", Language.ENGLISH()); + //data.addModifyingText("test", Language.ENGLISH()); TreeNode rootElement = new TreeNode(); List> children = new ArrayList>(); @@ -96,34 +96,33 @@ public class DistributionTree extends Tree{ NamedAreaLevel level, List areaHierarchieList, TreeNode root){ + boolean containsChild, sameLevel = false; TreeNode highestDistNode; TreeNode child;// the new child to add or the child to follow through the tree //if the list to merge is empty finish the execution if (areaHierarchieList.isEmpty()) { return; } - //getting the highest area and inserting it into the tree + //getting the highest area and inserting it (if neccesary) into the tree NamedArea highestArea = areaHierarchieList.get(0); - //NamedAreaLevel highestAreaLevel = (NamedAreaLevel) HibernateProxyHelper.deproxy(highestArea.getLevel()); - //NamedAreaLevel currentLevel = (NamedAreaLevel) HibernateProxyHelper.deproxy(level); - //if (highestAreaLevel.compareTo(currentLevel) == 0){//if distribution.status is relevant - - if (highestArea.getLevel().getLabel().compareTo(level.getLabel()) == 0){ - highestDistNode = new TreeNode(distribution);//distribution.area comes from proxy!!!! + sameLevel = highestArea.getLevel().getLabel().compareTo(level.getLabel()) == 0; + if (sameLevel){ + highestDistNode = new TreeNode(distribution); }else{ //if distribution.status is not relevant Distribution data = Distribution.NewInstance(highestArea, null); highestDistNode = new TreeNode(data); } - if(highestDistNode.data.getModifyingText().isEmpty()){ - highestDistNode.data.addModifyingText("test", Language.ENGLISH()); - } - - if (root.getChildren().isEmpty() || !containsChild(root, highestDistNode)) { + containsChild = containsChild(root, highestDistNode); + if (root.getChildren().isEmpty() || !containsChild) { //if the highest level is not on the depth-1 of the tree we add it. //child = highestDistNode; - child = new TreeNode(highestDistNode.data); - root.addChild(child);//child.getData().getArea().getUuid().toString().equals("8cfc1722-e1e8-49d3-95a7-9879de6de490"); + child = new TreeNode(highestDistNode.data); + root.addChild(child); }else { + //adding the sources to the child + if(containsChild && sameLevel){ + getChild(root, highestDistNode).data.getSources().addAll(highestDistNode.data.getSources()); + } //if the deepth-1 of the tree contains the highest area level //get the subtree or create it in order to continuing merging child = getChild(root,highestDistNode); diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IDescriptionService.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IDescriptionService.java index f85445eced..20e2a5a92d 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IDescriptionService.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IDescriptionService.java @@ -241,6 +241,6 @@ public interface IDescriptionService extends IIdentifiableEntityService getDescriptionElementsForTaxon(Taxon taxon, Set features, Class type, Integer pageSize, Integer pageNumber, List propertyPaths); - public DistributionTree getOrderedDistributionsB(Set taxonDescriptions, Set levels); + public DistributionTree getOrderedDistributionsB(Set taxonDescriptions, Set levels, List propertyPaths); } \ No newline at end of file -- 2.34.1