@Override public ReceiverOptions<K, V> maxCommitAttempts(int maxAttempts) { if (maxAttempts < 0) throw new IllegalArgumentException("the number of attempts must be >= 0"); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> withKeyDeserializer(Deserializer<K> keyDeserializer) { return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, Objects.requireNonNull(keyDeserializer), valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> withValueDeserializer(Deserializer<V> valueDeserializer) { return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, Objects.requireNonNull(valueDeserializer), pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> assignment(Collection<TopicPartition> partitions) { return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, null, Objects.requireNonNull(partitions), null, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> withValueDeserializer(Deserializer<V> valueDeserializer) { return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, Objects.requireNonNull(valueDeserializer), pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> assignment(Collection<TopicPartition> partitions) { return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, null, Objects.requireNonNull(partitions), null, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> atmostOnceCommitAheadSize(int commitAheadSize) { if (commitAheadSize < 0) throw new IllegalArgumentException("Commit ahead size must be >= 0"); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, commitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> maxCommitAttempts(int maxAttempts) { if (maxAttempts < 0) throw new IllegalArgumentException("the number of attempts must be >= 0"); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> commitBatchSize(int commitBatchSize) { if (commitBatchSize < 0) throw new IllegalArgumentException("Commit batch size must be >= 0"); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> withKeyDeserializer(Deserializer<K> keyDeserializer) { return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, Objects.requireNonNull(keyDeserializer), valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> clearRevokeListeners() { return new ImmutableReceiverOptions<>( properties, assignListeners, new ArrayList<>(), keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> clearAssignListeners() { return new ImmutableReceiverOptions<>( properties, new ArrayList<>(), revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> clearRevokeListeners() { return new ImmutableReceiverOptions<>( properties, assignListeners, new ArrayList<>(), keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> clearAssignListeners() { return new ImmutableReceiverOptions<>( properties, new ArrayList<>(), revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
/** * Returns a new immutable instance with the configuration properties of this instance. * * @deprecated will be removed since all operations should be immutable * * @return new immutable options instance */ @NonNull @Deprecated default ReceiverOptions<K, V> toImmutable() { return new ImmutableReceiverOptions<>(this); } }
@Override public ReceiverOptions<K, V> addRevokeListener(Consumer<Collection<ReceiverPartition>> onRevoke) { Objects.requireNonNull(onRevoke); ArrayList<Consumer<Collection<ReceiverPartition>>> revokeListeners = new ArrayList<>(this.revokeListeners); revokeListeners.add(onRevoke); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> addAssignListener(Consumer<Collection<ReceiverPartition>> onAssign) { Objects.requireNonNull(onAssign); ArrayList<Consumer<Collection<ReceiverPartition>>> assignListeners = new ArrayList<>(this.assignListeners); assignListeners.add(onAssign); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
/** * Returns a new immutable instance with the configuration properties of this instance. * * @deprecated will be removed since all operations should be immutable * * @return new immutable options instance */ @NonNull @Deprecated default ReceiverOptions<K, V> toImmutable() { return new ImmutableReceiverOptions<>(this); } }
@Override public ReceiverOptions<K, V> pollTimeout(Duration timeout) { if (timeout == null || timeout.isNegative()) throw new IllegalArgumentException("Close timeout must be >= 0"); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, Objects.requireNonNull(timeout), closeTimeout, commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }
@Override public ReceiverOptions<K, V> closeTimeout(Duration timeout) { if (timeout == null || timeout.isNegative()) throw new IllegalArgumentException("Close timeout must be >= 0"); return new ImmutableReceiverOptions<>( properties, assignListeners, revokeListeners, keyDeserializer, valueDeserializer, pollTimeout, Objects.requireNonNull(timeout), commitInterval, commitBatchSize, atmostOnceCommitAheadSize, maxCommitAttempts, subscribeTopics, assignTopicPartitions, subscribePattern, schedulerSupplier ); }