void explain(IndexedFileImpl indexedFile, IndexingReasonExplanationLogger logger) {
      if (shouldIndex) {
        logger.logFileIndexingReason(indexedFile, this::getIndexingReasonLogString);
      }
      else if (!appliers.isEmpty() && !removers.isEmpty()) {
        logger.logScannerAppliersAndRemoversForFile(indexedFile, this::getAppliersAndRemoversLogString);
      }
      else if (!appliers.isEmpty()) {
        logger.logScannerAppliersOnlyForFile(indexedFile, this::getAppliersAndRemoversLogString);
      }
      else if (!removers.isEmpty()) {
        logger.logScannerRemoversOnlyForFile(indexedFile, this::getAppliersAndRemoversLogString);
      }
    }
void explain(IndexedFileImpl indexedFile, IndexingReasonExplanationLogger logger)