Skip to content

Commit c197b12

Browse files
committed
Refactor to remove some duplication
1 parent d843a6f commit c197b12

File tree

2 files changed

+48
-53
lines changed

2 files changed

+48
-53
lines changed

codegen/src/main/java/software/amazon/awssdk/codegen/poet/authscheme/AuthSchemeParamsSpec.java

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,6 @@ public TypeSpec poetSpec() {
5757
return b.build();
5858
}
5959

60-
private void addAccessorMethods(TypeSpec.Builder b) {
61-
b.addMethod(MethodSpec.methodBuilder("operation")
62-
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
63-
.returns(String.class)
64-
.build());
65-
66-
if (authSchemeSpecUtils.usesSigV4()) {
67-
b.addMethod(MethodSpec.methodBuilder("region")
68-
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
69-
// TODO: reviewer: Should region be Regions (Regions.class isn't available here though)
70-
.returns(ParameterizedTypeName.get(Optional.class, String.class))
71-
.build());
72-
}
73-
}
74-
7560
private CodeBlock interfaceJavadoc() {
7661
CodeBlock.Builder b = CodeBlock.builder();
7762

@@ -103,6 +88,21 @@ private TypeSpec builderInterfaceSpec() {
10388
return b.build();
10489
}
10590

91+
private void addAccessorMethods(TypeSpec.Builder b) {
92+
b.addMethod(MethodSpec.methodBuilder("operation")
93+
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
94+
.returns(String.class)
95+
.build());
96+
97+
if (authSchemeSpecUtils.usesSigV4()) {
98+
b.addMethod(MethodSpec.methodBuilder("region")
99+
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
100+
// TODO: reviewer: Should region be Regions (Regions.class isn't available here though)
101+
.returns(ParameterizedTypeName.get(Optional.class, String.class))
102+
.build());
103+
}
104+
}
105+
106106
private void addBuilderSetterMethods(TypeSpec.Builder b) {
107107
b.addMethod(MethodSpec.methodBuilder("operation")
108108
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
@@ -118,5 +118,4 @@ private void addBuilderSetterMethods(TypeSpec.Builder b) {
118118
.build());
119119
}
120120
}
121-
122121
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/authscheme/DefaultAuthSchemeParamsSpec.java

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.squareup.javapoet.ParameterSpec;
2222
import com.squareup.javapoet.ParameterizedTypeName;
2323
import com.squareup.javapoet.TypeSpec;
24+
import java.lang.reflect.Type;
2425
import java.util.Optional;
2526
import javax.lang.model.element.Modifier;
2627
import software.amazon.awssdk.annotations.SdkInternalApi;
@@ -56,32 +57,6 @@ public TypeSpec poetSpec() {
5657
return b.build();
5758
}
5859

59-
private void addFieldsAndAccessors(TypeSpec.Builder b) {
60-
b.addField(FieldSpec.builder(String.class, "operation")
61-
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
62-
.build());
63-
64-
b.addMethod(MethodSpec.methodBuilder("operation")
65-
.addModifiers(Modifier.PUBLIC)
66-
.addAnnotation(Override.class)
67-
.returns(String.class)
68-
.addStatement("return operation")
69-
.build());
70-
71-
if (authSchemeSpecUtils.usesSigV4()) {
72-
b.addField(FieldSpec.builder(String.class, "region")
73-
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
74-
.build());
75-
76-
b.addMethod(MethodSpec.methodBuilder("region")
77-
.addModifiers(Modifier.PUBLIC)
78-
.addAnnotation(Override.class)
79-
.returns(ParameterizedTypeName.get(Optional.class, String.class))
80-
.addStatement("return region == null ? Optional.empty() : Optional.of(region)")
81-
.build());
82-
}
83-
}
84-
8560
private MethodSpec constructor() {
8661
MethodSpec.Builder b = MethodSpec.constructorBuilder()
8762
.addModifiers(Modifier.PRIVATE)
@@ -120,36 +95,57 @@ private TypeSpec builderImplSpec() {
12095
return b.build();
12196
}
12297

123-
private void addBuilderFieldsAndSetter(TypeSpec.Builder b) {
98+
private void addFieldsAndAccessors(TypeSpec.Builder b) {
12499
b.addField(FieldSpec.builder(String.class, "operation")
125-
.addModifiers(Modifier.PRIVATE)
100+
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
126101
.build());
127102

128103
b.addMethod(MethodSpec.methodBuilder("operation")
129104
.addModifiers(Modifier.PUBLIC)
130105
.addAnnotation(Override.class)
131-
.addParameter(ParameterSpec.builder(String.class, "operation").build())
132-
.returns(builderClassName())
133-
.addStatement("this.operation = operation")
134-
.addStatement("return this")
106+
.returns(String.class)
107+
.addStatement("return operation")
135108
.build());
136109

137110
if (authSchemeSpecUtils.usesSigV4()) {
138111
b.addField(FieldSpec.builder(String.class, "region")
139-
.addModifiers(Modifier.PRIVATE)
112+
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
140113
.build());
141114

142115
b.addMethod(MethodSpec.methodBuilder("region")
143116
.addModifiers(Modifier.PUBLIC)
144117
.addAnnotation(Override.class)
145-
.addParameter(ParameterSpec.builder(String.class, "region").build())
146-
.returns(builderClassName())
147-
.addStatement("this.region = region")
148-
.addStatement("return this")
118+
.returns(ParameterizedTypeName.get(Optional.class, String.class))
119+
.addStatement("return region == null ? Optional.empty() : Optional.of(region)")
149120
.build());
150121
}
151122
}
152123

124+
private void addBuilderFieldsAndSetter(TypeSpec.Builder b) {
125+
b.addField(FieldSpec.builder(String.class, "operation")
126+
.addModifiers(Modifier.PRIVATE)
127+
.build());
128+
b.addMethod(builderSetterMethod("operation", String.class));
129+
130+
if (authSchemeSpecUtils.usesSigV4()) {
131+
b.addField(FieldSpec.builder(String.class, "region")
132+
.addModifiers(Modifier.PRIVATE)
133+
.build());
134+
b.addMethod(builderSetterMethod("region", String.class));
135+
}
136+
}
137+
138+
private MethodSpec builderSetterMethod(String field, Type type) {
139+
return MethodSpec.methodBuilder(field)
140+
.addModifiers(Modifier.PUBLIC)
141+
.addAnnotation(Override.class)
142+
.addParameter(ParameterSpec.builder(type, field).build())
143+
.returns(builderClassName())
144+
.addStatement("this.$L = $L", field, field)
145+
.addStatement("return this")
146+
.build();
147+
}
148+
153149
private ClassName builderClassName() {
154150
return className().nestedClass("Builder");
155151
}

0 commit comments

Comments
 (0)