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