From 68c748dc869ae39f1d91a5bfd88eb3daed8c17f4 Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Wed, 27 Jun 2012 12:14:37 +0000 Subject: [PATCH] SP-169 BIS-90 add definitions for a new linked data set SVN: 25897 --- .../generic/server/business/bo/DataBO.java | 39 ++++++++++++++ .../generic/shared/dto/NewLinkDataSet.java | 51 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewLinkDataSet.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java index 956ce9fe8aa..565239c837a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java @@ -56,6 +56,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.LinkDataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.NewContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; +import ch.systemsx.cisd.openbis.generic.shared.dto.NewLinkDataSet; import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; @@ -175,9 +176,13 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO assert sample != null : "Undefined sample."; boolean isContainer = newData instanceof NewContainerDataSet; + boolean isLink = newData instanceof NewLinkDataSet; if (isContainer) { define((NewContainerDataSet) newData, sourceType); + } else if (isLink) + { + define((NewLinkDataSet) newData, sourceType); } else { define(newData, sourceType); @@ -197,9 +202,13 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO assert experiment != null : "Undefined experiment."; boolean isContainer = newData instanceof NewContainerDataSet; + boolean isLink = newData instanceof NewLinkDataSet; if (isContainer) { define((NewContainerDataSet) newData, sourceType); + } else if (isLink) + { + define((NewLinkDataSet) newData, sourceType); } else { define(newData, sourceType); @@ -317,6 +326,36 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO data = dataPE; } + private void define(NewLinkDataSet newData, SourceType sourceType) + { + assert newData != null : "Undefined data."; + final DataSetType dataSetType = newData.getDataSetType(); + assert dataSetType != null : "Undefined data set type."; + assert sourceType != null : "Undefined source type."; + + final LinkDataPE dataPE = new LinkDataPE(); + + dataPE.setExternalCode(newData.getExternalCode()); + + String code = newData.getExternalDataManagementSystemCode(); + ExternalDataManagementSystemPE externalDMS = + getExternalDataManagementSystemDAO().tryToFindExternalDataManagementSystemByCode( + code); + dataPE.setExternalDataManagementSystem(externalDMS); + + dataPE.setDataProducerCode(newData.getDataProducerCode()); + dataPE.setProductionDate(newData.getProductionDate()); + dataPE.setCode(newData.getCode()); + dataPE.setDataSetType(getDataSetType(dataSetType)); + dataPE.setRegistrator(tryToGetRegistrator(newData)); + dataStore = getDataStoreDAO().tryToFindDataStoreByCode(newData.getDataStoreCode()); + dataPE.setDataStore(dataStore); + defineDataSetProperties(dataPE, convertToDataSetProperties(newData.getDataSetProperties())); + dataPE.setDerived(sourceType == SourceType.DERIVED); + + data = dataPE; + } + private PersonPE tryToGetRegistrator(NewExternalData newData) { String userId = newData.getUserId(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewLinkDataSet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewLinkDataSet.java new file mode 100644 index 00000000000..a39104f066d --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewLinkDataSet.java @@ -0,0 +1,51 @@ +/* + * Copyright 2011 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.shared.dto; + + +/** + * @author Jakub Straszewski + */ +public class NewLinkDataSet extends NewExternalData +{ + private static final long serialVersionUID = 1L; + + private String externalDataManagementSystemCode; + + private String externalCode; + + public String getExternalDataManagementSystemCode() + { + return externalDataManagementSystemCode; + } + + public void setExternalDataManagementSystemCode(String externalDataManagementSystemCode) + { + this.externalDataManagementSystemCode = externalDataManagementSystemCode; + } + + public String getExternalCode() + { + return externalCode; + } + + public void setExternalCode(String externalCode) + { + this.externalCode = externalCode; + } + +} -- GitLab