code: public IocObject load(IocLoading loading, String name) throws ObjectLoadException {
          Map<String, Object> m = getMap(name);
          if (null == m)
              throw new ObjectLoadException("Object '" + name + "' without define!");
          // If has parent
          Object p = m.get("parent");
          if (null != p) {
              checkParents(name);
              IocObject parent = load(loading, p.toString());
              // create new map without parent
              Map<String, Object> newMap = new HashMap<String, Object>();
              for (Entry<String, Object> en : m.entrySet()) {
                  if ("parent".equals(en.getKey()))
                      continue;
                  newMap.put(en.getKey(), en.getValue());
              }
              // Create self IocObject
              IocObject self = loading.map2iobj(newMap);
  
              // Merge with parent
              return Iocs.mergeWith(self, parent);
          }
          return loading.map2iobj(m);
      }
docs: {@link ObjectLoadException}