From 19bea31dfb3ef2c3d699c5a2568181b52106ad3e Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Tue, 26 Jun 2012 15:09:16 +0000 Subject: [PATCH] SP-169 BIS-90 add link data set features to the data set updates SVN: 25875 --- .../api/v1/impl/ConversionUtils.java | 17 ++++++++++++-- .../api/v1/impl/DataSetUpdatable.java | 23 ++++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java index e249084b8df..f0bcccd5e55 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ConversionUtils.java @@ -28,6 +28,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet; 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.NewAttachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial; @@ -251,8 +252,13 @@ public class ConversionUtils dataSetUpdate.setModifiedContainedDatasetCodesOrNull(containedCodes); } - String[] parentCodes = Code.extractCodesToArray(externalData.getParents()); - dataSetUpdate.setModifiedParentDatasetCodesOrNull(parentCodes); + if (externalData.isLinkData()) + { + LinkDataSet link = externalData.tryGetAsLinkDataSet(); + dataSetUpdate.setExternalCode(link.getExternalCode()); + dataSetUpdate.setExternalDataManagementSystemCode(link + .getExternalDataManagementSystem().getCode()); + } return dataSetUpdate; } @@ -294,6 +300,13 @@ public class ConversionUtils dataSetUpdate.setModifiedContainedDatasetCodesOrNull(containedCodes); } + if (externalData.isLinkData()) + { + dataSetUpdate.setExternalCode(dataSet.getExternalCode()); + dataSetUpdate.setExternalDataManagementSystemCode(dataSet + .getExternalDataManagementSystem().getCode()); + } + String[] parentCodes = Code.extractCodesToArray(externalData.getParents()); dataSetUpdate.setModifiedParentDatasetCodesOrNull(parentCodes); diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetUpdatable.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetUpdatable.java index e96b7ad4532..14828c8a7a7 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetUpdatable.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetUpdatable.java @@ -208,18 +208,29 @@ public class DataSetUpdatable extends DataSetImmutable implements IDataSetUpdata public void setExternalDataManagementSystem( IExternalDataManagementSystemImmutable externalDataManagementSystem) { + if (isLinkDataSet()) + { + ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem dummy = + new ExternalDataManagementSystem(); + dummy.setCode(externalDataManagementSystem.getCode()); - ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem dummy = - new ExternalDataManagementSystem(); - dummy.setCode(externalDataManagementSystem.getCode()); - - dataSet.tryGetAsLinkDataSet().setExternalDataManagementSystem(dummy); + dataSet.tryGetAsLinkDataSet().setExternalDataManagementSystem(dummy); + } else + { + // ignore + } } @Override public void setExternalCode(String externalCode) { - dataSet.tryGetAsLinkDataSet().setExternalCode(externalCode); + if (isLinkDataSet()) + { + dataSet.tryGetAsLinkDataSet().setExternalCode(externalCode); + } else + { + // ignore + } } } -- GitLab