From c739693f549b6f95d4655b42c4bde4fd53edecee Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Tue, 1 Mar 2011 09:22:57 +0000
Subject: [PATCH] LMS-2081 allow to register plate and dataset in the same
 transaction

SVN: 20162
---
 .../openbis/dss/etl/HCSContainerDatasetInfo.java   | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSContainerDatasetInfo.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSContainerDatasetInfo.java
index fa215a3b109..bb1148d8fad 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSContainerDatasetInfo.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSContainerDatasetInfo.java
@@ -21,6 +21,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Geometry;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.dto.PlateDimension;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.dto.PlateDimensionParser;
 
@@ -89,6 +90,11 @@ public class HCSContainerDatasetInfo
         this.containerColumns = containerColumns;
     }
 
+    public Geometry getContainerGeometry()
+    {
+        return Geometry.createFromRowColDimensions(containerRows, containerColumns);
+    }
+
     public static HCSContainerDatasetInfo createScreeningDatasetInfo(
             DataSetInformation dataSetInformation)
     {
@@ -144,7 +150,13 @@ public class HCSContainerDatasetInfo
 
     static PlateDimension getPlateGeometry(final DataSetInformation dataSetInformation)
     {
-        final IEntityProperty[] sampleProperties = dataSetInformation.getProperties();
+        IEntityProperty[] sampleProperties = dataSetInformation.getProperties();
+        if (sampleProperties == null && dataSetInformation.tryToGetSample() != null)
+        {
+            sampleProperties =
+                    dataSetInformation.tryToGetSample().getProperties()
+                            .toArray(new IEntityProperty[0]);
+        }
         final PlateDimension plateDimension =
                 PlateDimensionParser.tryToGetPlateDimension(sampleProperties);
         if (plateDimension == null)
-- 
GitLab