From 6ece6b1252f507806477b775e3e8def5d3eceac6 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 9 Sep 2009 13:39:18 +0000
Subject: [PATCH] LMS-1165 add getter/setter for parent data set codes.
 Deprecate getter/setter for single parent data set code.

SVN: 12534
---
 .../generic/shared/dto/ExtractableData.java   | 22 +++++++++++++++----
 .../business/bo/ExternalDataBOTest.java       |  5 ++++-
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java
index 270196c547e..9555a0247cc 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java
@@ -18,7 +18,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import ch.systemsx.cisd.common.annotation.CollectionMapping;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
@@ -38,8 +40,8 @@ public class ExtractableData extends Code<ExtractableData>
     private Date productionDate;
 
     private String dataProducerCode;
-
-    private String parentDataSetCode;
+    
+    private Set<String> parentDataSetCodes = new LinkedHashSet<String>();
 
     private List<NewProperty> dataSetProperties = new ArrayList<NewProperty>();
 
@@ -83,14 +85,26 @@ public class ExtractableData extends Code<ExtractableData>
         this.dataProducerCode = dataProducerCode;
     }
 
+    @Deprecated
     public final String getParentDataSetCode()
     {
-        return parentDataSetCode;
+        return parentDataSetCodes.isEmpty() ? null : parentDataSetCodes.iterator().next();
     }
 
+    @Deprecated
     public final void setParentDataSetCode(String parentDataSetCode)
     {
-        this.parentDataSetCode = parentDataSetCode;
+        parentDataSetCodes.add(parentDataSetCode);
+    }
+    
+    public final Set<String> getParentDataSetCodes()
+    {
+        return parentDataSetCodes;
+    }
+
+    public final void setParentDataSetCodes(Set<String> parentDataSetCodes)
+    {
+        this.parentDataSetCodes = parentDataSetCodes;
     }
 
     @CollectionMapping(collectionClass = ArrayList.class, elementClass = NewProperty.class)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java
index 31a56819cd7..5b06b0dafd8 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java
@@ -591,7 +591,10 @@ public class ExternalDataBOTest extends AbstractBOTest
     {
         NewExternalData data = new NewExternalData();
         data.setCode(DATA_SET_CODE);
-        data.setParentDataSetCode(parentDataSetCodeOrNull);
+        if (parentDataSetCodeOrNull != null)
+        {
+            data.setParentDataSetCodes(Collections.singleton(parentDataSetCodeOrNull));
+        }
         data.setDataProducerCode(DATA_PRODUCER_CODE);
         data.setProductionDate(PRODUCTION_DATE);
         data.setComplete(BooleanOrUnknown.U);
-- 
GitLab