From 83e11743ae9e63c14a16ea47c9bc70170eb96493 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 15 Feb 2011 12:48:42 +0000 Subject: [PATCH] [LMS-2048] batch update of managed properties for data sets with overwriting behaviour SVN: 19974 --- .../server/business/IPropertiesBatchManager.java | 7 ++++++- .../server/business/PropertiesBatchManager.java | 14 ++++++++++++-- .../generic/shared/basic/dto/NewDataSet.java | 2 +- .../plugin/generic/server/GenericServer.java | 2 ++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java index 5421fb5849e..4774b67a47e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java @@ -19,8 +19,10 @@ package ch.systemsx.cisd.openbis.generic.server.business; import java.util.List; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewBasicExperiment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; @@ -39,6 +41,9 @@ public interface IPropertiesBatchManager public void manageProperties(ExperimentTypePE experimentType, List<? extends NewBasicExperiment> experiments, PersonPE registrator); - public void manageProperties(MaterialTypePE materialType, List<NewMaterial> newMaterials, + public void manageProperties(MaterialTypePE materialType, List<NewMaterial> materials, PersonPE registrator); + + public void manageProperties(DataSetTypePE dataSetType, List<NewDataSet> dataSets, + PersonPE tryGetPerson); } \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java index 1cefc167383..894fe7ccf2d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java @@ -37,10 +37,12 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IPropertiesBean; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewBasicExperiment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.ValidationException; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE; @@ -85,12 +87,20 @@ public class PropertiesBatchManager implements IPropertiesBatchManager managePropertiesBeans(experiments, entityTypePropertyTypes, registrator); } - public void manageProperties(MaterialTypePE materialType, List<NewMaterial> newMaterials, + public void manageProperties(MaterialTypePE materialType, List<NewMaterial> materials, PersonPE registrator) { Set<? extends EntityTypePropertyTypePE> entityTypePropertyTypes = materialType.getMaterialTypePropertyTypes(); - managePropertiesBeans(newMaterials, entityTypePropertyTypes, registrator); + managePropertiesBeans(materials, entityTypePropertyTypes, registrator); + } + + public void manageProperties(DataSetTypePE dataSetType, List<NewDataSet> dataSets, + PersonPE registrator) + { + Set<? extends EntityTypePropertyTypePE> entityTypePropertyTypes = + dataSetType.getDataSetTypePropertyTypes(); + managePropertiesBeans(dataSets, entityTypePropertyTypes, registrator); } private void managePropertiesBeans(List<? extends IPropertiesBean> propertiesBeans, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewDataSet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewDataSet.java index 84dcb0cf22f..98667587819 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewDataSet.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewDataSet.java @@ -23,7 +23,7 @@ import java.util.Set; * * @author Izabela Adamczyk */ -public class NewDataSet extends Code<NewDataSet> implements Comparable<NewDataSet> +public class NewDataSet extends Code<NewDataSet> implements Comparable<NewDataSet>, IPropertiesBean { private static final long serialVersionUID = ServiceVersionHolder.VERSION; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java index 41202439819..930cd2327e2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java @@ -399,6 +399,8 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen throw UserFailureException.fromTemplate("Data set type with code '%s' does not exist.", dataSets.getDataSetType()); } + getPropertiesBatchManager().manageProperties(dataSetType, newDataSets, + session.tryGetPerson()); getDataSetTypeSlaveServerPlugin(dataSetType).updateDataSets(session, newDataSets); } -- GitLab