Skip to content

Commit 57e9296

Browse files
committed
refactor: extract resolveMetricPublishersMethod to ClientClassUtils
1 parent f09a14c commit 57e9296

3 files changed

Lines changed: 41 additions & 74 deletions

File tree

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import static javax.lang.model.element.Modifier.STATIC;
2626
import static software.amazon.awssdk.codegen.internal.Constant.EVENT_PUBLISHER_PARAM_NAME;
2727
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.addS3ArnableFieldCode;
28+
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.resolveMetricPublishersMethod;
2829
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.transformServiceId;
2930
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.updateSdkClientConfigurationMethod;
3031
import static software.amazon.awssdk.codegen.poet.client.SyncClientClass.addRequestModifierCode;
@@ -41,7 +42,6 @@
4142
import java.net.URI;
4243
import java.nio.ByteBuffer;
4344
import java.util.ArrayList;
44-
import java.util.Collections;
4545
import java.util.Comparator;
4646
import java.util.List;
4747
import java.util.concurrent.CompletableFuture;
@@ -75,7 +75,6 @@
7575
import software.amazon.awssdk.codegen.poet.model.EventStreamSpecHelper;
7676
import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationUtils;
7777
import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils;
78-
import software.amazon.awssdk.core.RequestOverrideConfiguration;
7978
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
8079
import software.amazon.awssdk.core.async.AsyncResponseTransformerUtils;
8180
import software.amazon.awssdk.core.async.SdkPublisher;
@@ -567,41 +566,6 @@ protected void addPresignedUrlExtensionMethod(Builder type) {
567566
type.addMethod(presignedUrlExtension);
568567
}
569568

570-
private MethodSpec resolveMetricPublishersMethod() {
571-
String clientConfigName = "clientConfiguration";
572-
String requestOverrideConfigName = "requestOverrideConfiguration";
573-
574-
MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder("resolveMetricPublishers")
575-
.addModifiers(PRIVATE, STATIC)
576-
.returns(ParameterizedTypeName.get(List.class, MetricPublisher.class))
577-
.addParameter(SdkClientConfiguration.class, clientConfigName)
578-
.addParameter(RequestOverrideConfiguration.class, requestOverrideConfigName);
579-
580-
String publishersName = "publishers";
581-
582-
methodBuilder.addStatement("$T $N = null", ParameterizedTypeName.get(List.class, MetricPublisher.class), publishersName);
583-
584-
methodBuilder.beginControlFlow("if ($N != null)", requestOverrideConfigName)
585-
.addStatement("$N = $N.metricPublishers()", publishersName, requestOverrideConfigName)
586-
.endControlFlow();
587-
588-
methodBuilder.beginControlFlow("if ($1N == null || $1N.isEmpty())", publishersName)
589-
.addStatement("$N = $N.option($T.$N)",
590-
publishersName,
591-
clientConfigName,
592-
SdkClientOption.class,
593-
"METRIC_PUBLISHERS")
594-
.endControlFlow();
595-
596-
methodBuilder.beginControlFlow("if ($1N == null)", publishersName)
597-
.addStatement("$N = $T.emptyList()", publishersName, Collections.class)
598-
.endControlFlow();
599-
600-
methodBuilder.addStatement("return $N", publishersName);
601-
602-
return methodBuilder.build();
603-
}
604-
605569
private void addScheduledExecutorIfNeeded(Builder classBuilder) {
606570
if (!hasScheduledExecutor) {
607571
classBuilder.addField(FieldSpec.builder(ClassName.get(ScheduledExecutorService.class), "executorService")

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.awssdk.codegen.poet.client;
1717

1818
import static javax.lang.model.element.Modifier.PRIVATE;
19+
import static javax.lang.model.element.Modifier.STATIC;
1920
import static software.amazon.awssdk.codegen.poet.PoetUtils.classNameFromFqcn;
2021

2122
import com.squareup.javapoet.ClassName;
@@ -26,6 +27,7 @@
2627
import com.squareup.javapoet.TypeName;
2728
import com.squareup.javapoet.TypeVariableName;
2829
import com.squareup.javapoet.WildcardTypeName;
30+
import java.util.Collections;
2931
import java.util.List;
3032
import java.util.Map;
3133
import java.util.Objects;
@@ -52,6 +54,7 @@
5254
import software.amazon.awssdk.codegen.poet.PoetUtils;
5355
import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeSpecUtils;
5456
import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils;
57+
import software.amazon.awssdk.core.RequestOverrideConfiguration;
5558
import software.amazon.awssdk.core.SdkClient;
5659
import software.amazon.awssdk.core.SdkPlugin;
5760
import software.amazon.awssdk.core.SdkRequest;
@@ -67,6 +70,7 @@
6770
import software.amazon.awssdk.core.signer.Signer;
6871
import software.amazon.awssdk.endpoints.Endpoint;
6972
import software.amazon.awssdk.http.auth.spi.scheme.AuthSchemeOption;
73+
import software.amazon.awssdk.metrics.MetricPublisher;
7074
import software.amazon.awssdk.retries.api.RetryStrategy;
7175
import software.amazon.awssdk.utils.AttributeMap;
7276
import software.amazon.awssdk.utils.CollectionUtils;
@@ -580,4 +584,39 @@ static MethodSpec resolveEndpointMethod(AuthSchemeSpecUtils authSchemeSpecUtils,
580584
return b.build();
581585
}
582586

587+
static MethodSpec resolveMetricPublishersMethod() {
588+
String clientConfigName = "clientConfiguration";
589+
String requestOverrideConfigName = "requestOverrideConfiguration";
590+
591+
MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder("resolveMetricPublishers")
592+
.addModifiers(PRIVATE, STATIC)
593+
.returns(ParameterizedTypeName.get(List.class, MetricPublisher.class))
594+
.addParameter(SdkClientConfiguration.class, clientConfigName)
595+
.addParameter(RequestOverrideConfiguration.class, requestOverrideConfigName);
596+
597+
String publishersName = "publishers";
598+
599+
methodBuilder.addStatement("$T $N = null", ParameterizedTypeName.get(List.class, MetricPublisher.class), publishersName);
600+
601+
methodBuilder.beginControlFlow("if ($N != null)", requestOverrideConfigName)
602+
.addStatement("$N = $N.metricPublishers()", publishersName, requestOverrideConfigName)
603+
.endControlFlow();
604+
605+
methodBuilder.beginControlFlow("if ($1N == null || $1N.isEmpty())", publishersName)
606+
.addStatement("$N = $N.option($T.$N)",
607+
publishersName,
608+
clientConfigName,
609+
SdkClientOption.class,
610+
"METRIC_PUBLISHERS")
611+
.endControlFlow();
612+
613+
methodBuilder.beginControlFlow("if ($1N == null)", publishersName)
614+
.addStatement("$N = $T.emptyList()", publishersName, Collections.class)
615+
.endControlFlow();
616+
617+
methodBuilder.addStatement("return $N", publishersName);
618+
619+
return methodBuilder.build();
620+
}
621+
583622
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static javax.lang.model.element.Modifier.STATIC;
2323
import static software.amazon.awssdk.codegen.poet.PoetUtils.classNameFromFqcn;
2424
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.addS3ArnableFieldCode;
25+
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.resolveMetricPublishersMethod;
2526
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.transformServiceId;
2627
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.updateSdkClientConfigurationMethod;
2728

@@ -34,7 +35,6 @@
3435
import com.squareup.javapoet.WildcardTypeName;
3536
import java.net.URI;
3637
import java.util.ArrayList;
37-
import java.util.Collections;
3838
import java.util.List;
3939
import java.util.Map;
4040
import java.util.Optional;
@@ -62,7 +62,6 @@
6262
import software.amazon.awssdk.codegen.poet.client.specs.XmlProtocolSpec;
6363
import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationUtils;
6464
import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils;
65-
import software.amazon.awssdk.core.RequestOverrideConfiguration;
6665
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
6766
import software.amazon.awssdk.core.client.config.SdkClientOption;
6867
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
@@ -412,41 +411,6 @@ static ProtocolSpec getProtocolSpecs(PoetExtension poetExtensions, IntermediateM
412411
}
413412
}
414413

415-
private MethodSpec resolveMetricPublishersMethod() {
416-
String clientConfigName = "clientConfiguration";
417-
String requestOverrideConfigName = "requestOverrideConfiguration";
418-
419-
MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder("resolveMetricPublishers")
420-
.addModifiers(PRIVATE, STATIC)
421-
.returns(ParameterizedTypeName.get(List.class, MetricPublisher.class))
422-
.addParameter(SdkClientConfiguration.class, clientConfigName)
423-
.addParameter(RequestOverrideConfiguration.class, requestOverrideConfigName);
424-
425-
String publishersName = "publishers";
426-
427-
methodBuilder.addStatement("$T $N = null", ParameterizedTypeName.get(List.class, MetricPublisher.class), publishersName);
428-
429-
methodBuilder.beginControlFlow("if ($N != null)", requestOverrideConfigName)
430-
.addStatement("$N = $N.metricPublishers()", publishersName, requestOverrideConfigName)
431-
.endControlFlow();
432-
433-
methodBuilder.beginControlFlow("if ($1N == null || $1N.isEmpty())", publishersName)
434-
.addStatement("$N = $N.option($T.$N)",
435-
publishersName,
436-
clientConfigName,
437-
SdkClientOption.class,
438-
"METRIC_PUBLISHERS")
439-
.endControlFlow();
440-
441-
methodBuilder.beginControlFlow("if ($1N == null)", publishersName)
442-
.addStatement("$N = $T.emptyList()", publishersName, Collections.class)
443-
.endControlFlow();
444-
445-
methodBuilder.addStatement("return $N", publishersName);
446-
447-
return methodBuilder.build();
448-
}
449-
450414
@Override
451415
protected MethodSpec.Builder waiterOperationBody(MethodSpec.Builder builder) {
452416
return builder.addAnnotation(Override.class)

0 commit comments

Comments
 (0)