All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.coreoz.openapi.config.OpenApiMergerConfigurationActions Maven / Gradle / Ivy

The newest version!
package com.coreoz.openapi.config;

import com.coreoz.http.routes.parsing.HttpRouteDefinition;
import com.google.common.base.Strings;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public record OpenApiMergerConfigurationActions(
    @NotNull OpenApiOnRouteMatch onRouteMatch,
    @NotNull OpenApiOnMissingOperation onMissingOperation,
    @NotNull OpenApiOnMissingRoute onMissingRoute,
    @NotNull OpenApiOnNewComponent onNewComponent
) {
    private static final OpenApiMergerConfigurationActions DEFAULT_ACTIONS = new OpenApiMergerConfigurationActions<>(
        OpenApiOnRouteMatch.addOperation(),
        OpenApiOnMissingOperation.noneAction(),
        OpenApiOnMissingRoute.addOperation(),
        OpenApiOnNewComponent.identity()
    );

    public static  @NotNull OpenApiMergerConfigurationActions defaultActions() {
        //noinspection unchecked
        return (OpenApiMergerConfigurationActions) DEFAULT_ACTIONS;
    }

    // TODO à déplacer dans l'adapter de merge sûrement
    public static @NotNull String makeOperationIdPrefix(@Nullable String prefix, @NotNull String operationId) {
        return Strings.nullToEmpty(prefix) + operationId;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy