FileDocCategorySizeDatePackage
TagExtraInfo.javaAPI DocApache Tomcat 6.0.145097Fri Jul 20 04:20:32 BST 2007javax.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().

Fields Summary
private TagInfo
tagInfo
private static final VariableInfo[]
ZERO_VARIABLE_INFO
Constructors Summary
public TagExtraInfo()
Sole constructor. (For invocation by subclass constructors, typically implicit.)

    
Methods Summary
public final TagInfogetTagInfo()
Get the TagInfo for this class.

return
the taginfo instance this instance is extending

	return tagInfo;
    
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.

param
data The TagData instance.
return
An array of VariableInfo data, or null or a zero length array if no scripting variables are to be defined.

	return ZERO_VARIABLE_INFO;
    
public booleanisValid(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.

param
data The TagData instance.
return
Whether this tag instance is valid.
see
TagExtraInfo#validate

	return true;
    
public final voidsetTagInfo(TagInfo tagInfo)
Set the TagInfo for this class.

param
tagInfo The TagInfo this instance is extending

	this.tagInfo = tagInfo;
    
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.

param
data The TagData instance.
return
A null object, or zero length array if no errors, an array of ValidationMessages otherwise.
since
2.0

	ValidationMessage[] result = null;

	if( !isValid( data ) ) {
	    result = new ValidationMessage[] {
		new ValidationMessage( data.getId(), "isValid() == false" ) };
	}

	return result;