public static void collectResource(
      CollectInfo collectInfo,
      Directory directory,
      String basePath,
      ChallengeScheme scheme,
      List<? extends IntrospectionHelper> introspectionHelper) {
    Resource resource = getResource(collectInfo, directory, basePath, scheme);

    // add operations
    ArrayList<Operation> operations = new ArrayList<>();
    operations.add(getOperationFromMethod(Method.GET));
    if (directory.isModifiable()) {
      operations.add(getOperationFromMethod(Method.DELETE));
      operations.add(getOperationFromMethod(Method.PUT));
    }
    resource.setOperations(operations);

    for (IntrospectionHelper helper : introspectionHelper) {
      helper.processResource(resource, directory.getClass());
    }
    addSectionsForResource(collectInfo, resource);
    collectInfo.addResource(resource);
  }