Add mutate method to RSocketStrategies
Closes gh-22799
This commit is contained in:
@@ -94,6 +94,17 @@ final class DefaultRSocketStrategies implements RSocketStrategies {
|
||||
private DataBufferFactory dataBufferFactory;
|
||||
|
||||
|
||||
public DefaultRSocketStrategiesBuilder() {
|
||||
}
|
||||
|
||||
public DefaultRSocketStrategiesBuilder(RSocketStrategies other) {
|
||||
this.encoders.addAll(other.encoders());
|
||||
this.decoders.addAll(other.decoders());
|
||||
this.adapterRegistry = other.reactiveAdapterRegistry();
|
||||
this.dataBufferFactory = other.dataBufferFactory();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Builder encoder(Encoder<?>... encoders) {
|
||||
this.encoders.addAll(Arrays.asList(encoders));
|
||||
|
||||
@@ -105,6 +105,14 @@ public interface RSocketStrategies {
|
||||
return new DefaultRSocketStrategies.DefaultRSocketStrategiesBuilder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a builder to create a new {@link RSocketStrategies} instance
|
||||
* replicated from the current instance.
|
||||
*/
|
||||
default Builder mutate() {
|
||||
return new DefaultRSocketStrategies.DefaultRSocketStrategiesBuilder(this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The builder options for creating {@code RSocketStrategies}.
|
||||
@@ -117,17 +125,17 @@ public interface RSocketStrategies {
|
||||
*/
|
||||
Builder encoder(Encoder<?>... encoder);
|
||||
|
||||
/**
|
||||
* Access and manipulate the list of configured {@link #encoder encoders}.
|
||||
*/
|
||||
Builder encoders(Consumer<List<Encoder<?>>> consumer);
|
||||
|
||||
/**
|
||||
* Add decoders for de-serializing Objects.
|
||||
* <p>By default this is empty.
|
||||
*/
|
||||
Builder decoder(Decoder<?>... decoder);
|
||||
|
||||
/**
|
||||
* Access and manipulate the list of configured {@link #encoder encoders}.
|
||||
*/
|
||||
Builder encoders(Consumer<List<Encoder<?>>> consumer);
|
||||
|
||||
/**
|
||||
* Access and manipulate the list of configured {@link #encoder decoders}.
|
||||
*/
|
||||
@@ -137,7 +145,7 @@ public interface RSocketStrategies {
|
||||
* Configure the registry for reactive type support. This can be used to
|
||||
* to adapt to, and/or determine the semantics of a given
|
||||
* {@link org.reactivestreams.Publisher Publisher}.
|
||||
* <p>By default this {@link ReactiveAdapterRegistry#sharedInstance}.
|
||||
* <p>By default this {@link ReactiveAdapterRegistry#getSharedInstance()}.
|
||||
* @param registry the registry to use
|
||||
*/
|
||||
Builder reactiveAdapterStrategy(ReactiveAdapterRegistry registry);
|
||||
|
||||
Reference in New Issue
Block a user