Package software.amazon.awssdk.utils
Class AttributeMap
- java.lang.Object
-
- software.amazon.awssdk.utils.AttributeMap
-
- All Implemented Interfaces:
AutoCloseable
,ToCopyableBuilder<AttributeMap.Builder,AttributeMap>
,SdkAutoCloseable
@Immutable public final class AttributeMap extends Object implements ToCopyableBuilder<AttributeMap.Builder,AttributeMap>, SdkAutoCloseable
A map fromAttributeMap.Key<T>
toT
that ensures the values stored with a key matches the type associated with the key. This does not implementMap
because it has more strict typing requirements, but aMap
can be converted to an {code AttributeMap} via the type-unsafeAttributeMap
method. This can be used for storing configuration values (OptionKey.LOG_LEVEL
toBoolean.TRUE
), attaching arbitrary attributes to a request chain (RequestAttribute.CONFIGURATION
toClientConfiguration
) or similar use-cases.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AttributeMap.Builder
static class
AttributeMap.Key<T>
An abstract class extended by pseudo-enums defining the key for data that is stored in theAttributeMap
.static interface
AttributeMap.LazyValue<T>
A value that is evaluated lazily.static interface
AttributeMap.LazyValueSource
A source for other values, provided to aAttributeMap.LazyValue
when the value is resolved.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AttributeMap.Builder
builder()
void
close()
<T> boolean
containsKey(AttributeMap.Key<T> typedKey)
Return true if the provided key is configured in this map.AttributeMap
copy()
static AttributeMap
empty()
boolean
equals(Object obj)
<T> T
get(AttributeMap.Key<T> key)
Get the value associated with the provided key from this map.int
hashCode()
AttributeMap
merge(AttributeMap lowerPrecedence)
Merges two AttributeMaps into one.AttributeMap.Builder
toBuilder()
Take this object and create a builder that contains all of the current property values of this object.String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
-
-
-
Method Detail
-
containsKey
public <T> boolean containsKey(AttributeMap.Key<T> typedKey)
Return true if the provided key is configured in this map. Useful for differentiating between whether the provided key was not configured in the map or if it is configured, but its value is null.
-
get
public <T> T get(AttributeMap.Key<T> key)
Get the value associated with the provided key from this map. This will return null if the value is not set or if the value stored is null. These cases can be disambiguated usingcontainsKey(Key)
.
-
merge
public AttributeMap merge(AttributeMap lowerPrecedence)
Merges two AttributeMaps into one. This object is given higher precedence then the attributes passed in as a parameter.- Parameters:
lowerPrecedence
- Options to merge into 'this' AttributeMap object. Any attribute already specified in 'this' object will be left as is since it has higher precedence.- Returns:
- New options with values merged.
-
empty
public static AttributeMap empty()
-
close
public void close()
Description copied from interface:SdkAutoCloseable
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceSdkAutoCloseable
-
copy
public AttributeMap copy()
-
toBuilder
public AttributeMap.Builder toBuilder()
Description copied from interface:ToCopyableBuilder
Take this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilder
in interfaceToCopyableBuilder<AttributeMap.Builder,AttributeMap>
- Returns:
- a builder for type T
-
builder
public static AttributeMap.Builder builder()
-
-