public static void addHeaderMutations()

in callouts/java/service-callout/src/main/java/service/ServiceCalloutTools.java [58:97]


    public static void addHeaderMutations(
            HeadersResponse.Builder headersResponseBuilder,
            Iterable<Map.Entry<String, String>> addHeaders,
            Iterable<String> removeHeaders,
            Boolean clearRouteCache,
            HeaderValueOption.HeaderAppendAction appendAction) {

        // Access or initialize HeaderMutation
        HeaderMutation.Builder headerMutationBuilder =
                headersResponseBuilder.getResponseBuilder().getHeaderMutationBuilder();

        // Handle adding headers
        if (addHeaders != null) {
            for (Map.Entry<String, String> entry : addHeaders) {
                HeaderValueOption.Builder headerValueOptionBuilder = HeaderValueOption.newBuilder()
                        .setHeader(HeaderValue.newBuilder()
                                .setKey(entry.getKey())
                                .setRawValue(ByteString.copyFromUtf8(entry.getValue()))
                        );

                // Apply append action if present
                if (appendAction != null) {
                    headerValueOptionBuilder.setAppendAction(appendAction);
                }

                // Add header mutation
                headerMutationBuilder.addSetHeaders(headerValueOptionBuilder.build());
            }
        }

        // Handle removing headers
        if (removeHeaders != null) {
            headerMutationBuilder.addAllRemoveHeaders(removeHeaders);
        }

        // Clear route cache if required
        if (Boolean.TRUE.equals(clearRouteCache)) {
            headersResponseBuilder.getResponseBuilder().setClearRouteCache(true);
        }
    }