# Class TagExtraInfo

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

public abstract class TagExtraInfo extends Object
Optional class provided by the tag library author to describe additional translation-time information not described in the TLD. The TagExtraInfo class is mentioned in the Tag Library Descriptor file (TLD).

This class can be used:

- to indicate that the tag defines scripting variables
- to perform translation-time validation of the tag attributes.

It is the responsibility of the JSP translator that the initial value to be returned by calls to getTagInfo() corresponds to a TagInfo object for the tag being translated. If an explicit call to setTagInfo() is done, then the object passed will be returned in subsequent calls to getTagInfo().

The only way to affect the value returned by getTagInfo() is through a setTagInfo() call, and thus, TagExtraInfo.setTagInfo() is to be called by the JSP translator, with a TagInfo object that corresponds to the tag being translated. The call should happen before any invocation on validate() and before any invocation on getVariableInfo().

NOTE: It is a (translation time) error for a tag definition in a TLD with one or more variable subelements to have an associated TagExtraInfo implementation that returns a VariableInfo array with one or more elements from a call to getVariableInfo().

## Constructor Summary

Constructors
Constructor
Description
`TagExtraInfo()`
Sole constructor.

## Method Summary

Modifier and Type
Method
Description
`final TagInfo`
`getTagInfo()`
Get the TagInfo for this class.
`VariableInfo[]`
`getVariableInfo(TagData data)`
information on scripting variables defined by the tag associated with this TagExtraInfo instance.
`boolean`
`isValid(TagData data)`
Translation-time validation of the attributes.
`final void`
`setTagInfo(TagInfo tagInfo)`
Set the TagInfo for this class.
`ValidationMessage[]`
`validate(TagData data)`
Translation-time validation of the attributes.

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

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

## Constructor Details

### TagExtraInfo

public TagExtraInfo()
Sole constructor. (For invocation by subclass constructors, typically implicit.)

## Method Details

### getVariableInfo

public VariableInfo[] getVariableInfo(TagData data)
information on scripting variables defined by the tag associated with this TagExtraInfo instance. Request-time attributes are indicated as such in the TagData parameter.

Parameters:
  `data` - The TagData instance.
Returns:
  An array of VariableInfo data, or null or a zero length array if no scripting variables are to be defined.

### isValid

public boolean isValid(TagData data)
Translation-time validation of the attributes. Request-time attributes are indicated as such in the TagData parameter. Note that the preferred way to do validation is with the validate() method, since it can return more detailed information.

Parameters:
  `data` - The TagData instance.
Returns:
  Whether this tag instance is valid.
See Also:
  - `validate(javax.servlet.jsp.tagext.TagData)`

### validate

public ValidationMessage[] validate(TagData data)
Translation-time validation of the attributes. Request-time attributes are indicated as such in the TagData parameter. Because of the higher quality validation messages possible, this is the preferred way to do validation (although isValid() still works).

JSP 2.0 and higher containers call validate() instead of isValid(). The default implementation of this method is to call isValid(). If isValid() returns false, a generic ValidationMessage[] is returned indicating isValid() returned false.

Parameters:
  `data` - The TagData instance.
Returns:
  A null object, or zero length array if no errors, an array of ValidationMessages otherwise.
Since:
  JSP 2.0

### setTagInfo

public final void setTagInfo(TagInfo tagInfo)
Set the TagInfo for this class.

Parameters:
  `tagInfo` - The TagInfo this instance is extending

### getTagInfo

public final TagInfo getTagInfo()
Get the TagInfo for this class.

Returns:
  the taginfo instance this instance is extending