From 527fa7a511f8032915ca376e77f0c90ac5caf575 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Thu, 10 Nov 2016 22:13:16 +0100
Subject: [PATCH] Simplify opaque data mappings for conditions

---
 DDCore/src/OpaqueDataBinder.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/DDCore/src/OpaqueDataBinder.cpp b/DDCore/src/OpaqueDataBinder.cpp
index 115f9d0ff..3d6b274e6 100644
--- a/DDCore/src/OpaqueDataBinder.cpp
+++ b/DDCore/src/OpaqueDataBinder.cpp
@@ -111,8 +111,18 @@ namespace DD4hep {
   }
 
 
-  template<typename KEY, typename VAL, typename OBJECT>
-  static void insert_map_item(const KEY& k, const string& val, OBJECT& block)  {
+  template<typename KEY, typename VAL>
+  static void insert_map_item(const KEY& k, const string& val, OpaqueDataBlock& block)  {
+    typedef map<KEY,VAL> map_t;
+    map_t& m = block.get<map_t>();
+    VAL v;
+    if ( !BasicGrammar::instance<VAL>().fromString(&v, val) )  {
+      except("Condition::map","++ Failed to convert conditions map entry.");
+    }
+    m.insert(make_pair(k,v));
+  }
+  template<typename KEY, typename VAL>
+  static void insert_map_item(const KEY& k, const string& val, Conditions::Condition& block)  {
     typedef map<KEY,VAL> map_t;
     map_t& m = block.get<map_t>();
     VAL v;
-- 
GitLab