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

eu.toolchain.rs.RsRequestContext Maven / Gradle / Ivy

There is a newer version: 0.4.0
Show newest version
package eu.toolchain.rs;

import java.util.Optional;
import java.util.function.Supplier;
import java.util.stream.Stream;

public interface RsRequestContext {
    /**
     * Get the given path parameter.
     *
     * @param key Key of the path parameter to get.
     * @return An optional containing the value of the path parameter, or empty if none exists.
     */
    Optional getPathParameter(final String key);

    /**
     * Provide a default path parameter.
     *
     * @param key Key of the path parameter provided.
     * @param defaultValue The default value to provide.
     * @return An RsParameter representing the default value.
     */
    default Supplier provideDefaultPathParameter(String key, String defaultValue) {
        return provideDefault(defaultValue);
    }

    /**
     * Get all values for a given query parameter.
     *
     * @param key Key of the query parameter to get.
     * @return An stream containing all available values of the query parameter.
     */
    Stream getAllQueryParameters(final String key);

    /**
     * Get the given query parameter.
     *
     * @param key Key of the query parameter to get.
     * @return An optional containing the value of the query parameter, or empty if none exists.
     */
    Optional getQueryParameter(final String key);

    /**
     * Provide a default query parameter.
     *
     * @param key Key of the query parameter provided.
     * @param defaultValue The default value to provide.
     * @return An RsParameter representing the default value.
     */
    default Supplier provideDefaultQueryParameter(String key, String defaultValue) {
        return provideDefault(defaultValue);
    }

    /**
     * Get all values for a given header parameter.
     *
     * @param key Key of the header parameter to get.
     * @return An stream containing all available values of the header parameter.
     */
    Stream getAllHeaderParameters(final String key);

    /**
     * Get the given header parameter.
     *
     * @param key Key of the header parameter to get.
     * @return An optional containing the value of the header parameter, or empty if none exists.
     */
    Optional getHeaderParameter(final String key);

    /**
     * Provide a default header parameter.
     *
     * @param key Key of the header parameter provided.
     * @param defaultValue The default value to provide.
     * @return An RsParameter representing the default value.
     */
    default Supplier provideDefaultHeaderParameter(String key, String defaultValue) {
        return provideDefault(defaultValue);
    }

    /**
     * Get the payload of the request.
     *
     * @return An optional containing the payload of the request, or empty if none exists.
     */
    Optional getPayload();

    /**
     * Provide a default value as a parameter.
     *
     * @param defaultValue The value to provide.
     * @return A supplier providing a default value.
     */
    Supplier provideDefault(String defaultValue);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy