From 66df78f6b0a3537679573bf4407f46fc22a35e2a Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Thu, 10 Mar 2011 10:23:11 +0000 Subject: [PATCH] LMS-2102 Adding listing of data set types to the general information service. SVN: 20287 --- .../api/v1/GeneralInformationService.java | 11 ++++++-- .../generic/server/api/v1/Translator.java | 26 +++++++++++++++++++ .../api/v1/GeneralInformationServiceTest.java | 17 ++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java index 4ef7ff32f79..f0f39a3a9c6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java @@ -372,7 +372,14 @@ public class GeneralInformationService extends AbstractServer<IGeneralInformatio public List<DataSetType> listDataSetTypes(String sessionToken) { - // TODO Auto-generated method stub - return new ArrayList<DataSetType>(); + List<ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType> privateDataSetTypes = + commonServer.listDataSetTypes(sessionToken); + + ArrayList<DataSetType> dataSetTypes = new ArrayList<DataSetType>(); + for (ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType privateDataSetType : privateDataSetTypes) + { + dataSetTypes.add(Translator.translate(privateDataSetType)); + } + return dataSetTypes; } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/Translator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/Translator.java index 90bf12e8f1c..c2bcef7cbcd 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/Translator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/Translator.java @@ -20,8 +20,12 @@ import java.util.List; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet.DataSetInitializer; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetType; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetType.DataSetTypeInitializer; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Experiment.ExperimentInitializer; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.PropertyType; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.PropertyType.PropertyTypeInitializer; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Role; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Sample.SampleInitializer; @@ -89,6 +93,28 @@ public class Translator return new Experiment(initializer); } + static DataSetType translate( + ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType privateDataSetType) + { + DataSetTypeInitializer initializer = new DataSetTypeInitializer(); + initializer.setCode(privateDataSetType.getCode()); + + List<ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypePropertyType> dstpts = + privateDataSetType.getAssignedPropertyTypes(); + for (ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypePropertyType dstpt : dstpts) + { + PropertyTypeInitializer ptInitializer = new PropertyTypeInitializer(); + ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType propertyType = + dstpt.getPropertyType(); + ptInitializer.setCode(propertyType.getCode()); + ptInitializer.setLabel(propertyType.getLabel()); + ptInitializer.setDescription(propertyType.getDescription()); + initializer.addPropertyType(new PropertyType(ptInitializer)); + } + + return new DataSetType(initializer); + } + private Translator() { } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java index d9ffa369f59..9e028d68c87 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationServiceTest.java @@ -33,8 +33,10 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Project; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Role; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria; @@ -216,4 +218,19 @@ public class GeneralInformationServiceTest extends SystemTestCase assertEquals("Experiment should be: " + resultExperiment.getIdentifier(), true, identifierIsOk); } + + public void testListDataSetTypes() + { + List<DataSetType> dataSetTypes = generalInformationService.listDataSetTypes(sessionToken); + assertEquals(3, dataSetTypes.size()); + + DataSetType dataSetType; + PropertyType propertyType; + dataSetType = dataSetTypes.get(0); + assertEquals("HCS_IMAGE", dataSetType.getCode()); + List<PropertyType> propertyTypes = dataSetType.getPropertyTypes(); + propertyType = propertyTypes.get(0); + assertEquals("COMMENT", propertyType.getCode()); + assertEquals("Comment", propertyType.getLabel()); + } } -- GitLab