From 3e763d7c3dc1d9d77abc23f03d5c5584946ebb77 Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Fri, 19 Aug 2011 08:28:13 +0000 Subject: [PATCH] [LMS-2445] Allow multiple parent sequencing samples for a flow lane sample SVN: 22565 --- .../email/EntityTrackingEmailDataManager.java | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java index 05ee3dec3dd..3254a61ccba 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailDataManager.java @@ -17,6 +17,7 @@ package ch.ethz.bsse.cisd.dsu.tracking.email; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -66,7 +67,8 @@ class EntityTrackingEmailDataManager { for (Sample sequencingSample : trackedEntities.getSequencingSamplesToBeProcessed()) { - for (String recipient : getSequencingSampleTrackingRecipients(sequencingSample)) + for (String recipient : getSequencingSampleTrackingRecipients(Collections + .singleton(sequencingSample))) { final EntityTrackingEmailData emailData = getOrCreateRecipientEmailData(result, recipient); @@ -81,7 +83,8 @@ class EntityTrackingEmailDataManager { for (Sample sequencingSample : trackedEntities.getSequencingSamplesProcessed()) { - for (String recipient : getSequencingSampleTrackingRecipients(sequencingSample)) + for (String recipient : getSequencingSampleTrackingRecipients(Collections + .singleton(sequencingSample))) { final EntityTrackingEmailData emailData = getOrCreateRecipientEmailData(result, recipient); @@ -122,9 +125,10 @@ class EntityTrackingEmailDataManager * <var>sequencingSample</var>.<br> */ // NOTE: Set is needed because one recipient can occur in many roles for one sample - private static Set<String> getSequencingSampleTrackingRecipients(Sample sequencingSample) + private static Set<String> getSequencingSampleTrackingRecipients( + Collection<Sample> sequencingSamples) { - assert sequencingSample != null; + assert sequencingSamples != null; final Set<String> recipients = new HashSet<String>(); @@ -133,22 +137,26 @@ class EntityTrackingEmailDataManager recipientPropertyTypeCodes.add(CONTACT_PERSON_EMAIL); recipientPropertyTypeCodes.add(PRINCIPAL_INVESTIGATOR_EMAIL); - for (IEntityProperty property : sequencingSample.getProperties()) + for (Sample sequencingSample : sequencingSamples) { - final String propertyCode = property.getPropertyType().getCode(); - final String propertyValue = property.tryGetAsString(); - if (recipientPropertyTypeCodes.contains(propertyCode)) + for (IEntityProperty property : sequencingSample.getProperties()) { - recipients.add(propertyValue); - } else - { - // add recipient for affiliation if his email was specified in properties - if (propertyCode.equals(AFFILIATION)) + final String propertyCode = property.getPropertyType().getCode(); + final String propertyValue = property.tryGetAsString(); + if (recipientPropertyTypeCodes.contains(propertyCode)) + { + recipients.add(propertyValue); + } else { - String affiliationRecipientOrNull = recipientsByAffiliation.get(propertyValue); - if (affiliationRecipientOrNull != null) + // add recipient for affiliation if his email was specified in properties + if (propertyCode.equals(AFFILIATION)) { - recipients.add(affiliationRecipientOrNull); + String affiliationRecipientOrNull = + recipientsByAffiliation.get(propertyValue); + if (affiliationRecipientOrNull != null) + { + recipients.add(affiliationRecipientOrNull); + } } } } @@ -166,7 +174,7 @@ class EntityTrackingEmailDataManager // Recipients are taken from properties of sequencing sample // that is a parent of the flow lane sample. assert flowLaneSample != null; - return getSequencingSampleTrackingRecipients(flowLaneSample.getGeneratedFrom()); + return getSequencingSampleTrackingRecipients(flowLaneSample.getParents()); } /** -- GitLab