com.google.gwt.aria.client

## Class Attribute<T>

- java.lang.Object
- - com.google.gwt.aria.client.Attribute<T>

- Type Parameters:
    `T` - The attribute value type
  Direct Known Subclasses:
    AriaValueAttribute, PrimitiveValueAttribute

      public abstract class Attribute<T>
      extends java.lang.Object

  Class representing ARIA state/property attribute. Contains methods for setting, getting, removing ARIA attributes for an HTML `Element`.

  For more details about ARIA states and properties check the W3C ARIA documentation Supported States and Properties .

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `defaultValue`
    `protected java.lang.String` | `name`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Attribute(java.lang.String name)` Constructs a state/property ARIA attribute with name `name` and null default value.
    `Attribute(java.lang.String name, java.lang.String defaultValue)` Constructs a state/property ARIA attribute with name `name` and `defaultValue`.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `get(Element element)` Gets the HTML attribute value for the attribute with name `name` for element `element`
    `java.lang.String` | `getName()` Gets the property/state name
    `protected abstract java.lang.String` | `getSingleValue(T value)` Gets the string representation of `value` to be set as an attribute value to an HTML element.
    `void` | `remove(Element element)` Removes the state/property attribute for element `element`.
    `void` | `set(Element element, T... values)` Sets the state/property `value` for the HTML element `element`.
    `void` | `setDefault(Element element)` Sets the state/property value to the defaultValue if not null.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### name

          protected final java.lang.String name

    - #### defaultValue

          protected java.lang.String defaultValue

  - ### Constructor Detail

    - #### Attribute

          public Attribute(java.lang.String name,
                           java.lang.String defaultValue)

      Constructs a state/property ARIA attribute with name `name` and `defaultValue`.
      Parameters:
        `name` - State/Property name
        `defaultValue` - Default values

    - #### Attribute

          public Attribute(java.lang.String name)

      Constructs a state/property ARIA attribute with name `name` and null default value.
      Parameters:
        `name` - State/Property name

  - ### Method Detail

    - #### get

          public java.lang.String get(Element element)

      Gets the HTML attribute value for the attribute with name `name` for element `element`
      Parameters:
        `element` - HTML element
      Returns:
        The attribute value for `element`

    - #### getName

          public java.lang.String getName()

      Gets the property/state name
      Returns:
        The attribute name

    - #### remove

          public void remove(Element element)

      Removes the state/property attribute for element `element`.
      Parameters:
        `element` - HTM element

    - #### set

          public void set(Element element,
                          T... values)

      Sets the state/property `value` for the HTML element `element`.
      Parameters:
        `element` - HTML element
        `values` - Attribute value

    - #### setDefault

          public void setDefault(Element element)

      Sets the state/property value to the defaultValue if not null. If a list of default values is set, every default value is converted to string and the string values are concatenated in a string token list. There is an assertion checking whether the default is null. Note that the asserts are enabled during development and testing but they will be stripped in production mode.
      Parameters:
        `element` - HTML element

    - #### getSingleValue

          protected abstract java.lang.String getSingleValue(T value)

      Gets the string representation of `value` to be set as an attribute value to an HTML element.
      Parameters:
        `value` - The item to be stringified
      Returns:
        the stringified representation of `value`