Interface ContextLocal<T>
public interface ContextLocal<T>
A local storage for arbitrary data attached to a Context.
Local storage should be registered before creating a Vertx instance, once registered a
local storage cannot be unregistered.
It is recommended to initialize local storage as static fields of a VertxServiceProvider,
since providers are discovered before the capture of known local storages.
public class CustomLocal implements VertxServiceProvider {
public static final ContextLocal<CustomLocal> KEY = ContextLocal.registerLocal(CustomLocal.class);
...
}
Such provider must then be declared as a Java service provider
in META/INF/services/io.vertx.core.spi.VertxServiceProvider and optionally in a module-info.java.
Context local can be used from a Vert.x Context with the following methods.
Context.getLocal(ContextLocal)Context.getLocal(ContextLocal, Supplier)Context.putLocal(ContextLocal, Object)Context.removeLocal(ContextLocal)Context.getLocal(ContextLocal, AccessMode)Context.getLocal(ContextLocal, AccessMode, Supplier)Context.putLocal(ContextLocal, AccessMode, Object)Context.removeLocal(ContextLocal, AccessMode)
context.putLocal(CustomLocal.KEY, new CustomLocal(...));
- Author:
- Julien Viet
-
Method Summary
Modifier and TypeMethodDescriptiondefault TGet the local data from thecontext.default Tget(Context context, AccessMode accessMode) Likeget(Context)but with anaccessMode.default Tget(Context context, AccessMode accessMode, Supplier<? extends T> initialValueSupplier) Likeget(Context, Supplier)but with anaccessMode.default TGet the local data from thecontext, when it does not exist then callinitialValueSupplierto obtain the initial value.default voidput(Context context, AccessMode accessMode, T value) Likeput(Context, T)but with anaccessMode.default voidPut local data in thecontext.static <T> ContextLocal<T> registerLocal(Class<T> type) Registers a context local storage.static <T> ContextLocal<T> registerLocal(Class<T> type, Function<T, T> duplicator) Registers a context local storage.default voidRemove the local data from the context.default voidremove(Context context, AccessMode accessMode) Likeremove(Context)but with anaccessMode.
-
Method Details
-
registerLocal
Registers a context local storage.- Returns:
- the context local storage
-
registerLocal
Registers a context local storage.- Returns:
- the context local storage
-
get
-
get
Get the local data from thecontext, when it does not exist then callinitialValueSupplierto obtain the initial value. The supplier can be called multiple times when several threads call this method concurrently.- Parameters:
initialValueSupplier- the supplier of the initial value- Returns:
- the local data
-
put
-
remove
Remove the local data from the context. -
get
Likeget(Context)but with anaccessMode. -
get
Likeget(Context, Supplier)but with anaccessMode. -
put
Likeput(Context, T)but with anaccessMode. -
remove
Likeremove(Context)but with anaccessMode.
-