public interface AttributeContainer
AttributeType
to determine uniqueness (only one of each attribute type can be added).
AttributeListener
can be added for an attribute type, trigger code will fire upon add,
update or removal of attributes of that type. Each collection manipulation method returns
Optional
of the attribute (may be empty if none matching are found).Modifier and Type | Method and Description |
---|---|
default void |
addAll(AttributeContainer sourceContainer)
Adds all attributes and listeners from the source container.
|
default void |
addAllAttributeListeners(AttributeContainer sourceContainer)
Adds all attribute listeners from the source container.
|
default void |
addAllAttributes(AttributeContainer sourceContainer)
Adds all attributes from the source container.
|
<T> boolean |
addAttributeListener(NamedAttributeType<T> namedType,
AttributeListener<T> listener)
Adds an attribute listener for the supplied named attribute type.
|
default <T> boolean |
addAttributeListener(java.lang.String name,
AttributeType<T> type,
AttributeListener<T> listener)
Adds an attribute listener for the supplied attribute type.
|
<T> void |
fireAttributeChanged(NamedAttributeType<T> namedType)
Manually fires an attribute change for the supplied attribute type.
|
default <T> void |
fireAttributeChanged(java.lang.String name,
AttributeType<T> type)
Manually fires an attribute change for the supplied attribute type.
|
<T> T |
getAttribute(NamedAttributeType<T> namedType)
Gets the attribute matching the supplied type.
|
default <T> T |
getAttribute(java.lang.String name,
AttributeType<T> type)
Gets the attribute matching the supplied type.
|
int |
getAttributeCount()
Gets the number of total attributes within the container.
|
default java.util.Set<java.lang.String> |
getAttributeListenerNames()
Gets the attribute type names with listeners associated.
|
<T> java.util.Set<? extends AttributeListener<T>> |
getAttributeListeners(NamedAttributeType<T> namedType)
Gets all attribute listeners associated to the supplied named attribute type.
|
default <T> java.util.Set<? extends AttributeListener<T>> |
getAttributeListeners(java.lang.String name,
AttributeType<T> type)
Gets all attribute listeners associated to the supplied named attribute type.
|
java.util.Set<NamedAttributeType<?>> |
getAttributeListenerTypes()
Gets all of the named attribute types with listeners bound.
|
default java.util.Set<AttributeType<?>> |
getAttributeListenerTypes(java.lang.String name)
Gets all the attribute listener types.
|
default java.util.Set<java.lang.String> |
getAttributeNames()
Gets all the attribute type names assigned to attributes.
|
default java.util.Set<?> |
getAttributes()
Gets all of the attributes within the container.
|
java.util.Set<NamedAttributeType<?>> |
getAttributeTypes()
Gets all of the named attribute types with attributes.
|
default java.util.Set<AttributeType<?>> |
getAttributeTypes(java.lang.String name)
Gets all of the attribute types within the container.
|
default <T> java.util.Optional<T> |
getOptAttribute(NamedAttributeType<T> namedType)
This is a convenience method for getting an attribute (optional).
|
default <T> java.util.Optional<T> |
getOptAttribute(java.lang.String name,
AttributeType<T> type)
This is a convenience method for getting an attribute (optional).
|
default <T> boolean |
hasAttribute(NamedAttributeType<T> namedType)
Checks whether the container has a value associated to the supplied attribute type.
|
default <T> boolean |
hasAttribute(java.lang.String name,
AttributeType<T> type)
Checks whether the container has a value associated to the supplied attribute type.
|
default <T> boolean |
hasAttributeListener(NamedAttributeType<T> namedType,
AttributeListener<T> listener)
Checks whether the container contains a particular listener for a given attribute type.
|
default <T> boolean |
hasAttributeListener(java.lang.String name,
AttributeType<T> type,
AttributeListener<T> listener)
Checks whether the container contains a particular listener for a given attribute type.
|
default <T> boolean |
hasAttributeListeners(NamedAttributeType<T> namedType)
Checks whether the container contains any listeners for a given attribute type.
|
default <T> boolean |
hasAttributeListeners(java.lang.String name,
AttributeType<T> type)
Checks whether the container contains any listeners for a given attribute type.
|
default boolean |
hasAttributes()
Checks whether the container has any attributes.
|
<T> T |
removeAttribute(NamedAttributeType<T> namedType)
Removes the attribute matching the supplied type.
|
default <T> T |
removeAttribute(java.lang.String name,
AttributeType<T> type)
Removes the attribute matching the supplied type.
|
<T> boolean |
removeAttributeListener(NamedAttributeType<T> namedType,
AttributeListener<T> listener)
Removes an attribute listener assigned to the supplied attribute type.
|
default <T> boolean |
removeAttributeListener(java.lang.String name,
AttributeType<T> type,
AttributeListener<T> listener)
Removes an attribute listener assigned to the supplied attribute type.
|
void |
removeAttributeListeners()
Removes all listeners.
|
<T> void |
removeAttributeListeners(NamedAttributeType<T> namedType)
Removes all listeners for the supplied attribute types.
|
default <T> void |
removeAttributeListeners(java.lang.String name,
AttributeType<T> type)
Removes all listeners for the supplied attribute types.
|
void |
removeAttributes()
Removes all attributes within the container (firing removal events).
|
default <T> java.util.Optional<T> |
removeOptAttribute(NamedAttributeType<T> namedType)
This is a convenience method for removing an attribute (no optional).
|
default <T> java.util.Optional<T> |
removeOptAttribute(java.lang.String name,
AttributeType<T> type)
This is a convenience method for removing an attribute (no optional).
|
<T> T |
setAttribute(NamedAttributeType<T> namedType,
T attr)
Adds the supplied attribute to the collection.
|
default <T> T |
setAttribute(java.lang.String name,
AttributeType<T> type,
T attr)
Adds the supplied attribute to the collection.
|
default <T> java.util.Optional<T> |
setOptAttribute(NamedAttributeType<T> namedType,
T attr)
This is a convenience method for adding an attribute (optional).
|
default <T> java.util.Optional<T> |
setOptAttribute(java.lang.String name,
AttributeType<T> type,
T attr)
This is a convenience method for adding an attribute (optional).
|
java.util.stream.Stream<?> |
streamAttributes()
Streams all of the attributes within the container.
|
default void addAll(AttributeContainer sourceContainer)
sourceContainer
- Source container to copy from.default void addAllAttributeListeners(AttributeContainer sourceContainer)
sourceContainer
- Source attribute container.default void addAllAttributes(AttributeContainer sourceContainer)
sourceContainer
- Source attribute container.<T> boolean addAttributeListener(NamedAttributeType<T> namedType, AttributeListener<T> listener)
namedType
- Named attribute type.listener
- Listener to add.default <T> boolean addAttributeListener(java.lang.String name, AttributeType<T> type, AttributeListener<T> listener)
name
- Attribute type name.type
- Attribute type.listener
- Listener to add.addAttributeListener(NamedAttributeType, AttributeListener)
<T> void fireAttributeChanged(NamedAttributeType<T> namedType)
namedType
- Named attribute type name.default <T> void fireAttributeChanged(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type to fire for.fireAttributeChanged(NamedAttributeType)
<T> T getAttribute(NamedAttributeType<T> namedType)
namedType
- Named attribute type to check for.default <T> T getAttribute(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type to check for.getAttribute(NamedAttributeType)
int getAttributeCount()
default java.util.Set<java.lang.String> getAttributeListenerNames()
getAttributeListenerTypes()
<T> java.util.Set<? extends AttributeListener<T>> getAttributeListeners(NamedAttributeType<T> namedType)
namedType
- Named attribute type to check for.default <T> java.util.Set<? extends AttributeListener<T>> getAttributeListeners(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type to check for.getAttributeListeners(NamedAttributeType)
java.util.Set<NamedAttributeType<?>> getAttributeListenerTypes()
default java.util.Set<AttributeType<?>> getAttributeListenerTypes(java.lang.String name)
name
- Attribute type name.getAttributeListenerTypes()
default java.util.Set<java.lang.String> getAttributeNames()
getAttributeTypes()
default java.util.Set<?> getAttributes()
streamAttributes()
java.util.Set<NamedAttributeType<?>> getAttributeTypes()
default java.util.Set<AttributeType<?>> getAttributeTypes(java.lang.String name)
name
- Attribute type name.getAttributeTypes()
default <T> java.util.Optional<T> getOptAttribute(NamedAttributeType<T> namedType)
namedType
- Named attribute type to check for.getAttribute(NamedAttributeType)
default <T> java.util.Optional<T> getOptAttribute(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type to check for.getOptAttribute(NamedAttributeType)
default <T> boolean hasAttribute(NamedAttributeType<T> namedType)
namedType
- Named attribute type.getAttribute(NamedAttributeType)
default <T> boolean hasAttribute(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type.hasAttribute(NamedAttributeType)
default <T> boolean hasAttributeListener(NamedAttributeType<T> namedType, AttributeListener<T> listener)
namedType
- Named attribute type.listener
- Listener to check presence of.default <T> boolean hasAttributeListener(java.lang.String name, AttributeType<T> type, AttributeListener<T> listener)
name
- Attribute type name.type
- Attribute type.listener
- Listener to check presence of.hasAttributeListener(NamedAttributeType, AttributeListener)
default <T> boolean hasAttributeListeners(NamedAttributeType<T> namedType)
namedType
- Named attribute type.default <T> boolean hasAttributeListeners(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type.hasAttributeListeners(NamedAttributeType)
default boolean hasAttributes()
<T> T removeAttribute(NamedAttributeType<T> namedType)
namedType
- Named attribute type to remove.default <T> T removeAttribute(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type to remove.removeAttribute(NamedAttributeType)
<T> boolean removeAttributeListener(NamedAttributeType<T> namedType, AttributeListener<T> listener)
namedType
- Named attribute type.listener
- Listener to remove.default <T> boolean removeAttributeListener(java.lang.String name, AttributeType<T> type, AttributeListener<T> listener)
name
- Attribute type name.type
- Attribute type.listener
- Listener to remove.void removeAttributeListeners()
<T> void removeAttributeListeners(NamedAttributeType<T> namedType)
namedType
- Named attribute type.default <T> void removeAttributeListeners(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type.removeAttributeListeners(NamedAttributeType)
void removeAttributes()
default <T> java.util.Optional<T> removeOptAttribute(NamedAttributeType<T> namedType)
namedType
- Named attribute type to remove.default <T> java.util.Optional<T> removeOptAttribute(java.lang.String name, AttributeType<T> type)
name
- Attribute type name.type
- Attribute type to remove.removeOptAttribute(NamedAttributeType)
<T> T setAttribute(NamedAttributeType<T> namedType, T attr)
namedType
- Named attribute type.attr
- Attribute to add.default <T> T setAttribute(java.lang.String name, AttributeType<T> type, T attr)
name
- Attribute type name.type
- Attribute type.attr
- Attribute to add.setAttribute(NamedAttributeType, Object)
default <T> java.util.Optional<T> setOptAttribute(NamedAttributeType<T> namedType, T attr)
namedType
- Named attribute type.attr
- Attribute to add.default <T> java.util.Optional<T> setOptAttribute(java.lang.String name, AttributeType<T> type, T attr)
name
- Attribute type name.type
- Attribute type.attr
- Attribute to add.setOptAttribute(NamedAttributeType, Object)
java.util.stream.Stream<?> streamAttributes()