throw new Error("Not implemented yet");
result[0] = retrieve(getQuery(obj, link));
    public Object get(final Object obj, Property prop) {        if (LOG.isDebugEnabled()) {            trace("get", new Object[] {obj, prop.getName()});        }        final Object[] result = {null};        if (!getObjectType(obj).hasKey()) {            return getProperties(obj).get(prop);        }        prop.dispatch(new Property.Switch() {                public void onRole(Role role) {                    PropertyData pd = fetchPropertyData(obj, role);                    result[0] = pd.get();                }                public void onAlias(Alias alias) {                    result[0] = get(obj, alias.getTarget());                }                public void onLink(Link link) {                    throw new Error("Not implemented yet");                }            });        if (LOG.isDebugEnabled()) {            untrace("get", result[0]);        }        return result[0];    }