From 4091804b3e2e4110862893876eb8fd16eefa66b6 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Thu, 14 Jun 2012 11:29:28 +0000
Subject: [PATCH] BIS-41 SP-57 Use the DataSetBatchUpdatesDTO in
 performEntityOperations

SVN: 25701
---
 ...ProteinResultDataSetParentLinkingTask.java | 15 +++++++---
 ...einResultDataSetParentLinkingTaskTest.java | 29 +++++++++----------
 2 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java
index cb236acd8b2..98ff871ae1a 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTask.java
@@ -32,6 +32,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetBatchUpdateDetails;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
@@ -42,7 +43,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSpace;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUpdatesDTO;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetBatchUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SampleUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
@@ -83,7 +84,7 @@ public class ProteinResultDataSetParentLinkingTask implements IMaintenanceTask
     @Override
     public void execute()
     {
-        List<DataSetUpdatesDTO> dataSetUpdates = new ArrayList<DataSetUpdatesDTO>();
+        List<DataSetBatchUpdatesDTO> dataSetUpdates = new ArrayList<DataSetBatchUpdatesDTO>();
         List<Project> projects = service.listProjects();
         for (Project project : projects)
         {
@@ -118,14 +119,20 @@ public class ProteinResultDataSetParentLinkingTask implements IMaintenanceTask
                         continue;
                     }
                     DataSet dataSet = (DataSet) ds;
-                    DataSetUpdatesDTO update = new DataSetUpdatesDTO();
+                    DataSetBatchUpdatesDTO update = new DataSetBatchUpdatesDTO();
                     update.setDatasetId(new TechId(dataSet.getId()));
                     update.setVersion(dataSet.getModificationDate());
                     update.setExperimentIdentifierOrNull(ExperimentIdentifierFactory.parse(dataSet
                             .getExperiment().getIdentifier()));
-                    update.setModifiedParentDatasetCodesOrNull(codes.toArray(new String[0]));
                     update.setFileFormatTypeCode(dataSet.getFileFormatType().getCode());
                     update.setProperties(dataSet.getProperties());
+
+                    // All we want to do is update the parents
+                    update.setDatasetCode(dataSet.getCode());
+                    update.setModifiedParentDatasetCodesOrNull(codes.toArray(new String[0]));
+                    DataSetBatchUpdateDetails details = new DataSetBatchUpdateDetails();
+                    details.setParentsUpdateRequested(true);
+
                     operationLog.info("Parent data set links of data set " + dataSet.getCode()
                             + " from experiment " + experiment.getIdentifier()
                             + " will be updated.");
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java
index 3d3ee39f777..3b28178dc39 100644
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java
+++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/proteomics/ProteinResultDataSetParentLinkingTaskTest.java
@@ -31,14 +31,12 @@ import org.testng.annotations.Test;
 import ch.systemsx.cisd.common.logging.BufferedAppender;
 import ch.systemsx.cisd.common.test.RecordingMatcher;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.DataSetInfoExtractorForProteinResults;
-import ch.systemsx.cisd.openbis.etlserver.proteomics.ProteinResultDataSetParentLinkingTask;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuilder;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails;
-import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUpdatesDTO;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetBatchUpdatesDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 
@@ -95,15 +93,14 @@ public class ProteinResultDataSetParentLinkingTaskTest extends AssertJUnit
                 new ExperimentBuilder().id(4).identifier("/S/P1/E4")
                         .property(BASE_EXPERIMENT_KEY, "/S/P1/E1").getExperiment();
         final DataSet ds1 =
-                new DataSetBuilder(1).code("ds1").fileFormat("A")
-                        .experiment(e1).modificationDate(new Date(11)).getDataSet();
+                new DataSetBuilder(1).code("ds1").fileFormat("A").experiment(e1)
+                        .modificationDate(new Date(11)).getDataSet();
         final DataSet ds2 =
-                new DataSetBuilder(2).code("ds2").fileFormat("B")
-                        .experiment(e4).modificationDate(new Date(22)).getDataSet();
+                new DataSetBuilder(2).code("ds2").fileFormat("B").experiment(e4)
+                        .modificationDate(new Date(22)).getDataSet();
         final DataSet ds3 =
-                new DataSetBuilder(3).code("ds3").fileFormat("C")
-                        .experiment(e3).modificationDate(new Date(33)).property("ALPHA", "3.1")
-                        .getDataSet();
+                new DataSetBuilder(3).code("ds3").fileFormat("C").experiment(e3)
+                        .modificationDate(new Date(33)).property("ALPHA", "3.1").getDataSet();
         final RecordingMatcher<AtomicEntityOperationDetails> operationRecorder =
                 new RecordingMatcher<AtomicEntityOperationDetails>();
         context.checking(new Expectations()
@@ -120,16 +117,16 @@ public class ProteinResultDataSetParentLinkingTaskTest extends AssertJUnit
 
                     one(service).tryToGetExperiment(ExperimentIdentifierFactory.parse("/S/P1/E1"));
                     will(returnValue(e1));
-                    
+
                     one(service).tryGetDataSet("non-sense2");
                     will(returnValue(null));
-                    
+
                     one(service).tryGetDataSet("ds1");
                     will(returnValue(ds1));
-                    
+
                     one(service).tryGetDataSet("ds3");
                     will(returnValue(ds3));
-                    
+
                     one(service).listDataSetsByExperimentID(e1.getId());
                     will(returnValue(Arrays.asList(ds1)));
 
@@ -142,7 +139,7 @@ public class ProteinResultDataSetParentLinkingTaskTest extends AssertJUnit
                     one(service).performEntityOperations(with(operationRecorder));
                 }
             });
-        
+
         task.execute();
 
         assertEquals("INFO  OPERATION.ProteinResultDataSetParentLinkingTask - "
@@ -154,7 +151,7 @@ public class ProteinResultDataSetParentLinkingTaskTest extends AssertJUnit
                 + "INFO  OPERATION.ProteinResultDataSetParentLinkingTask - "
                 + "Parent data set links for 2 data sets have been updated.",
                 logRecorder.getLogContent());
-        List<DataSetUpdatesDTO> dataSetUpdates =
+        List<DataSetBatchUpdatesDTO> dataSetUpdates =
                 operationRecorder.recordedObject().getDataSetUpdates();
         assertEquals(2L, dataSetUpdates.get(0).getDatasetId().getId().longValue());
         assertEquals(22L, dataSetUpdates.get(0).getVersion().getTime());
-- 
GitLab