for (int i = start; i < segments.length; i++) {
// cacheResolve(currentUri, currentResourceId);
// TODO: make it work with caching here :-(
ObjectNode objectNode = currentResourceId.getStore().retrieveObject(currentResourceId);
objectNode.setUri(currentUriStr);
currentUriStr = uriPath.subUriPath(0, i + 1).toString();
currentUri = new Uri(uri.getToken(), uri.getNamespace(), currentUriStr);
String currentUuri = objectNode.getBindingUuri(segments[i]);
if (currentUuri == null) {
throw new ObjectNotFoundException(currentUriStr);
}
currentResourceId = ResourceId.create(currentUri, currentUuri);
}