code: public void load(Properties map, DynamicInitializer<C> di, boolean assignKey) throws ClassNotFoundException {
          Iterator keys = map.keySet().iterator();
          while (keys.hasNext()) {
              String key = (String) keys.next();
              String _className = map.getProperty(key);
              String className = (_className != null ? _className.trim() : null);
  
              if (null == className || className.length() == 0) {
                  String info = "Misconfiguration? No class name specified for " + description + " " + key;
                  info += ": Check the configuration!";
                  log.warn(info);
                  continue;
              }
  
              C object = load(className, di);
              if (null != object) {
                  if (assignKey) {
                      // Method name and parameters
                      String methodName = "assignKey"; // predefined
                      Object[] parameters = { key };
  
                      // Method call
                      try {
                          callMethodOn(object, methodName, parameters);
                      } catch (Throwable ignore) {
                      }
                  }
                  put(key, object);
              }
          }
      }
docs: Dynamically loads objects from a Properties object.
  <p>
  Supports the use of a dynamic initializer
  (see {@link  org.gautelis.vopn.lang.DynamicInitializer}&lt;C&gt;)
  <p>
  The <i>assignKey</i> parameter instructs the loader to
  assign the key name to the dynamic object by calling
  the method assignKey(String key) - if it exists.