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 4ef7ff32f79551c1c11c2ca963994c61fc2276d8..f0f39a3a9c60c64dd03e68a51c18396579ae6f49 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 90bf12e8f1c615d58cd276409b870d83fe6c81c0..c2bcef7cbcd5e281d48bf10daa478bb90f8c7b36 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 d9ffa369f599ec82f6c7e6742d37d9d58c1bec30..9e028d68c872b372326b5061eb86082d5689d58f 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()); + } }