private void processComponents()

in geronimo-openapi-impl/src/main/java/org/apache/geronimo/microprofile/openapi/impl/processor/AnnotationProcessor.java [606:656]


    private void processComponents(final OpenAPI api, final Components components) {
        final org.eclipse.microprofile.openapi.models.Components impl = new ComponentsImpl();
        api.components(impl);
        processCallbacks(api, components.callbacks());
        if (components.schemas().length > 0) {
            Map<String, org.eclipse.microprofile.openapi.models.media.Schema> schemas = Stream.of(components.schemas())
                .map(it -> {
                    final String ref = of(it.name()).filter(n -> !n.isEmpty()).orElseGet(() -> it.ref());
                    return new SchemaWithRef(ref, mapSchema(api, it, ref));
                })
                .collect(toMap(it -> it.ref, it -> it.schema));

            schemas.forEach((key, value) -> impl.getSchemas().putIfAbsent(key,value));
        }
        if (components.links().length > 0) {
            impl.links(Stream.of(components.links()).collect(
                    toMap(it -> of(it.name()).filter(n -> !n.isEmpty()).orElseGet(() -> it.ref()), this::mapLink)));
        }
        if (components.securitySchemes().length > 0) {
            impl.securitySchemes(Stream.of(components.securitySchemes())
                    .collect(toMap(
                            it -> of(it.securitySchemeName()).filter(v -> !v.isEmpty()).orElseGet(() -> it.ref()),
                            this::mapSecurityScheme)));
        }
        if (components.requestBodies().length > 0) {
            impl.requestBodies(Stream.of(components.requestBodies())
                    .collect(toMap(it -> of(it.name()).filter(n -> !n.isEmpty()).orElseGet(() -> it.ref()),
                            it -> mapRequestBody(null, null, () -> impl, it))));
        }
        if (components.parameters().length > 0) {
            impl.parameters(Stream.of(components.parameters())
                    .collect(toMap(it -> of(it.name()).filter(n -> !n.isEmpty()).orElseGet(() -> it.ref()),
                            it -> mapParameter(null, () -> impl, it))));
        }
        if (components.headers().length > 0) {
            impl.headers(Stream.of(components.headers())
                    .collect(toMap(it -> of(it.name()).filter(n -> !n.isEmpty()).orElseGet(() -> it.ref()),
                            it -> mapHeader(() -> impl, it))));
        }
        if (components.examples().length > 0) {
            impl.examples(Stream.of(components.examples()).collect(toMap(
                    it -> of(it.name()).filter(n -> !n.isEmpty()).orElseGet(() -> it.ref()), this::mapExample)));
        }
        if (components.responses().length > 0) {
            final APIResponses responses = new APIResponsesImpl();
            responses.putAll(Stream.of(components.responses())
                    .collect(toMap(it -> of(it.name()).filter(c -> !c.isEmpty()).orElseGet(() -> it.ref()),
                            it -> mapResponse(() -> impl, it, null), (a, b) -> b)));
            impl.responses(responses);
        }
    }