public S withSourceRecordPosition(final long sourceRecordPosition) { return filter(r -> r.getSourceRecordPosition() == sourceRecordPosition); }
public S withPartitionId(final int partitionId) { return metadataFilter(m -> m.getPartitionId() == partitionId); }
public S withTimestamp(final long timestamp) { return withTimestamp(Instant.ofEpochMilli(timestamp)); }
public S withRecordType(final RecordType recordType) { return metadataFilter(m -> m.getRecordType() == recordType); }
public S withKey(final long key) { return filter(r -> r.getKey() == key); }
public S withTimestamp(final long timestamp) { return withTimestamp(Instant.ofEpochMilli(timestamp)); }
public S withValueType(final ValueType valueType) { return metadataFilter(m -> m.getValueType() == valueType); } }
public S metadataFilter(final Predicate<RecordMetadata> predicate) { return filter(r -> predicate.test(r.getMetadata())); }
public S onlyCommands() { return metadataFilter(m -> m.getRecordType() == RecordType.COMMAND); }
public S withRaftTerm(final int raftTerm) { return filter(r -> r.getRaftTerm() == raftTerm); }
public S onlyCommandRejections() { return metadataFilter(m -> m.getRecordType() == RecordType.COMMAND_REJECTION); }
public S withSourceRecordPosition(final long sourceRecordPosition) { return filter(r -> r.getSourceRecordPosition() == sourceRecordPosition); }
public S onlyEvents() { return metadataFilter(m -> m.getRecordType() == RecordType.EVENT); }
public S withProducerId(final int producerId) { return filter(r -> r.getProducerId() == producerId); }
public S withValueType(final ValueType valueType) { return metadataFilter(m -> m.getValueType() == valueType); } }
public S valueFilter(final Predicate<T> predicate) { return filter(r -> predicate.test(r.getValue())); }
public S withIntent(final Intent intent) { return metadataFilter(m -> m.getIntent() == intent); }
public S withPosition(final long position) { return filter(r -> r.getPosition() == position); }
public S withRejectionType(final RejectionType rejectionType) { return metadataFilter(m -> m.getRejectionType() == rejectionType); }
public S valueFilter(final Predicate<T> predicate) { return filter(r -> predicate.test(r.getValue())); }