package com.datastax.oss.driver.api.core.config;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.time.Duration;
import java.util.List;
import java.util.Map;
public interface OngoingConfigOptions<SelfT extends OngoingConfigOptions<SelfT>> {
@NonNull
SelfT withBoolean(@NonNull DriverOption option, boolean value);
@NonNull
SelfT withBooleanList(@NonNull DriverOption option, @NonNull List<Boolean> value);
@NonNull
SelfT withInt(@NonNull DriverOption option, int value);
@NonNull
SelfT withIntList(@NonNull DriverOption option, @NonNull List<Integer> value);
@NonNull
SelfT withLong(@NonNull DriverOption option, long value);
@NonNull
SelfT withLongList(@NonNull DriverOption option, @NonNull List<Long> value);
@NonNull
SelfT withDouble(@NonNull DriverOption option, double value);
@NonNull
SelfT withDoubleList(@NonNull DriverOption option, @NonNull List<Double> value);
@NonNull
SelfT withString(@NonNull DriverOption option, @NonNull String value);
@NonNull
default SelfT withClass(@NonNull DriverOption option, @NonNull Class<?> value) {
return withString(option, value.getName());
}
@NonNull
SelfT withStringList(@NonNull DriverOption option, @NonNull List<String> value);
@NonNull
SelfT withStringMap(@NonNull DriverOption option, @NonNull Map<String, String> value);
@NonNull
SelfT withBytes(@NonNull DriverOption option, long value);
@NonNull
SelfT withBytesList(@NonNull DriverOption option, @NonNull List<Long> value);
@NonNull
SelfT withDuration(@NonNull DriverOption option, @NonNull Duration value);
@NonNull
SelfT withDurationList(@NonNull DriverOption option, @NonNull List<Duration> value);
@NonNull
SelfT without(@NonNull DriverOption option);
}