From 9d0287f7bc3411d3c71da1df9c9b6d70dced3e91 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 14 May 2014 06:41:26 +0000
Subject: [PATCH] SSDM-121: Introducing in
 ch.systemsx.cisd.openbis.dss.client.api.v1.DataSet method
 getContainerDataSets().

SVN: 31500
---
 .../openbis/dss/client/api/v1/DataSet.java    | 29 +++++++++++++++++--
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java
index 01a42bf1d11..0c584b2d086 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/v1/DataSet.java
@@ -52,6 +52,8 @@ public class DataSet
 
     private List<DataSet> containedDataSets;
 
+    private List<DataSet> containerDataSets;
+    
     private IDataSetDss dataSetDss;
 
     /* Default constructor needed to create a retry-proxy */
@@ -209,8 +211,10 @@ public class DataSet
 
     /**
      * @see ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet#getContainerOrNull()
+     * @deprecated Use {@link #getContainerDataSets()}
      */
     @Retry
+    @Deprecated
     public DataSet getContainerOrNull()
     {
         final DataSet containerOrNull =
@@ -218,7 +222,7 @@ public class DataSet
                         getMetadata().getContainerOrNull(), null) : null;
         return containerOrNull;
     }
-
+    
     /**
      * Returns <code>true</code>, if result of {@link #getContainerOrNull()} can be trusted and
      * <code>false</code>, if it cannot be trusted because the server is too old to deliver this
@@ -242,8 +246,7 @@ public class DataSet
                     getMetadata().getContainedDataSets();
             for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet primitiveContainedDataSet : primitiveContainedDataSets)
             {
-                DataSet containedDataSet =
-                        new DataSet(facade, dssComponent, primitiveContainedDataSet, null);
+                DataSet containedDataSet = new DataSet(facade, dssComponent, primitiveContainedDataSet, null);
                 containedDataSets.add(containedDataSet);
             }
 
@@ -251,6 +254,26 @@ public class DataSet
         return containedDataSets;
     }
 
+    /**
+     * @see ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet#getContainerDataSets()
+     */
+    @Retry
+    public List<DataSet> getContainerDataSets()
+    {
+        if (null == containerDataSets)
+        {
+            containerDataSets = new ArrayList<DataSet>();
+            List<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> primitiveContainerDataSets =
+                    getMetadata().getContainerDataSets();
+            for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet primitiveContainerDataSet : primitiveContainerDataSets)
+            {
+                DataSet containerDataSet = new DataSet(facade, dssComponent, primitiveContainerDataSet, null);
+                containerDataSets.add(containerDataSet);
+            }
+        }
+        return containedDataSets;
+    }
+    
     /**
      * Returns the primary data set. For a non-container data set, this is itself. For a container
      * data set, this is the one contained data set that is considered primary.
-- 
GitLab