code: public List<Resource<L>> findResources(L query, LocationResolver<L> locationResolver) {
          graphLockRead.lock();
          try {
              List<Resource<L>> result = new ArrayList<Resource<L>>();
              GraphIterator<Resource<L>, DefaultEdge> it = new BreadthFirstIterator<Resource<L>, DefaultEdge>(
                      this.resourcesGraph);
              while (it.hasNext()) {
                  Resource<L> resource = it.next();
                  if (locationResolver.matches(query, resource.getLocation())) {
                      result.add(resource);
                  }
              }
              return Collections.unmodifiableList(result);
          } finally {
              graphLockRead.unlock();
          }
      }
docs: Find the resources in {@link #resourcesGraph} matching the given {@code query}.
  
  @param query a location eventually containing wildcards
  @param locationResolver the {@link LocationResolver} to perform the matching of graph nodes against the given
  {@code query}
  @return an unmodifiable list of {@link Resources} that match the given {@code query}