ref #9907: fix missing treeIndex in taxonNodeDto
authorKatja Luther <k.luther@bgbm.org>
Tue, 4 Jan 2022 12:45:43 +0000 (13:45 +0100)
committerKatja Luther <k.luther@bgbm.org>
Tue, 4 Jan 2022 12:45:43 +0000 (13:45 +0100)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dto/SortableTaxonNodeQueryResult.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dto/TaxonNodeDto.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java

index f9dd2333ecc3ea5c01ac27e701e8a738b85b0db2..21aaf828c7540cd6f4759300631a32c0cb6c4e12 100644 (file)
@@ -20,6 +20,8 @@ public class SortableTaxonNodeQueryResult {
 
     protected UUID taxonNodeUuid;
     protected Integer taxonNodeId;
+    protected String treeIndex;
+    protected UUID taxonUuid;
     protected String taxonTitleCache;
     protected String nameTitleCache;
     protected Rank nameRank = Rank.UNKNOWN_RANK();
@@ -31,10 +33,12 @@ public class SortableTaxonNodeQueryResult {
      * @param taxonTitleCache
      * @param nameRank {@link Rank.#UNKNOWN_RANK()} will be used in case this is <code>null</code>
      */
-    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String taxonTitleCache, String nameTitleCache,
+    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String treeIndex, UUID taxonUuid, String taxonTitleCache, String nameTitleCache,
             Rank nameRank, UUID parentNodeUuid) {
         this.taxonNodeUuid = taxonNodeUuid;
         this.taxonNodeId = taxonNodeId;
+        this.treeIndex = treeIndex;
+        this.taxonUuid = taxonUuid;
         this.taxonTitleCache = taxonTitleCache;
         this.nameTitleCache = nameTitleCache;
         if(nameRank != null){
@@ -49,21 +53,33 @@ public class SortableTaxonNodeQueryResult {
      * @param taxonTitleCache
      * @param nameRank {@link Rank.#UNKNOWN_RANK()} will be used in case this is <code>null</code>
      */
-    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String taxonTitleCache,
+    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String treeIndex, UUID taxonUuid, String taxonTitleCache,
             Rank nameRank, UUID parentNodeUuid) {
-        this(taxonNodeUuid, taxonNodeId, taxonTitleCache, null, nameRank, parentNodeUuid);
+        this(taxonNodeUuid, taxonNodeId, treeIndex, taxonUuid, taxonTitleCache, null, nameRank, parentNodeUuid);
     }
 
 
+    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String treeIndex, UUID taxonUuid, String taxonTitleCache,
+            Rank nameRank) {
+        this(taxonNodeUuid, taxonNodeId, treeIndex, taxonUuid, taxonTitleCache, null, nameRank, null);
+    }
+
     public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String taxonTitleCache,
             Rank nameRank) {
-        this(taxonNodeUuid, taxonNodeId, taxonTitleCache, null, nameRank, null);
+        this(taxonNodeUuid, taxonNodeId, null, null, taxonTitleCache, null, nameRank, null);
+    }
+    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, UUID taxonUuid, String taxonTitleCache, UUID parentNodeUuid) {
+        this(taxonNodeUuid, taxonNodeId, null, taxonUuid, taxonTitleCache, null, parentNodeUuid);
     }
     public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String taxonTitleCache, UUID parentNodeUuid) {
-        this(taxonNodeUuid, taxonNodeId, taxonTitleCache, null, parentNodeUuid);
+        this(taxonNodeUuid, taxonNodeId, null, null, taxonTitleCache, null, parentNodeUuid);
+    }
+
+    public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, UUID taxonUuid, String taxonTitleCache) {
+        this(taxonNodeUuid, taxonNodeId, null, taxonUuid, taxonTitleCache, null, null);
     }
     public SortableTaxonNodeQueryResult(UUID taxonNodeUuid, Integer taxonNodeId, String taxonTitleCache) {
-        this(taxonNodeUuid, taxonNodeId, taxonTitleCache, null, null);
+        this(taxonNodeUuid, taxonNodeId, null, null, taxonTitleCache, null, null);
     }
 
     public UUID getTaxonNodeUuid() {
@@ -72,6 +88,20 @@ public class SortableTaxonNodeQueryResult {
     public void setTaxonNodeUuid(UUID taxonNodeUuid) {
         this.taxonNodeUuid = taxonNodeUuid;
     }
+
+    public String getTreeIndex() {
+        return treeIndex;
+    }
+    public void setTreeIndex(String treeIndex) {
+        this.treeIndex = treeIndex;
+    }
+    public UUID getTaxonUuid() {
+        return taxonUuid;
+    }
+    public void setTaxonUuid(UUID taxonUuid) {
+        this.taxonUuid = taxonUuid;
+    }
+
     /**
      * @return the parentNodeUuid
      */
index 555cafe7d991a83626885525153d940470d1d201..9f058989ed5cff1eeb679b7db0d1de34db3c013e 100644 (file)
@@ -92,10 +92,11 @@ public class TaxonNodeDto extends UuidAndTitleCache<ITaxonTreeNode> {
 
     }
 
-    public TaxonNodeDto(UUID uuid, Integer id, String nameTitleCache, String taxonTitleCache, Integer rankOrderIndex, UUID parentUuid) {
+    public TaxonNodeDto(UUID uuid, Integer id, String treeIndex, String nameTitleCache, String taxonTitleCache, Integer rankOrderIndex, UUID parentUuid) {
         super(uuid, id, nameTitleCache, taxonTitleCache);
         this.rankOrderIndex = rankOrderIndex;
         this.parentUUID = parentUuid;
+        this.treeIndex = treeIndex;
     }
 
     public TaxonNodeDto(UUID uuid, Integer id, String titleCache, Integer rankOrderIndex) {
index 0913059773c27aa3fa999128e77e6dd51bea9d46..7e677ceb49a130053c51f656fb7200b599e5cff5 100644 (file)
@@ -1206,6 +1206,9 @@ public class TaxonNodeServiceImpl
         TaxonNodeDto commonParent = null;
         List<String> treePath = null;
         for (TaxonNodeDto nodeDto : nodes) {
+            if (nodeDto == null){
+                continue;
+            }
             String nodeTreeIndex = nodeDto.getTreeIndex();
             nodeTreeIndex = nodeTreeIndex.replaceFirst("#", "");
             String[] split = nodeTreeIndex.split("#");