From d04c7f03f980a261f4c52defedefffbfe75ad950 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Sat, 14 Feb 2015 17:03:17 +0100
Subject: [PATCH] Added resolveConflict option to mergeMaps

---
 .../main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala
index 2c9165036..2c9ae7e6a 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala
@@ -33,7 +33,8 @@ object ConfigUtils extends Logging {
    * @param map2 Backup for map1
    * @return merged map
    */
-  def mergeMaps(map1: Map[String, Any], map2: Map[String, Any]): Map[String, Any] = {
+  def mergeMaps(map1: Map[String, Any], map2: Map[String, Any],
+                resolveConflict: (Any, Any, String) => Any = (m1, m2, key) => m1): Map[String, Any] = {
     var newMap: Map[String, Any] = Map()
     for (key <- map1.keySet.++(map2.keySet)) {
       if (!map2.contains(key)) newMap += (key -> map1(key))
@@ -46,7 +47,7 @@ object ConfigUtils extends Logging {
               case _             => newMap += (key -> map1(key))
             }
           }
-          case _ => newMap += (key -> map1(key))
+          case _ => newMap += (key -> resolveConflict(map1(key), map2(key), key))
         }
       }
     }
-- 
GitLab