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

io.smallrye.config.ConfigSourceInterceptorContext Maven / Gradle / Ivy

package io.smallrye.config;

import java.io.Serializable;
import java.util.Iterator;

import io.smallrye.common.annotation.Experimental;

/**
 * Exposes contextual information about the intercepted invocation of {@link ConfigSourceInterceptor}. This allows
 * implementers to control the behavior of the invocation chain.
 */
@Experimental("Interceptor API to intercept resolution of a configuration name")
public interface ConfigSourceInterceptorContext extends Serializable {
    /**
     * Proceeds to the next interceptor in the chain.
     *
     * @param name the configuration name to lookup. Can be the original key.
     * @return a {@link ConfigValue} with information about the name, value, config source and ordinal, or {@code null}
     *         if the value isn't present.
     */
    ConfigValue proceed(String name);

    /**
     * Proceeds to the next interceptor in the chain.
     *
     * @return an Iterator of Strings with configuration names.
     */
    Iterator iterateNames();

    /**
     * Proceeds to the next interceptor in the chain.
     *
     * @return an Iterator of {@link ConfigValue} with information about the name, value, config source and ordinal.
     */
    Iterator iterateValues();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy