Package com.linecorp.armeria.common
Interface AttributesBuilder
- All Superinterfaces:
AttributesSetters
A builder for
Attributes
.-
Method Summary
Modifier and TypeMethodDescriptionbuild()
Returns a newly createdAttributes
with the entries in this builder.default <T> AttributesBuilder
removeAndThen
(AttributeKey<T> key) Removes the value associated with the specifiedAttributeKey
in theAttributesGetters.ownAttrs()
.set
(AttributeKey<T> key, T value) Sets the specified value with the givenAttributeKey
.Methods inherited from interface com.linecorp.armeria.common.AttributesSetters
getAndSet, remove
-
Method Details
-
set
Description copied from interface:AttributesSetters
Sets the specified value with the givenAttributeKey
. The old value associated with theAttributeKey
is replaced by the specified value. If anull
value is specified, the value in theAttributesGetters.parent()
is hidden as well.static final AttributeKey<String> USER_ID = AttributeKey.valueOf("USER_ID"); static final AttributeKey<String> SECRET_TOKEN = AttributeKey.valueOf("SECRET_TOKEN"); static final AttributeKey<String> TRACE_ID = AttributeKey.valueOf("TRACE_ID"); Attributes attributes = Attributes.of(USER_ID, "Meri Kim", SECRET_TOKEN, "secret-1", TRACE_ID, "trace-1"); Attributes child = Attributes.builder(attributes) .set(SECRET_TOKEN, null) .set(TRACE_ID, "trace-2") .build(); // Any mutations in the child do not modify the value in the parent. assert attributes.attr(USER_ID).equals("Meri Kim"); assert attributes.attr(SECRET_TOKEN).equals("secret-1"); assert attributes.attr(TRACE_ID).equals("trace-1"); // Inherits the value of USER_ID from the parent. assert child.attr(USER_ID).equals("Meri Kim"); // Hides the value of SECRET_TOKEN that the parent has. assert child.attr(SECRET_TOKEN) == null; // Overrides the parent's TRACE_ID. assert child.attr(TRACE_ID).equals("trace-2");
- Specified by:
set
in interfaceAttributesSetters
-
removeAndThen
Description copied from interface:AttributesSetters
Removes the value associated with the specifiedAttributeKey
in theAttributesGetters.ownAttrs()
. UnlikeAttributesSetters.remove(AttributeKey)
this method returns itself so that the caller can chain the invocations.Note that this method won't remove the value in
AttributesGetters.parent()
.- Specified by:
removeAndThen
in interfaceAttributesSetters
-
build
Attributes build()Returns a newly createdAttributes
with the entries in this builder.
-