From 27b489a9de9a36cb40e93b98b97ab6f933f7b10d Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 8 Apr 2015 10:30:43 +0000
Subject: [PATCH] SSDM-1732: Redefine sample identifier if experiment is
 specified.

SVN: 33803
---
 .../registrator/api/v2/impl/ConversionUtils.java   | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java
index 93fd53dd5c7..636d97137ff 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/ConversionUtils.java
@@ -165,17 +165,23 @@ public class ConversionUtils
         }
 
         final List<NewAttachment> attachments = apiSample.getNewAttachments();
+        SampleIdentifier sampleIdentifier = SampleIdentifierFactory.parse(sample.getIdentifier());
+        ExperimentIdentifier experimentIdentifier = null;
+        if (sample.getExperiment() != null)
+        {
+            experimentIdentifier = ExperimentIdentifierFactory.parse(sample.getExperiment()
+                    .getIdentifier());
+            sampleIdentifier = new SampleIdentifier(experimentIdentifier, sampleIdentifier.getSampleCode());
+        }
         String containerIdentifier =
                 (sample.getContainer() != null) ? sample.getContainer().getIdentifier() : null;
         SampleUpdatesDTO sampleUpdate =
                 new SampleUpdatesDTO(TechId.create(sample), // db id
                         sample.getProperties(), // List<IEntityProperty>
-                        sample.getExperiment() == null ? null
-                                : ExperimentIdentifierFactory.parse(sample.getExperiment()
-                                        .getIdentifier()), // ExperimentIdentifier
+                        experimentIdentifier, // ExperimentIdentifier
                         attachments, // Collection<NewAttachment>
                         sample.getVersion(), // Sample version
-                        SampleIdentifierFactory.parse(sample.getIdentifier()), // Sample Identifier
+                        sampleIdentifier, // Sample Identifier
                         containerIdentifier, // Container Identifier
                         parentIdentifiers // Parent Identifiers
                 );
-- 
GitLab