From 056b7b6f2b522c48b632084043a0bac4aa376c45 Mon Sep 17 00:00:00 2001
From: gpawel <gpawel>
Date: Wed, 27 Jun 2012 07:27:42 +0000
Subject: [PATCH] SP-168 BIS-90 : translate link data sets

SVN: 25884
---
 .../openbis/generic/shared/dto/LinkDataPE.java  |  2 +-
 .../shared/translator/DataSetTranslator.java    | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataPE.java
index 3869ab3ee99..5a04bd99536 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataPE.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataPE.java
@@ -77,7 +77,7 @@ public class LinkDataPE extends DataPE
     @Transient
     public LinkDataPE tryAsLinkData()
     {
-        return null;
+        return this;
     }
 
     @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java
index 355c24b0390..4ba726a7840 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java
@@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LinkDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PlaceholderDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
@@ -45,6 +46,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.LinkDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
@@ -146,6 +148,9 @@ public class DataSetTranslator
         if (dataPE.isContainer())
         {
             externalData = translateContainerDataSetProperties(dataPE, baseIndexURL, withDetails);
+        } else if (dataPE.isLinkData())
+        {
+            externalData = translateLinkDataSetProperties(dataPE, baseIndexURL);
         } else if (dataPE instanceof ExternalDataPE)
         {
             externalData = translateDataSetProperties((ExternalDataPE) dataPE);
@@ -206,6 +211,18 @@ public class DataSetTranslator
         return containerDataSet;
     }
 
+    private static LinkDataSet translateLinkDataSetProperties(DataPE dataPE, String baseIndexURL)
+    {
+        LinkDataSet linkDataSet = new LinkDataSet();
+        LinkDataPE linkDataPE = dataPE.tryAsLinkData();
+
+        linkDataSet.setExternalDataManagementSystem(ExternalDataManagementSystemTranslator
+                .translate(linkDataPE.getExternalDataManagementSystem()));
+        linkDataSet.setExternalCode(linkDataPE.getExternalCode());
+
+        return linkDataSet;
+    }
+
     private static ExternalData translateDataSetProperties(ExternalDataPE externalDataPE)
     {
         DataSet dataSet = new DataSet();
-- 
GitLab