From c2a01eb5c35ebd0086986ea4f701e8449a8218d6 Mon Sep 17 00:00:00 2001
From: Colin Dixon <ckd@us.ibm.com>
Date: Mon, 20 Aug 2012 10:36:08 -0500
Subject: [PATCH] allowing modules to transparently inherit configuration
 parameters from their superclasses

---
 .../core/module/FloodlightModuleContext.java        | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java
index c26a595b6..0cbae3234 100644
--- a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java
+++ b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleContext.java
@@ -71,6 +71,19 @@ public class FloodlightModuleContext implements IFloodlightModuleContext {
 	        retMap = new HashMap<String, String>();
 	        configParams.put(module.getClass(), retMap);
 	    }
+
+	    // also add any configuration parameters for superclasses, but
+	    // only if more specific configuration does not override it
+	    for (Class<? extends IFloodlightModule> c : configParams.keySet()) {
+	        if (c.isInstance(module)) {
+	            for (Map.Entry<String, String> ent : configParams.get(c).entrySet()) {
+	                if (!retMap.containsKey(ent.getKey())) {
+	                    retMap.put(ent.getKey(), ent.getValue());
+	                }
+	            }
+	        }
+	    }
+
 	    return retMap;
 	}
 	
-- 
GitLab