# Class TagData

java.lang.Object
javax.servlet.jsp.tagext.TagData

All Implemented Interfaces:
  `Cloneable`

public class TagData extends Object implements Cloneable
The (translation-time only) attribute/value information for a tag instance.

TagData is only used as an argument to the isValid, validate, and getVariableInfo methods of TagExtraInfo, which are invoked at translation time.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Object`
  `REQUEST_TIME_VALUE`
  Distinguished value for an attribute to indicate its value is a request-time expression (which is not yet available because TagData instances are used at translation-time).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TagData(Object[][] atts)`
  Constructor for TagData.
  `TagData(Hashtable<String,Object> attrs)`
  Constructor for a TagData.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getAttribute(String attName)`
  The value of the attribute.
  `Enumeration<String>`
  `getAttributes()`
  Enumerates the attributes.
  `String`
  `getAttributeString(String attName)`
  Get the value for a given attribute.
  `String`
  `getId()`
  The value of the tag's id attribute.
  `void`
  `setAttribute(String attName, Object value)`
  Set the value of an attribute.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### REQUEST_TIME_VALUE

    public static final Object REQUEST_TIME_VALUE
    Distinguished value for an attribute to indicate its value is a request-time expression (which is not yet available because TagData instances are used at translation-time).

- ## Constructor Details

  - ### TagData

    public TagData(Object[][] atts)
    Constructor for TagData.

    A typical constructor may be

        static final Object[][] att = { { "connection", "conn0" }, { "id", "query0" } };
        static final TagData td = new TagData(att);

    All values must be Strings except for those holding the distinguished object REQUEST_TIME_VALUE.
    Parameters:
      `atts` - the static attribute and values. May be null.

  - ### TagData

    public TagData(Hashtable<String,Object> attrs)
    Constructor for a TagData. If you already have the attributes in a hashtable, use this constructor.
    Parameters:
      `attrs` - A hashtable to get the values from.

- ## Method Details

  - ### getId

    public String getId()
    The value of the tag's id attribute.
    Returns:
      the value of the tag's id attribute, or null if no such attribute was specified.

  - ### getAttribute

    public Object getAttribute(String attName)
    The value of the attribute. If a static value is specified for an attribute that accepts a request-time attribute expression then that static value is returned, even if the value is provided in the body of a <jsp:attribute> action. The distinguished object REQUEST_TIME_VALUE is only returned if the value is specified as a request-time attribute expression or via the <jsp:attribute> action with a body that contains dynamic content (scriptlets, scripting expressions, EL expressions, standard actions, or custom actions). Returns null if the attribute is not set.
    Parameters:
      `attName` - the name of the attribute
    Returns:
      the attribute's value

  - ### setAttribute

    public void setAttribute(String attName, Object value)
    Set the value of an attribute.
    Parameters:
      `attName` - the name of the attribute
      `value` - the value.

  - ### getAttributeString

    public String getAttributeString(String attName)
    Get the value for a given attribute.
    Parameters:
      `attName` - the name of the attribute
    Returns:
      the attribute value string
    Throws:
      `ClassCastException` - if attribute value is not a String

  - ### getAttributes

    public Enumeration<String> getAttributes()
    Enumerates the attributes.
    Returns:
      An enumeration of the attributes in a TagData