Skip to content

Commit de704e7

Browse files
committed
Remove overriding in HttpSignRequest.Builder sub-interfaces
1 parent a6b7f64 commit de704e7

File tree

6 files changed

+15
-37
lines changed

6 files changed

+15
-37
lines changed

core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/AsyncHttpSignRequest.java

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import software.amazon.awssdk.annotations.Immutable;
2121
import software.amazon.awssdk.annotations.SdkPublicApi;
2222
import software.amazon.awssdk.annotations.ThreadSafe;
23-
import software.amazon.awssdk.http.SdkHttpRequest;
2423
import software.amazon.awssdk.http.auth.spi.internal.DefaultAsyncHttpSignRequest;
2524
import software.amazon.awssdk.identity.spi.Identity;
2625
import software.amazon.awssdk.utils.builder.SdkBuilder;
@@ -44,18 +43,8 @@ static <IdentityT extends Identity> Builder<IdentityT> builder(IdentityT identit
4443
/**
4544
* A builder for a {@link AsyncHttpSignRequest}.
4645
*/
47-
interface Builder<IdentityT extends Identity> extends HttpSignRequest.Builder<Publisher<ByteBuffer>, IdentityT>,
48-
SdkBuilder<Builder<IdentityT>, AsyncHttpSignRequest<IdentityT>> {
49-
@Override
50-
Builder<IdentityT> request(SdkHttpRequest request);
51-
52-
@Override
53-
Builder<IdentityT> payload(Publisher<ByteBuffer> payload);
54-
55-
@Override
56-
Builder<IdentityT> identity(IdentityT identity);
57-
58-
@Override
59-
<T> Builder<IdentityT> putProperty(SignerProperty<T> key, T value);
46+
interface Builder<IdentityT extends Identity>
47+
extends HttpSignRequest.Builder<Builder<IdentityT>, Publisher<ByteBuffer>, IdentityT>,
48+
SdkBuilder<Builder<IdentityT>, AsyncHttpSignRequest<IdentityT>> {
6049
}
6150
}

core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/HttpSignRequest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,26 +59,26 @@ public interface HttpSignRequest<PayloadT, IdentityT extends Identity> {
5959
/**
6060
* A builder for a {@link HttpSignRequest}.
6161
*/
62-
interface Builder<PayloadT, IdentityT extends Identity> {
62+
interface Builder<B extends Builder<B, PayloadT, IdentityT>, PayloadT, IdentityT extends Identity> {
6363

6464
/**
6565
* Set the HTTP request object, without the request body payload.
6666
*/
67-
Builder<PayloadT, IdentityT> request(SdkHttpRequest request);
67+
B request(SdkHttpRequest request);
6868

6969
/**
7070
* Set the body payload of the request. A payload is optional. By default, the payload will be empty.
7171
*/
72-
Builder<PayloadT, IdentityT> payload(PayloadT payload);
72+
B payload(PayloadT payload);
7373

7474
/**
7575
* Set the identity of the request.
7676
*/
77-
Builder<PayloadT, IdentityT> identity(IdentityT identity);
77+
B identity(IdentityT identity);
7878

7979
/**
8080
* Set a property that the {@link HttpSigner} can use during signing.
8181
*/
82-
<T> Builder<PayloadT, IdentityT> putProperty(SignerProperty<T> key, T value);
82+
<T> B putProperty(SignerProperty<T> key, T value);
8383
}
8484
}

core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/SyncHttpSignRequest.java

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import software.amazon.awssdk.annotations.SdkPublicApi;
2020
import software.amazon.awssdk.annotations.ThreadSafe;
2121
import software.amazon.awssdk.http.ContentStreamProvider;
22-
import software.amazon.awssdk.http.SdkHttpRequest;
2322
import software.amazon.awssdk.http.auth.spi.internal.DefaultSyncHttpSignRequest;
2423
import software.amazon.awssdk.identity.spi.Identity;
2524
import software.amazon.awssdk.utils.builder.SdkBuilder;
@@ -43,18 +42,8 @@ static <IdentityT extends Identity> Builder<IdentityT> builder(IdentityT identit
4342
/**
4443
* A builder for a {@link SyncHttpSignRequest}.
4544
*/
46-
interface Builder<IdentityT extends Identity> extends HttpSignRequest.Builder<ContentStreamProvider, IdentityT>,
47-
SdkBuilder<Builder<IdentityT>, SyncHttpSignRequest<IdentityT>> {
48-
@Override
49-
Builder<IdentityT> request(SdkHttpRequest request);
50-
51-
@Override
52-
Builder<IdentityT> payload(ContentStreamProvider payload);
53-
54-
@Override
55-
Builder<IdentityT> identity(IdentityT identity);
56-
57-
@Override
58-
<T> Builder<IdentityT> putProperty(SignerProperty<T> key, T value);
45+
interface Builder<IdentityT extends Identity>
46+
extends HttpSignRequest.Builder<Builder<IdentityT>, ContentStreamProvider, IdentityT>,
47+
SdkBuilder<Builder<IdentityT>, SyncHttpSignRequest<IdentityT>> {
5948
}
6049
}

core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/internal/DefaultAsyncHttpSignRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public String toString() {
4141

4242
@SdkInternalApi
4343
public static final class BuilderImpl<IdentityT extends Identity>
44-
extends DefaultHttpSignRequest.BuilderImpl<BuilderImpl<IdentityT>, Publisher<ByteBuffer>, IdentityT>
44+
extends DefaultHttpSignRequest.BuilderImpl<AsyncHttpSignRequest.Builder<IdentityT>, Publisher<ByteBuffer>, IdentityT>
4545
implements AsyncHttpSignRequest.Builder<IdentityT> {
4646

4747
// Used to enable consumer builder pattern in HttpSigner.signAsync()

core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/internal/DefaultHttpSignRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ public <T> T property(SignerProperty<T> property) {
6262
}
6363

6464
@SdkInternalApi
65-
protected static class BuilderImpl<B extends BuilderImpl<B, PayloadT, IdentityT>, PayloadT, IdentityT extends Identity>
66-
implements Builder<PayloadT, IdentityT> {
65+
protected abstract static class BuilderImpl<B extends Builder<B, PayloadT, IdentityT>, PayloadT,
66+
IdentityT extends Identity> implements Builder<B, PayloadT, IdentityT> {
6767
private SdkHttpRequest request;
6868
private PayloadT payload;
6969
private IdentityT identity;

core/http-auth-spi/src/main/java/software/amazon/awssdk/http/auth/spi/internal/DefaultSyncHttpSignRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public String toString() {
4040

4141
@SdkInternalApi
4242
public static final class BuilderImpl<IdentityT extends Identity>
43-
extends DefaultHttpSignRequest.BuilderImpl<BuilderImpl<IdentityT>, ContentStreamProvider, IdentityT>
43+
extends DefaultHttpSignRequest.BuilderImpl<SyncHttpSignRequest.Builder<IdentityT>, ContentStreamProvider, IdentityT>
4444
implements SyncHttpSignRequest.Builder<IdentityT> {
4545

4646
// Used to enable consumer builder pattern in HttpSigner.sign()

0 commit comments

Comments
 (0)