Represents an opaque type that consists of a key-value pair which can be used to set multiple keys in the context.
Retrieve the current definition of a key, but only if it is defined in the current request-local context.
Bind multiple key-value pairs.
Bind multiple key-value pairs. Keys later in the collection take precedent over keys earlier in the collection.
Bind two keys and values in the scope of fn
.
Bind value
to key
in the scope of fn
.
Unbind the passed-in keys, in the scope of fn
.
Unbind the passed-in key, in the scope of fn
.
Clears all bindings in the scope of fn
.
Clears all bindings in the scope of fn
.
For example:
context.let(Key1, "value1") { context.let(Key2, "something else") { context.letClearAll { // context.contains(Key1) == false // context.contains(Key2) == false } // context(Key1) == "value1" // context(Key2) == "something else" } }
Retrieve the current definition of a key.
Retrieve the current definition of a key.
NoSuchElementException
when the key is undefined
in the current request-local context.
Tells whether key
is defined in the current request-local
context.
Retrieve the current definition of a key if it is defined.
Retrieve the current definition of a key if it is defined.
If it is not defined, orElse
is evaluated and returned.
A context contains a number of let-delimited bindings. Bindings are indexed by type Key[A] in a typesafe manner. Later bindings shadow earlier ones.
Note that the implementation of context maintains all bindings in a linked list; context lookup requires a linear search.