log.info(keys);
    protected void addComponentLevelValuesForKey(String propertyKey) {        context.setPropertyKey(propertyKey);        dict.takeValueForKeyPath( new NSMutableDictionary(), "componentLevelKeys." + propertyKey);        for(Enumeration e = componentLevelKeys.objectEnumerator(); e.hasMoreElements(); ) {            String key = (String)e.nextElement();            Object o = context.valueForKey(key);            if(o != null)                dict.takeValueForKeyPath(o, "componentLevelKeys." + propertyKey + "." + key);        }        String path = "components." + dict.valueForKeyPath("componentLevelKeys." + propertyKey + ".componentName") + ".editors";        NSArray keys = (NSArray)allKeys.valueForKeyPath(path);        if(keys != null) {            for(Enumeration e = keys.objectEnumerator(); e.hasMoreElements(); ) {                String key = (String)e.nextElement();                Object o = context.valueForKey(key);                if(o != null)                    dict.takeValueForKeyPath(o, "componentLevelKeys." + propertyKey + "." + key);            }        }        path = "components." + dict.valueForKeyPath("componentLevelKeys." + propertyKey + ".componentName") + ".supports";        keys = (NSArray)allKeys.valueForKeyPath(path);        log.info(keys);        if(keys != null) {            for(Enumeration e = keys.objectEnumerator(); e.hasMoreElements(); ) {                String key = (String)e.nextElement();                Object o = context.valueForKey(key);                if(o != null)                    dict.takeValueForKeyPath(o, key);            }        }    }