Object result = valueForKey(key);
Object result = localizedValueForKey(key);
    public Object valueForKeyPath(String key) {        Object result = valueForKey(key);        if(result == null) {            int indexOfDot = key.indexOf(".");            if(indexOfDot > 0) {                String firstComponent = key.substring(0, indexOfDot);                String otherComponents = key.substring(indexOfDot+1, key.length());                result = cache.objectForKey(firstComponent);                if(log.isDebugEnabled())                    log.debug("Trying " + firstComponent + " . " + otherComponents);                if(result != null) {                    result = NSKeyValueCodingAdditions.Utility.valueForKeyPath(result, otherComponents);                    if(result != null) {                        cache.setObjectForKey(result, key);                    } else {                        cache.setObjectForKey(NOT_FOUND, key);                    }                }            }        }        return result;    }