From f4017b140f34b07dc516740f71d0b813c2f8c704 Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Wed, 27 Jun 2012 12:13:26 +0000 Subject: [PATCH] SP-169 BIS-90 create container data set algorithm and link data set algorithms inheriting from abstract no file algorithm SVN: 25893 --- .../ContainerDataSetStorageAlgorithm.java | 63 ++++++++++++++++++ .../LinkDataSetStorageAlgorithm.java | 65 +++++++++++++++++++ .../api/v1/impl/ConversionUtils.java | 28 ++++++++ 3 files changed, 156 insertions(+) create mode 100644 datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/ContainerDataSetStorageAlgorithm.java create mode 100644 datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/LinkDataSetStorageAlgorithm.java diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/ContainerDataSetStorageAlgorithm.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/ContainerDataSetStorageAlgorithm.java new file mode 100644 index 00000000000..be25056355c --- /dev/null +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/ContainerDataSetStorageAlgorithm.java @@ -0,0 +1,63 @@ +/* + * Copyright 2012 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.etlserver.registrator; + +import java.io.File; + +import ch.systemsx.cisd.common.filesystem.IFileOperations; +import ch.systemsx.cisd.common.mail.IMailClient; +import ch.systemsx.cisd.etlserver.IDataStoreStrategy; +import ch.systemsx.cisd.etlserver.IStorageProcessorTransactional; +import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.ConversionUtils; +import ch.systemsx.cisd.etlserver.registrator.recovery.DataSetStorageRecoveryAlgorithm; +import ch.systemsx.cisd.etlserver.validation.IDataSetValidator; +import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; +import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; + +/** + * @author Jakub Straszewski + */ +public class ContainerDataSetStorageAlgorithm<T extends DataSetInformation> extends + AbstractNoFileDataSetStorageAlgorithm<T> +{ + public ContainerDataSetStorageAlgorithm(File incomingDataSetFile, + DataSetRegistrationDetails<? extends T> registrationDetails, + IDataStoreStrategy dataStoreStrategy, IStorageProcessorTransactional storageProcessor, + IDataSetValidator dataSetValidator, String dataStoreCode, + IFileOperations fileOperations, IMailClient mailClient, File stagingDirectory, + File precommitDirectory) + { + super(incomingDataSetFile, registrationDetails, dataStoreStrategy, storageProcessor, + dataSetValidator, dataStoreCode, fileOperations, mailClient, stagingDirectory, + precommitDirectory); + } + + public ContainerDataSetStorageAlgorithm(IDataStoreStrategy dataStoreStrategy, + IStorageProcessorTransactional storageProcessor, IFileOperations fileOperations, + IMailClient mailClient, DataSetStorageRecoveryAlgorithm<T> recoveryAlgorithm) + { + super(dataStoreStrategy, storageProcessor, fileOperations, mailClient, recoveryAlgorithm); + // TODO Auto-generated constructor stub + } + + @Override + public NewExternalData createExternalData() + { + return ConversionUtils.convertToNewContainerDataSet(getRegistrationDetails(), + getDataStoreCode()); + } +} diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/LinkDataSetStorageAlgorithm.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/LinkDataSetStorageAlgorithm.java new file mode 100644 index 00000000000..dbadcca8f83 --- /dev/null +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/LinkDataSetStorageAlgorithm.java @@ -0,0 +1,65 @@ +/* + * Copyright 2012 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.etlserver.registrator; + +import java.io.File; + +import ch.systemsx.cisd.common.filesystem.IFileOperations; +import ch.systemsx.cisd.common.mail.IMailClient; +import ch.systemsx.cisd.etlserver.IDataStoreStrategy; +import ch.systemsx.cisd.etlserver.IStorageProcessorTransactional; +import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.ConversionUtils; +import ch.systemsx.cisd.etlserver.registrator.recovery.DataSetStorageRecoveryAlgorithm; +import ch.systemsx.cisd.etlserver.validation.IDataSetValidator; +import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; +import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; + +/** + * @author Jakub Straszewski + */ +public class LinkDataSetStorageAlgorithm<T extends DataSetInformation> extends + AbstractNoFileDataSetStorageAlgorithm<T> +{ + + public LinkDataSetStorageAlgorithm(File incomingDataSetFile, + DataSetRegistrationDetails<? extends T> registrationDetails, + IDataStoreStrategy dataStoreStrategy, IStorageProcessorTransactional storageProcessor, + IDataSetValidator dataSetValidator, String dataStoreCode, + IFileOperations fileOperations, IMailClient mailClient, File stagingDirectory, + File precommitDirectory) + { + super(incomingDataSetFile, registrationDetails, dataStoreStrategy, storageProcessor, + dataSetValidator, dataStoreCode, fileOperations, mailClient, stagingDirectory, + precommitDirectory); + } + + public LinkDataSetStorageAlgorithm(IDataStoreStrategy dataStoreStrategy, + IStorageProcessorTransactional storageProcessor, IFileOperations fileOperations, + IMailClient mailClient, DataSetStorageRecoveryAlgorithm<T> recoveryAlgorithm) + { + super(dataStoreStrategy, storageProcessor, fileOperations, mailClient, recoveryAlgorithm); + // TODO Auto-generated constructor stub + } + + @Override + public NewExternalData createExternalData() + { + return ConversionUtils + .convertToNewLinkDataSet(getRegistrationDetails(), + getDataStoreCode()); + } +} 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 d0b5d69c1a5..a6b60e9265c 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 @@ -41,6 +41,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUpdatesDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.NewContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.dto.NewDataSet; 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.SampleUpdatesDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.StorageFormat; @@ -190,6 +191,33 @@ public class ConversionUtils return data; } + public static NewLinkDataSet convertToNewLinkDataSet( + DataSetRegistrationDetails<?> registrationDetails, String dataStoreCode) + { + DataSetInformation dataSetInformation = registrationDetails.getDataSetInformation(); + + NewLinkDataSet data = new NewLinkDataSet(); + data.setExternalDataManagementSystemCode(dataSetInformation + .getExternalDataManagementSystem()); + data.setExternalCode(dataSetInformation.getExternalCode()); + + data.setUserId(dataSetInformation.getUploadingUserIdOrNull()); + data.setUserEMail(dataSetInformation.tryGetUploadingUserEmail()); + data.setExtractableData(dataSetInformation.getExtractableData()); + data.setDataSetType(registrationDetails.getDataSetType()); + data.setMeasured(registrationDetails.isMeasuredData()); + data.setDataStoreCode(dataStoreCode); + data.setExperimentIdentifierOrNull(dataSetInformation.getExperimentIdentifier()); + data.setSampleIdentifierOrNull(dataSetInformation.getSampleIdentifier()); + data.setParentDataSetCodes(dataSetInformation.getParentDataSetCodes()); + + List<NewProperty> newProperties = + dataSetInformation.getExtractableData().getDataSetProperties(); + data.getExtractableData().setDataSetProperties(newProperties); + + return data; + } + public static NewContainerDataSet convertToNewContainerDataSet( DataSetRegistrationDetails<?> registrationDetails, String dataStoreCode) { -- GitLab