Interface AttributeContainer

  • All Superinterfaces:
    HasAttributes

    @Incubating
    public interface AttributeContainer
    extends HasAttributes
    An attribute container is a container of attributes, which are strongly typed named entities. Such a container is responsible for storing and getting attributes in a type safe way. In particular, attributes are strongly typed, meaning that when we get a value from the container, the returned value type is inferred from the type of the attribute. In a way, an attribute container is similar to a Map where the entry is a "typed String" and the value is of the string type. However the set of methods available to the container is much more limited. It is not allowed to have two attributes with the same name but different types in the container.
    Since:
    3.3
    • Method Detail

      • keySet

        Set<Attribute<?>> keySet()
        Returns the set of attribute keys of this container.
        Returns:
        the set of attribute keys.
      • attribute

        <T> AttributeContainer attribute​(Attribute<T> key,
                                         T value)
        Sets an attribute value. It is not allowed to use null as an attribute value.
        Type Parameters:
        T - the type of the attribute
        Parameters:
        key - the attribute key
        value - the attribute value
        Returns:
        this container
      • getAttribute

        @Nullable
        <T> T getAttribute​(Attribute<T> key)
        Returns the value of an attribute found in this container, or null if this container doesn't have it.
        Type Parameters:
        T - the type of the attribute
        Parameters:
        key - the attribute key
        Returns:
        the attribute value, or null if not found
      • isEmpty

        boolean isEmpty()
        Returns true if this container is empty.
        Returns:
        true if this container is empty.
      • contains

        boolean contains​(Attribute<?> key)
        Tells if a specific attribute is found in this container.
        Parameters:
        key - the key of the attribute
        Returns:
        true if this attribute is found in this container.