private boolean tryIndexWithoutContent(IndexedFileImpl indexedFile,
                                         int inputId,
                                         ID<?, ?> indexId,
                                         UnindexedFileStatusBuilder fileStatusBuilder) {
    if (myFileBasedIndex.needsFileContentLoading(indexId)) {
      long nowTime = System.nanoTime();
      boolean wasIndexedByInfrastructure;
      try {
        wasIndexedByInfrastructure = tryIndexWithoutContentViaInfrastructureExtension(indexedFile, inputId, indexId);
      }
      finally {
        fileStatusBuilder.timeIndexingWithoutContentViaInfrastructureExtension += (System.nanoTime() - nowTime);
      }
      if (wasIndexedByInfrastructure) {
        fileStatusBuilder.indexesWereProvidedByInfrastructureExtension = true;
        return true;
      }
      else {
        return false;
      }
    }
    else {
      SingleIndexValueApplier<?> applier =
        myFileBasedIndex.createSingleIndexValueApplier(indexId, indexedFile.getFile(), inputId, new IndexedFileWrapper(indexedFile));
      if (applier != null) {
        boolean updated = fileStatusBuilder.addOrRunApplier(applier);
        if (!updated) {
          LOG.error("Failed to apply contentless indexer " + indexId + " to file " + indexedFile.getFile() + ", " +
                    "applicationMode =" + fileStatusBuilder.applicationMode);
        }
        return updated;
      }
      else {
        return true;
      }
    }
  }
private boolean tryIndexWithoutContent(IndexedFileImpl indexedFile,
                                         int inputId,
                                         ID<?, ?> indexId,
                                         UnindexedFileStatusBuilder fileStatusBuilder)