@VisibleForTesting
  boolean forEachFileIds(final @NotNull IntSet nameIds,
                         final @NotNull IntPredicate processor) {
    final IntIterator it = nameIds.iterator();
    while (it.hasNext()) {
      final int nameId = it.nextInt();
      final int single = singularMapping.get(nameId);
      final int[] multi;
      if (single != NULL_NAME_ID) {
        if (!processor.test(single)) return false;
      }
      else if ((multi = multiMapping.get(nameId)) != null) {
        if (multi.length == 2) {
          if (!processor.test(multi[0])) return false;
          if (!processor.test(multi[1])) return false;
        }
        else {
          for (int i = 1, len = multi[0]; i <= len; i++) {
            if (!processor.test(multi[i])) return false;
          }
        }
      }
    }

    return true;
  }
@VisibleForTesting
  boolean forEachFileIds(final @NotNull IntSet nameIds,
                         final @NotNull IntPredicate processor)