private boolean processData(@NotNull IntList namesIds,
                              @NotNull IntPredicate processor) {
    for (IntIterator it = namesIds.iterator(); it.hasNext(); ) {
      int nameId = it.nextInt();
      int single = singularMapping.get(nameId);
      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;
  }
private boolean processData(@NotNull IntList namesIds,
                              @NotNull IntPredicate processor)