# 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 java.lang.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