api / org.gradle.api.attributes / Attribute

Attribute

@Incubating open class Attribute<T : Any> : Named

An attribute is a named entity with a type. It is used in conjunction with a AttributeContainer to provide a type safe container for attributes. This class isn't intended to store the value of an attribute, but only represent the identity of the attribute. It means that an attribute must be immutable and can potentially be pooled. Attributes can be created using the factory method.

Parameters

- the type of the named attribute

Since
3.3

Functions

equals

open fun equals(other: Any?): Boolean

getName

open fun getName(): String

Returns the name of the attribute.

getType

open fun getType(): Class<T>

Returns the type of this attribute.

hashCode

open fun hashCode(): Int

of

open static fun <T : Any> of(name: String, type: Class<T>): Attribute<T>

Creates a new attribute of the given name with the given type. There's no guarantee that subsequent calls to this method with the same attributes would either return the same instance or different instances of Attribute, so consumers are required to compare the attributes with the #equals(Object) method.

open static fun <T : Any> of(type: Class<T>): Attribute<T>

Creates a new attribute of the given type, inferring the name of the attribute from the simple type name. This method is useful when there's supposely only one attribute of a specific type in a container, so there's no need to distinguish by name (but the returned type doesn't enforce it_. There's no guarantee that subsequent calls to this method with the same attributes would either return the same instance or different instances of Attribute, so consumers are required to compare the attributes with the #equals(Object) method.

toString

open fun toString(): String