private void addFieldsAndAccessors()

in codegen/src/main/java/software/amazon/awssdk/codegen/poet/auth/scheme/DefaultAuthSchemeParamsSpec.java [167:227]


    private void addFieldsAndAccessors(TypeSpec.Builder b) {
        b.addField(FieldSpec.builder(String.class, "operation")
                            .addModifiers(Modifier.PRIVATE, Modifier.FINAL)
                            .build());

        b.addMethod(MethodSpec.methodBuilder("operation")
                              .addModifiers(Modifier.PUBLIC)
                              .addAnnotation(Override.class)
                              .returns(String.class)
                              .addStatement("return operation")
                              .build());

        if (authSchemeSpecUtils.usesSigV4()) {
            b.addField(FieldSpec.builder(Region.class, "region")
                                .addModifiers(Modifier.PRIVATE, Modifier.FINAL)
                                .build());

            b.addMethod(MethodSpec.methodBuilder("region")
                                  .addModifiers(Modifier.PUBLIC)
                                  .addAnnotation(Override.class)
                                  .returns(Region.class)
                                  .addStatement("return region")
                                  .build());
        }

        if (authSchemeSpecUtils.hasSigV4aSupport()) {
            b.addField(FieldSpec.builder(RegionSet.class, "regionSet")
                                .addModifiers(Modifier.PRIVATE, Modifier.FINAL)
                                .build());

            b.addMethod(MethodSpec.methodBuilder("regionSet")
                                  .addModifiers(Modifier.PUBLIC)
                                  .addAnnotation(Override.class)
                                  .returns(RegionSet.class)
                                  .addStatement("return regionSet")
                                  .build());
        }

        if (authSchemeSpecUtils.generateEndpointBasedParams()) {
            parameters().forEach((name, model) -> {
                if (authSchemeSpecUtils.includeParam(name)) {
                    b.addField(endpointRulesSpecUtils.parameterClassField(name, model));
                    b.addMethod(endpointRulesSpecUtils.parameterClassAccessorMethod(name, model)
                                                      .toBuilder()
                                                      .addAnnotation(Override.class)
                                                      .build());
                }
            });
            ClassName endpointProvider = endpointRulesSpecUtils.providerInterfaceName();
            b.addField(FieldSpec.builder(endpointProvider, "endpointProvider")
                                .addModifiers(Modifier.PRIVATE, Modifier.FINAL)
                                .build());
            b.addMethod(MethodSpec.methodBuilder("endpointProvider")
                                  .addModifiers(Modifier.PUBLIC)
                                  .addAnnotation(Override.class)
                                  .returns(endpointProvider)
                                  .addStatement("return endpointProvider")
                                  .build());

        }
    }