code: private void recursiveParseProperties( final ITransaction transaction, final String currentPath, final WebdavRequest req,
                                             final XMLWriter generatedXML, final int propertyFindType, final List<String> properties, final int depth,
                                             final String mimeType )
          throws WebdavException
      {
  
          parseProperties( transaction, req, generatedXML, currentPath, propertyFindType, properties, mimeType );
  
          if ( depth > 0 )
          {
              // no need to get name if depth is already zero
              String[] names = _store.getChildrenNames( transaction, currentPath );
              names = names == null ? new String[] {} : names;
              String newPath = null;
  
              for ( final String name : names )
              {
                  newPath = currentPath;
                  if ( !( newPath.endsWith( "/" ) ) )
                  {
                      newPath += "/";
                  }
                  newPath += name;
                  recursiveParseProperties( transaction, newPath, req, generatedXML, propertyFindType, properties, depth - 1, mimeType );
              }
          }
      }
docs: goes recursive through all folders. used by propfind
  
  @param currentPath
  the current path
  @param req
  HttpServletRequest
  @param generatedXML
  @param propertyFindType
  @param properties
  @param depth
  depth of the propfind
  @throws IOException
  if an error in the underlying store occurs