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 from AttributeMap.Key<T> to T that ensures the values stored with a key matches the type associated with the key. This does not implement Map because it has more strict typing requirements, but a Map can be converted to an {code AttributeMap} via the type-unsafe AttributeMap method. This can be used for storing configuration values (OptionKey.LOG_LEVEL to Boolean.TRUE), attaching arbitrary attributes to a request chain (RequestAttribute.CONFIGURATION to ClientConfiguration) or similar use-cases.
  • Method Details

    • 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 using containsKey(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 interface AutoCloseable
      Specified by:
      close in interface SdkAutoCloseable
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • 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 interface ToCopyableBuilder<AttributeMap.Builder,AttributeMap>
      Returns:
      a builder for type T
    • builder

      public static AttributeMap.Builder builder()