code: @Override
      public List<String> listDocuments( String location ) throws IOException
      {
          File parent = fileAt( location );
          if (!parent.exists()) return Collections.emptyList();
  
          List<String> names = new ArrayList<String>();
          if (parent.isDirectory())
          {
              File[] files = parent.listFiles(NOT_HIDDEN);
              if (files != null) {
                  for (File child : files) {
                      if (child.isDirectory()) {
                          names.addAll(listDocuments(relativePath(child)));
                      } else if (isSupported(child)) {
                          names.add(relativePath(child));
                      }
                  }
              }
          }
          return names;
      }
docs: {@inheritDoc}