public TypeSpec poetClass()

in codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/ServiceMetadataGenerator.java [94:154]


    public TypeSpec poetClass() {
        TypeName listOfRegions = ParameterizedTypeName.get(ClassName.get(List.class), ClassName.get(regionBasePackage, "Region"));
        TypeName mapByServiceEndpointKey = ParameterizedTypeName.get(ClassName.get(Map.class),
                                                                     serviceEndpointKeyClass(),
                                                                     ClassName.get(String.class));
        TypeName mapByPair = ParameterizedTypeName.get(ClassName.get(Map.class),
                                                       byPartitionKeyClass(),
                                                       ClassName.get(String.class));
        TypeName listOfServicePartitionMetadata =
            ParameterizedTypeName.get(ClassName.get(List.class), ClassName.get(regionBasePackage, "ServicePartitionMetadata"));

        return TypeSpec.classBuilder(className())
                       .addModifiers(Modifier.PUBLIC)
                       .addAnnotation(AnnotationSpec.builder(Generated.class)
                                                    .addMember("value", "$S", "software.amazon.awssdk:codegen")
                                                    .build())
                       .addAnnotation(SdkPublicApi.class)
                       .addModifiers(FINAL)
                       .addSuperinterface(ClassName.get(regionBasePackage, "ServiceMetadata"))
                       .addField(FieldSpec.builder(String.class, "ENDPOINT_PREFIX")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer("$S", serviceEndpointPrefix)
                                          .build())
                       .addField(FieldSpec.builder(listOfRegions, "REGIONS")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(regionsField(partitions))
                                          .build())
                       .addField(FieldSpec.builder(listOfServicePartitionMetadata, "PARTITIONS")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(servicePartitions(partitions))
                                          .build())
                       .addField(FieldSpec.builder(mapByServiceEndpointKey, "SIGNING_REGIONS_BY_REGION")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(signingRegionsByRegion(partitions))
                                          .build())
                       .addField(FieldSpec.builder(mapByPair, "SIGNING_REGIONS_BY_PARTITION")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(signingRegionsByPartition(partitions))
                                          .build())
                       .addField(FieldSpec.builder(mapByServiceEndpointKey, "DNS_SUFFIXES_BY_REGION")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(dnsSuffixesByRegion(partitions))
                                          .build())
                       .addField(FieldSpec.builder(mapByPair, "DNS_SUFFIXES_BY_PARTITION")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(dnsSuffixesByPartition(partitions))
                                          .build())
                       .addField(FieldSpec.builder(mapByServiceEndpointKey, "HOSTNAMES_BY_REGION")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(hostnamesByRegion(partitions))
                                          .build())
                       .addField(FieldSpec.builder(mapByPair, "HOSTNAMES_BY_PARTITION")
                                          .addModifiers(PRIVATE, FINAL, STATIC)
                                          .initializer(hostnamesByPartition(partitions))
                                          .build())
                       .addMethod(regions())
                       .addMethod(partitions(listOfServicePartitionMetadata))
                       .addMethod(endpointFor())
                       .addMethod(signingRegion())
                       .build();
    }