docs: public void addItem(long seq, Object item) {
          assert size < maxSize;
          readCount++;
  
          Data resultItem;
          if (filter != null || predicate != null || projection != null) {
              final O objectItem = serializationService.toObject(item);
              final boolean passesFilter = filter == null || filter.apply(objectItem);
              final boolean passesPredicate = predicate == null || predicate.test(objectItem);
              if (!passesFilter || !passesPredicate) {
                  return;
              }
              if (projection != null) {
                  resultItem = serializationService.toData(projection.transform(objectItem));
              } else {
                  resultItem = serializationService.toData(item);
              }
          } else {
              resultItem = serializationService.toData(item);
          }
  
          items[size] = resultItem;
          seqs[size] = seq;
          size++;
      }