private final List<RESPONSE> propfind( final Iterable<QName> properties, final Resource resource, final Depth depth) { final List<RESPONSE> responses = new ArrayList<RESPONSE>(); responses.add( response(href(relativizeResource(resource)), getProperties(resource, properties))); if (depth != ZERO) { for (final Resource child : resource.members()) { responses.addAll(propfind(properties, child, depth.decreaseDepth())); } } return responses; }