Skip to content

Commit 2394151

Browse files
committed
Default throw for context param setters
1 parent af7606f commit 2394151

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AdditionalClientBuilderInterfaceSpec.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.squareup.javapoet.ParameterizedTypeName;
2121
import com.squareup.javapoet.TypeSpec;
2222
import java.util.ArrayList;
23+
import java.util.Collections;
2324
import java.util.List;
2425
import java.util.function.Consumer;
2526
import java.util.stream.Collectors;
@@ -29,6 +30,7 @@
2930
import software.amazon.awssdk.codegen.model.config.customization.AdditionalClientBuilder;
3031
import software.amazon.awssdk.codegen.model.config.customization.CustomizationConfig;
3132
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
33+
import software.amazon.awssdk.codegen.model.service.ClientContextParam;
3234
import software.amazon.awssdk.codegen.poet.ClassSpec;
3335
import software.amazon.awssdk.codegen.poet.PoetExtension;
3436
import software.amazon.awssdk.codegen.poet.PoetUtils;
@@ -130,11 +132,19 @@ private List<MethodSpec> clientContextParamSetterMethods() {
130132
return model.getClientContextParams()
131133
.entrySet()
132134
.stream()
133-
.map(e -> endpointRulesSpecUtils.clientContextParamSetterMethodDeclaration(e.getKey(), e.getValue(),
134-
className()))
135+
.map(e -> contextParamSetterMethod(e.getKey(), e.getValue()))
135136
.collect(Collectors.toList());
136137
}
137138

139+
private MethodSpec contextParamSetterMethod(String name, ClientContextParam param) {
140+
MethodSpec.Builder builder = endpointRulesSpecUtils.clientContextParamSetterMethodDeclaration(
141+
name, param, className(), Collections.singletonList(Modifier.DEFAULT)).toBuilder();
142+
143+
builder.addStatement("throw new $T()", UnsupportedOperationException.class);
144+
145+
return builder.build();
146+
}
147+
138148
private MethodSpec buildMethod() {
139149
return MethodSpec.methodBuilder("build")
140150
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)

codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderInterface.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.squareup.javapoet.TypeName;
2323
import com.squareup.javapoet.TypeSpec;
2424
import com.squareup.javapoet.TypeVariableName;
25+
import java.util.Collections;
2526
import java.util.function.Consumer;
2627
import javax.lang.model.element.Modifier;
2728
import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider;
@@ -74,7 +75,7 @@ public TypeSpec poetSpec() {
7475
if (hasClientContextParams()) {
7576
model.getClientContextParams().forEach((n, m) -> {
7677
builder.addMethod(endpointRulesSpecUtils.clientContextParamSetterMethodDeclaration(
77-
n, m, TypeVariableName.get("B")));
78+
n, m, TypeVariableName.get("B"), Collections.singletonList(Modifier.ABSTRACT)));
7879
});
7980
}
8081

codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,14 @@ public String clientContextParamName(String paramName) {
124124
return intermediateModel.getNamingStrategy().getEnumValueName(paramName);
125125
}
126126

127-
public MethodSpec clientContextParamSetterMethodDeclaration(String name, ClientContextParam param, TypeName returnType) {
127+
public MethodSpec clientContextParamSetterMethodDeclaration(String name, ClientContextParam param, TypeName returnType,
128+
List<Modifier> modifiers) {
128129
String setterName = Utils.unCapitalize(CodegenNamingUtils.pascalCase(name));
129130
TypeName type = toJavaType(param.getType());
130131

131132
MethodSpec.Builder b = MethodSpec.methodBuilder(setterName)
132-
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
133+
.addModifiers(Modifier.PUBLIC)
134+
.addModifiers(modifiers)
133135
.addParameter(type, setterName)
134136
.returns(returnType);
135137

0 commit comments

Comments
 (0)