From 28af1bf5fcf0adbe1d19dac5c255959ecae6e9e0 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Wed, 18 May 2011 08:14:14 +0000 Subject: [PATCH] [LMS-2104] fixed translation of virtual data sets and got rid of ExternalDataTranslator (DataSetTranslator is used instead) SVN: 21356 --- .../ArchivingPostRegistrationTask.java | 29 +- .../dss/generic/server/UploadingCommand.java | 31 +- .../generic/server/UploadingCommandTest.java | 6 +- .../openbis/generic/server/ETLService.java | 1 + .../shared/translator/DataSetTranslator.java | 24 +- .../translator/ExternalDataTranslator.java | 322 ------------------ .../web/server/CommonClientServiceTest.java | 4 +- .../generic/server/CommonServerTest.java | 6 +- ...orTest.java => DataSetTranslatorTest.java} | 12 +- .../translator/SimpleDataSetHelperTest.java | 21 +- .../server/logic/PlateContentLoader.java | 4 +- 11 files changed, 76 insertions(+), 384 deletions(-) delete mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java rename openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/{ExternalDataTranslatorTest.java => DataSetTranslatorTest.java} (95%) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java index c4073b06168..328725e8fdc 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java @@ -39,7 +39,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; /** * A post-registration task that archives datasets. @@ -71,7 +71,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask { return new Executor(dataSetCode); } - + private final class Executor implements IPostRegistrationTaskExecutor { private final String dataSetCode; @@ -129,7 +129,8 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask String failedMessage = String.format("Eager archiving of dataset '%s' has failed. \n", dataSetCode); message.append(failedMessage); - for (Status status : processingStatus.getErrorStatuses()) { + for (Status status : processingStatus.getErrorStatuses()) + { if (status.tryGetErrorMessage() != null) { message.append("Error encountered : " + status.tryGetErrorMessage()); @@ -140,7 +141,7 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask String.format("If you wish to archive the dataset in the future, " + "you can configure an '%s'.", AutoArchiverTask.class.getSimpleName()); message.append(footer); - + notificationLog.error(message); } @@ -161,13 +162,13 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask } ExternalData data = dataList.get(0); - return ExternalDataTranslator.translateToDescription(data); + return DataSetTranslator.translateToDescription(data); } - private static ArchiverTaskContext createArchiverContext() { - return new ArchiverTaskContext(ServiceProvider.getDataStoreService().getDataSetDirectoryProvider()); + return new ArchiverTaskContext(ServiceProvider.getDataStoreService() + .getDataSetDirectoryProvider()); } private static class ArchivingCleanupTask implements ICleanupTask @@ -184,14 +185,16 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask public void cleanup(ISimpleLogger logger) { IEncapsulatedOpenBISService openBISService = ServiceProvider.getOpenBISService(); - boolean statusUpdated = openBISService - .compareAndSetDataSetStatus(dataSetCode, BACKUP_PENDING, AVAILABLE, false); - - if (statusUpdated == false) { - // invalid data set status, do not continue + boolean statusUpdated = + openBISService.compareAndSetDataSetStatus(dataSetCode, BACKUP_PENDING, + AVAILABLE, false); + + if (statusUpdated == false) + { + // invalid data set status, do not continue return; } - + IArchiverPlugin archiver = ServiceProvider.getDataStoreService().getArchiverPlugin(); DatasetDescription dataSet = tryGetDatasetDescription(dataSetCode, openBISService); if (archiver != null && dataSet != null) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommand.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommand.java index 107a12581a4..fdf4ebceba0 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommand.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommand.java @@ -58,7 +58,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext; import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; import de.schlichtherle.util.zip.ZipEntry; import de.schlichtherle.util.zip.ZipOutputStream; @@ -72,11 +72,11 @@ class UploadingCommand implements IDataSetCommand { private static final long serialVersionUID = 1L; - private static final Logger operationLog = - LogFactory.getLogger(LogCategory.OPERATION, UploadingCommand.class); + private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, + UploadingCommand.class); - private static final Logger notificationLog = - LogFactory.getLogger(LogCategory.NOTIFY, UploadingCommand.class); + private static final Logger notificationLog = LogFactory.getLogger(LogCategory.NOTIFY, + UploadingCommand.class); private final class ProgressListener implements IProgressListener { @@ -139,8 +139,8 @@ class UploadingCommand implements IDataSetCommand private static final char DELIM = '\t'; - private static final DateFormat DATE_FORMAT_PATTERN = - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); + private static final DateFormat DATE_FORMAT_PATTERN = new SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss Z"); private final StringBuilder builder = new StringBuilder(); @@ -416,7 +416,7 @@ class UploadingCommand implements IDataSetCommand assert dataSet != null : "container datasets are currently not supported by DSS client"; DatasetDescription dataSetDescription = - ExternalDataTranslator.translateToDescription(dataSet); + DataSetTranslator.translateToDescription(dataSet); File dataSetFile = dataSetDirectoryProvider.getDataSetDirectory(dataSetDescription); if (dataSetFile.exists() == false) { @@ -426,13 +426,14 @@ class UploadingCommand implements IDataSetCommand String newRootPath = createRootPath(dataSet); try { - addEntry(zipOutputStream, newRootPath + "/meta-data.tsv", System - .currentTimeMillis(), new ByteArrayInputStream(createMetaData(dataSet) - .getBytes())); + addEntry(zipOutputStream, newRootPath + "/meta-data.tsv", + System.currentTimeMillis(), + new ByteArrayInputStream(createMetaData(dataSet).getBytes())); } catch (IOException ex) { - notificationLog.error("Couldn't add meta date for data set '" - + dataSet.getCode() + "' to zip file.", ex); + notificationLog.error( + "Couldn't add meta date for data set '" + dataSet.getCode() + + "' to zip file.", ex); return false; } try @@ -441,8 +442,8 @@ class UploadingCommand implements IDataSetCommand dataSetFile); } catch (IOException ex) { - notificationLog.error("Couldn't add data set '" + dataSetFile + "' to zip file.", - ex); + notificationLog.error("Couldn't add data set '" + dataSetFile + + "' to zip file.", ex); return false; } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java index 075387fd602..3be648335bc 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java @@ -65,8 +65,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; /** * @author Franz-Josef Elmer @@ -183,11 +183,11 @@ public class UploadingCommandTest extends AssertJUnit createTestData(LOCATION1); ds2 = createTestData(LOCATION2); ExternalData dataSet1 = - ExternalDataTranslator.translate(createDataSet("1", LOCATION1), "?", + DataSetTranslator.translate(createDataSet("1", LOCATION1), "?", ExperimentTranslator.LoadableFields.PROPERTIES); System.out.println("ds1:" + dataSet1.getExperiment().getProperties()); ExternalData dataSet2 = - ExternalDataTranslator.translate(createDataSet("2", LOCATION2), "?", + DataSetTranslator.translate(createDataSet("2", LOCATION2), "?", ExperimentTranslator.LoadableFields.PROPERTIES); dataSets = Arrays.<ExternalData> asList(dataSet1, dataSet2); command = diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java index 4b6832c2363..7fefd401cec 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java @@ -752,6 +752,7 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET dataBO.loadByCode(dataSetCode); dataBO.enrichWithParentsAndExperiment(); dataBO.enrichWithProperties(); + dataBO.enrichWithContainedDataSets(); DataPE dataPE = dataBO.tryGetData(); if (null == dataPE) return null; 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 6e0e1cb9179..5af3d6c1832 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 @@ -142,7 +142,7 @@ public class DataSetTranslator ExternalData externalData = null; if (dataPE.isContainer()) { - externalData = translateContainerDataSetProperties(dataPE, withDetails); + externalData = translateContainerDataSetProperties(dataPE, baseIndexURL, withDetails); } else { externalData = translateDataSetProperties(dataPE); @@ -189,12 +189,12 @@ public class DataSetTranslator } private static ExternalData translateContainerDataSetProperties(DataPE dataPE, - boolean withComponents) + String baseIndexURL, boolean withComponents) { ContainerDataSet containerDataSet = new ContainerDataSet(); if (withComponents) { - setContainedDataSets(dataPE, containerDataSet); + setContainedDataSets(dataPE, containerDataSet, baseIndexURL); } return containerDataSet; } @@ -307,14 +307,15 @@ public class DataSetTranslator externalData.setChildren(children); } - private static void setContainedDataSets(DataPE dataPE, ContainerDataSet containerDataSet) + private static void setContainedDataSets(DataPE dataPE, ContainerDataSet containerDataSet, + String baseIndexURL) { List<ExternalData> containedDataSets = new ArrayList<ExternalData>(); if (HibernateUtils.isInitialized(dataPE.getContainedDataSets())) { for (DataPE childPE : dataPE.getContainedDataSets()) { - containedDataSets.add(translateBasicProperties(childPE)); + containedDataSets.add(translate(childPE, baseIndexURL)); } } containerDataSet.setContainedDataSets(containedDataSets); @@ -326,7 +327,18 @@ public class DataSetTranslator */ private static ExternalData translateBasicProperties(DataPE dataPE) { - ExternalData result = new ExternalData(); + ExternalData result = null; + if (dataPE.isContainer()) + { + result = new ContainerDataSet(); + } else if (dataPE.isExternalData()) + { + result = new DataSet(); + } else + { + assert dataPE.isPlaceholder() == true; + result = new ExternalData(); + } result.setId(HibernateUtils.getId(dataPE)); result.setCode(dataPE.getCode()); result.setDataSetType(DataSetTypeTranslator.translate(dataPE.getDataSetType(), diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java deleted file mode 100644 index c1a589d54ba..00000000000 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Copyright 2009 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.translator; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; - -import ch.systemsx.cisd.common.types.BooleanOrUnknown; -import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; -import ch.systemsx.cisd.openbis.generic.shared.basic.PermlinkUtilities; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; -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.Invalidation; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; -import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; -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.InvalidationPE; -import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE; -import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator.LoadableFields; -import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; - -/** - * @author Franz-Josef Elmer - */ -public class ExternalDataTranslator -{ - private ExternalDataTranslator() - { - } - - public static DatasetDescription translateToDescription(ExternalData data) - { - DatasetDescription description = new DatasetDescription(); - description.setDatasetCode(data.getCode()); - - DataSet dataSet = data.tryGetAsDataSet(); - if (dataSet != null) - { - description.setDataSetLocation(dataSet.getLocation()); - description.setSpeedHint(dataSet.getSpeedHint()); - } - description.setDataSetSize(data.getSize()); - DataSetType dataSetType = data.getDataSetType(); - if (dataSetType != null) - { - description.setDatasetTypeCode(dataSetType.getCode()); - } - Experiment experiment = data.getExperiment(); - if (experiment != null) - { - description.setExperimentCode(experiment.getCode()); - description.setExperimentIdentifier(experiment.getIdentifier()); - Project project = experiment.getProject(); - if (project != null) - { - description.setProjectCode(project.getCode()); - Space space = project.getSpace(); - if (space != null) - { - description.setSpaceCode(space.getCode()); - DatabaseInstance instance = space.getInstance(); - if (instance != null) - { - description.setDatabaseInstanceCode(instance.getCode()); - } - } - } - ExperimentType experimentType = experiment.getExperimentType(); - if (experimentType != null) - { - description.setExperimentTypeCode(experimentType.getCode()); - } - } - Sample sample = data.getSample(); - if (sample != null) - { - description.setSampleCode(sample.getCode()); - description.setSampleIdentifier(sample.getIdentifier()); - SampleType sampleType = sample.getSampleType(); - if (sampleType != null) - { - description.setSampleTypeCode(sampleType.getCode()); - } - } - return description; - } - - public static List<ExternalData> translate(List<ExternalDataPE> list, - String defaultDataStoreBaseURL, String baseIndexURL) - { - ArrayList<ExternalData> result = new ArrayList<ExternalData>(list.size()); - for (ExternalDataPE externalDataPE : list) - { - ExternalData data = - translate(externalDataPE, baseIndexURL, true, - ExperimentTranslator.LoadableFields.PROPERTIES); - result.add(data); - } - return result; - } - - public static ExternalData translate(ExternalDataPE externalDataPE, String baseIndexURL, - final LoadableFields... withExperimentFields) - { - return translate(externalDataPE, baseIndexURL, true, withExperimentFields); - } - - public static ExternalData translate(ExternalDataPE externalDataPE, String baseIndexURL, - boolean loadSampleProperties, final LoadableFields... withExperimentFields) - { - ExternalData externalData = null; - if (externalDataPE.isContainer()) - { - externalData = translateContainerDataSetProperties(externalDataPE); - } else - { - externalData = translateDataSetProperties(externalDataPE); - } - - SamplePE sampleOrNull = externalDataPE.tryGetSample(); - ExperimentPE experiment = externalDataPE.getExperiment(); - externalData.setId(HibernateUtils.getId(externalDataPE)); - externalData.setCode(externalDataPE.getCode()); - externalData.setDataProducerCode(externalDataPE.getDataProducerCode()); - externalData.setDataSetType(DataSetTypeTranslator.translate( - externalDataPE.getDataSetType(), new HashMap<PropertyTypePE, PropertyType>())); - externalData.setDerived(externalDataPE.isDerived()); - externalData.setInvalidation(tryToGetInvalidation(sampleOrNull, experiment)); - externalData.setSize(externalDataPE.getSize()); - final Collection<ExternalData> parents = new HashSet<ExternalData>(); - externalData.setParents(parents); - for (DataPE parentPE : externalDataPE.getParents()) - { - parents.add(translateBasicProperties(parentPE)); - } - setChildren(externalDataPE, externalData); - externalData.setProductionDate(externalDataPE.getProductionDate()); - externalData.setModificationDate(externalDataPE.getModificationDate()); - externalData.setRegistrator(PersonTranslator.translate(externalDataPE.getRegistrator())); - externalData.setRegistrationDate(externalDataPE.getRegistrationDate()); - externalData.setSample(sampleOrNull == null ? null : fillSample(new Sample(), sampleOrNull, - loadSampleProperties)); - externalData.setDataStore(DataStoreTranslator.translate(externalDataPE.getDataStore())); - externalData.setPermlink(PermlinkUtilities.createPermlinkURL(baseIndexURL, - EntityKind.DATA_SET, externalData.getIdentifier())); - setProperties(externalDataPE, externalData); - externalData.setExperiment(ExperimentTranslator.translate(experiment, baseIndexURL, - withExperimentFields)); - - return externalData; - } - - private static ExternalData translateContainerDataSetProperties(ExternalDataPE externalDataPE) - { - ContainerDataSet containerDataSet = new ContainerDataSet(); - setContainedDataSets(externalDataPE, containerDataSet); - return containerDataSet; - } - - private static ExternalData translateDataSetProperties(ExternalDataPE externalDataPE) - { - DataSet dataSet = new DataSet(); - dataSet.setComplete(BooleanOrUnknown.tryToResolve(externalDataPE.getComplete())); - dataSet.setStatus(externalDataPE.getStatus()); - dataSet.setSpeedHint(externalDataPE.getSpeedHint()); - dataSet.setFileFormatType(TypeTranslator.translate(externalDataPE.getFileFormatType())); - dataSet.setLocation(externalDataPE.getLocation()); - dataSet.setLocatorType(TypeTranslator.translate(externalDataPE.getLocatorType())); - return dataSet; - } - - private static void setProperties(ExternalDataPE externalDataPE, ExternalData externalData) - { - if (HibernateUtils.isInitialized(externalDataPE.getProperties())) - { - externalData.setDataSetProperties(EntityPropertyTranslator.translate( - externalDataPE.getProperties(), new HashMap<PropertyTypePE, PropertyType>())); - } else - { - externalData.setDataSetProperties(new ArrayList<IEntityProperty>()); - } - } - - private static Invalidation tryToGetInvalidation(SamplePE sampleOrNull, ExperimentPE experiment) - { - InvalidationPE invalidationOrNull; - if (sampleOrNull != null) - { - invalidationOrNull = tryToGetInvalidationPE(sampleOrNull); - } else - { - invalidationOrNull = tryToGetInvalidationPE(experiment); - } - return translateInvalidation(invalidationOrNull); - } - - private static InvalidationPE tryToGetInvalidationPE(SamplePE sampleOrNull) - { - if (sampleOrNull != null) - { - return sampleOrNull.getInvalidation(); - } else - { - return null; - } - } - - private static InvalidationPE tryToGetInvalidationPE(ExperimentPE experiment) - { - if (experiment != null) - { - return experiment.getInvalidation(); - } else - { - return null; - } - } - - private static Invalidation translateInvalidation(InvalidationPE invalidationPE) - { - if (invalidationPE == null) - { - return null; - } - Invalidation result = new Invalidation(); - result.setReason(invalidationPE.getReason()); - result.setRegistrationDate(invalidationPE.getRegistrationDate()); - result.setRegistrator(PersonTranslator.translate(invalidationPE.getRegistrator())); - return result; - } - - private static Sample fillSample(Sample sample, SamplePE samplePE, boolean loadSampleProperties) - { - sample.setId(HibernateUtils.getId(samplePE)); - sample.setPermId(samplePE.getPermId()); - SampleTranslator.setCodes(sample, samplePE); - sample.setInvalidation(translateInvalidation(samplePE.getInvalidation())); - sample.setSampleType(TypeTranslator.translate(samplePE.getSampleType())); - sample.setIdentifier(samplePE.getSampleIdentifier().toString()); - sample.setRegistrationDate(samplePE.getRegistrationDate()); - sample.setRegistrator(PersonTranslator.translate(samplePE.getRegistrator())); - sample.setSpace(GroupTranslator.translate(samplePE.getSpace())); - if (loadSampleProperties) - { - sample.setProperties(EntityPropertyTranslator.translate(samplePE.getProperties(), - new HashMap<PropertyTypePE, PropertyType>())); - } - return sample; - } - - private static void setChildren(ExternalDataPE externalDataPE, ExternalData externalData) - { - List<ExternalData> children = new ArrayList<ExternalData>(); - if (HibernateUtils.isInitialized(externalDataPE.getChildren())) - { - for (DataPE childPE : externalDataPE.getChildren()) - { - children.add(translateBasicProperties(childPE)); - } - } - externalData.setChildren(children); - } - - private static void setContainedDataSets(DataPE externalDataPE, - ContainerDataSet containerDataSet) - { - List<ExternalData> containedDataSets = new ArrayList<ExternalData>(); - if (HibernateUtils.isInitialized(externalDataPE.getContainedDataSets())) - { - for (DataPE childPE : externalDataPE.getContainedDataSets()) - { - containedDataSets.add(translateBasicProperties(childPE)); - } - } - containerDataSet.setContainedDataSets(containedDataSets); - } - - /** - * Creates an <var>externalData</var> from <var>dataPE</vra> an fills it with all data needed by - * {@link IEntityInformationHolder}. - */ - private static ExternalData translateBasicProperties(DataPE dataPE) - { - ExternalData result = new ExternalData(); - result.setId(HibernateUtils.getId(dataPE)); - result.setCode(dataPE.getCode()); - result.setDataSetType(DataSetTypeTranslator.translate(dataPE.getDataSetType(), - new HashMap<PropertyTypePE, PropertyType>())); - return result; - } -} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java index 7eaab9e4fd0..13f04c7e468 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java @@ -78,7 +78,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyPE; import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyTermPE; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTranslator; /** @@ -503,7 +503,7 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest locatorTypePE.setCode("LOCATOR"); externalDataPE.setLocatorType(locatorTypePE); final ExternalData externalData = - ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL, false); + DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL, false); context.checking(new Expectations() { { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java index 7b2ef980948..d77ba062187 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java @@ -92,9 +92,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.builders.ExperimentTypePEBuil import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.DtoConverters; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.GroupTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTypeTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.PersonTranslator; @@ -566,7 +566,7 @@ public final class CommonServerTest extends AbstractServerTestCase dataStorePE.setCode("DST"); externalDataPE.setDataStore(dataStorePE); final ExternalData externalData = - ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL); + DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL); prepareGetSession(); final boolean showOnlyDirectlyConnected = true; context.checking(new Expectations() @@ -605,7 +605,7 @@ public final class CommonServerTest extends AbstractServerTestCase dataStorePE.setCode("DST"); externalDataPE.setDataStore(dataStorePE); final ExternalData externalData = - ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL); + DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL); prepareGetSession(); context.checking(new Expectations() { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java similarity index 95% rename from openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java rename to openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java index 99f5402e31d..df264d94afa 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslatorTest.java @@ -47,7 +47,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; /** * @author Franz-Josef Elmer */ -public class ExternalDataTranslatorTest extends AssertJUnit +// TODO write test with translation of components +public class DataSetTranslatorTest extends AssertJUnit { private static final String DOWNLOAD_URL = "url"; @@ -58,8 +59,7 @@ public class ExternalDataTranslatorTest extends AssertJUnit { ExternalDataPE externalDataPE = new ExternalDataPE(); externalDataPE.setDataStore(createStore()); - ExternalData data = - ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL); + ExternalData data = DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL); DataSet translated = data.tryGetAsDataSet(); @@ -124,8 +124,7 @@ public class ExternalDataTranslatorTest extends AssertJUnit samplePE.setInvalidation(invalidationPE); externalDataPE.setSampleAcquiredFrom(samplePE); - ExternalData data = - ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL); + ExternalData data = DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL); DataSet translated = data.tryGetAsDataSet(); @@ -180,8 +179,7 @@ public class ExternalDataTranslatorTest extends AssertJUnit externalDataPE.addParent(createParent("parent-1")); externalDataPE.addParent(createParent("parent-2")); - ExternalData externalData = - ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL); + ExternalData externalData = DataSetTranslator.translate(externalDataPE, BASE_INDEX_URL); assertEquals("my-experiment", externalData.getExperiment().getCode()); assertEquals(2, externalData.getParents().size()); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelperTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelperTest.java index 2f17ab45700..151eedb87c4 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelperTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelperTest.java @@ -39,8 +39,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO; /** - * - * * @author Franz-Josef Elmer */ public class SimpleDataSetHelperTest extends AssertJUnit @@ -52,24 +50,25 @@ public class SimpleDataSetHelperTest extends AssertJUnit ExternalData ds2 = create(2); ExternalData ds3 = new ContainerDataSet(); - List<SimpleDataSetInformationDTO> list = SimpleDataSetHelper.translate(Arrays.asList(ds1, ds2, ds3)); - + List<SimpleDataSetInformationDTO> list = + SimpleDataSetHelper.translate(Arrays.asList(ds1, ds2, ds3)); + check(1, list.get(0)); check(2, list.get(1)); assertEquals("42", list.get(1).getDataSetShareId()); assertEquals(2, list.size()); } - - @Test + + @Test public void testTranslateDescription() { - DatasetDescription description = ExternalDataTranslator.translateToDescription(create(1)); - + DatasetDescription description = DataSetTranslator.translateToDescription(create(1)); + SimpleDataSetInformationDTO result = SimpleDataSetHelper.translate(description); - + check(1, result); } - + private ExternalData create(long id) { DataSet dataSet = new DataSet(); @@ -112,7 +111,7 @@ public class SimpleDataSetHelperTest extends AssertJUnit dataSet.setStatus(DataSetArchivingStatus.ARCHIVED); return dataSet; } - + public void check(long expectedID, SimpleDataSetInformationDTO dataSet) { assertEquals("ds-" + expectedID, dataSet.getDataSetCode()); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java index 749c2dd0722..e1e09851b7f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java @@ -39,8 +39,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.EntityPropertyTranslator; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; import ch.systemsx.cisd.openbis.plugin.screening.server.IScreeningBusinessObjectFactory; @@ -163,7 +163,7 @@ public class PlateContentLoader private ExternalData translate(ExternalDataPE externalData) { - return ExternalDataTranslator.translate(externalData, session.getBaseIndexURL()); + return DataSetTranslator.translate(externalData, session.getBaseIndexURL()); } private PlateContent getPlateContent(TechId plateId) -- GitLab