From a7e49e71499dce37b62205f29b808bab7535a1f8 Mon Sep 17 00:00:00 2001
From: kohleman <kohleman>
Date: Mon, 22 Aug 2011 16:13:03 +0000
Subject: [PATCH] LMS-2445-Fix: Part2, needed for multiple parents

SVN: 22581
---
 .../email/EntityTrackingEmailGenerator.java   | 52 +++++++++++--------
 1 file changed, 30 insertions(+), 22 deletions(-)

diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java
index 53904165301..9d387e27709 100644
--- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java
+++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java
@@ -44,7 +44,7 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
     private static final String NOTIFICATION_EMAIL_SUBJECT = "notification-email-subject";
 
     private static final String AFFILIATION_NOTIFICATION_EMAIL_CONTACT_SUFFIX =
-            "-affiliation-notification-email-contact";
+        "-affiliation-notification-email-contact";
 
     private final String from;
 
@@ -62,7 +62,7 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
         this.template = template;
 
         final Map<String, String> recipientsByAffiliation =
-                retrieveRecipientsByAffiliation(properties);
+            retrieveRecipientsByAffiliation(properties);
         EntityTrackingEmailDataManager.initialize(recipientsByAffiliation);
     }
 
@@ -77,10 +77,10 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
             if (propertyKey.endsWith(AFFILIATION_NOTIFICATION_EMAIL_CONTACT_SUFFIX))
             {
                 final String affiliation =
-                        propertyKey.substring(0, propertyKey.length()
-                                - AFFILIATION_NOTIFICATION_EMAIL_CONTACT_SUFFIX.length());
+                    propertyKey.substring(0, propertyKey.length()
+                            - AFFILIATION_NOTIFICATION_EMAIL_CONTACT_SUFFIX.length());
                 final String affiliationRecipient =
-                        PropertyUtils.getMandatoryProperty(properties, propertyKey);
+                    PropertyUtils.getMandatoryProperty(properties, propertyKey);
                 result.put(affiliation, affiliationRecipient);
             }
         }
@@ -90,7 +90,7 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
     public List<EmailWithSummary> generateEmails(TrackedEntities trackedEntities)
     {
         final Collection<EntityTrackingEmailData> emailDataGroupedByRecipient =
-                EntityTrackingEmailDataManager.groupByRecipient(trackedEntities);
+            EntityTrackingEmailDataManager.groupByRecipient(trackedEntities);
 
         final List<EmailWithSummary> results = new ArrayList<EmailWithSummary>();
         for (EntityTrackingEmailData emailData : emailDataGroupedByRecipient)
@@ -129,10 +129,10 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
         private static final char SUBSECTION_SEPARATOR_CHAR = '-';
 
         private static final String SECTION_SEPARATOR_LINE =
-                createSeparatorLine(SECTION_SEPARATOR_CHAR);
+            createSeparatorLine(SECTION_SEPARATOR_CHAR);
 
         private static final String SUBSECTION_SEPARATOR_LINE =
-                createSeparatorLine(SUBSECTION_SEPARATOR_CHAR);
+            createSeparatorLine(SUBSECTION_SEPARATOR_CHAR);
 
         private final static String EXTERNAL_SAMPLE_NAME_PROPERTY_CODE = "EXTERNAL_SAMPLE_NAME";
 
@@ -213,31 +213,39 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
 
         private static void appendDataSetDetails(StringBuilder sb, ExternalData dataSet)
         {
+            Collection<Sample> sequencingSamples;
+
             Sample flowLaneSample = dataSet.getSample();
             assert flowLaneSample != null;
-            Sample sequencingSample = flowLaneSample.getGeneratedFrom();
-            assert sequencingSample != null;
-            String externalSampleName = getExternalSampleName(sequencingSample);
+            sequencingSamples = flowLaneSample.getParents();
+            assert sequencingSamples != null;
+
+            for (Sample sequencingSample : sequencingSamples) {
+
 
-            // link to openbis
-            appendAttribute(sb, String.format(
-                    "You can download results for external sample named '%s' at",
-                    externalSampleName), dataSet.getPermlink());
+                String externalSampleName = getExternalSampleName(sequencingSample);
 
-            // data set properties
-            appendProperties(sb, dataSet.getProperties());
+                // link to openbis
+                appendAttribute(sb, String.format(
+                        "You can download results for external sample named '%s' at",
+                        externalSampleName), dataSet.getPermlink());
+
+                // data set properties
+                appendProperties(sb, dataSet.getProperties());
+
+                // sequencing sample info
+                appendAttribute(sb, String.format(
+                        "Meta data of Sequencing sample '%s' are available here", externalSampleName),
+                        sequencingSample.getPermlink());
+            }
 
-            // sequencing sample info
-            appendAttribute(sb, String.format(
-                    "Meta data of Sequencing sample '%s' are available here", externalSampleName),
-                    sequencingSample.getPermlink());
 
         }
 
         private static String getExternalSampleName(Sample sequencingSample)
         {
             String externalSampleName =
-                    tryGetSamplePropertyValue(sequencingSample, EXTERNAL_SAMPLE_NAME_PROPERTY_CODE);
+                tryGetSamplePropertyValue(sequencingSample, EXTERNAL_SAMPLE_NAME_PROPERTY_CODE);
             assert externalSampleName != null;
             return externalSampleName;
         }
-- 
GitLab