Interface AttributeStore

    • Method Detail

      • computeAttributeIfAbsent

        default <T> T computeAttributeIfAbsent​(AttributeRepository.AttributeKey<T> key,
                                               Function<? super AttributeRepository.AttributeKey<T>,​? extends T> resolver)
        If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null.
        Type Parameters:
        T - The generic attribute type
        Parameters:
        key - The key of the attribute; must not be null.
        resolver - The (never null) mapping function to use if value not already mapped. If returns null then value is not mapped to the provided key.
        Returns:
        The resolved value - null if value not mapped and resolver did not return a non-null value for it
      • setAttribute

        <T> T setAttribute​(AttributeRepository.AttributeKey<T> key,
                           T value)
        Sets a user-defined attribute.
        Type Parameters:
        T - The generic attribute type
        Parameters:
        key - The key of the attribute; must not be null.
        value - The value of the attribute; must not be null.
        Returns:
        The old value of the attribute; null if it is new.
      • removeAttribute

        <T> T removeAttribute​(AttributeRepository.AttributeKey<T> key)
        Removes the user-defined attribute
        Type Parameters:
        T - The generic attribute type
        Parameters:
        key - The key of the attribute; must not be null.
        Returns:
        The removed value; null if no previous value
      • clearAttributes

        void clearAttributes()
        Removes all currently stored user-defined attributes