FileDocCategorySizeDatePackage
TagInfo.javaAPI DocGlassfish v2 API14933Fri May 04 22:34:16 BST 2007javax.servlet.jsp.tagext

TagInfo

public class TagInfo extends Object
Tag information for a tag in a Tag Library; This class is instantiated from the Tag Library Descriptor file (TLD) and is available only at translation time.

Fields Summary
public static final String
BODY_CONTENT_JSP
Static constant for getBodyContent() when it is JSP.
public static final String
BODY_CONTENT_TAG_DEPENDENT
Static constant for getBodyContent() when it is Tag dependent.
public static final String
BODY_CONTENT_EMPTY
Static constant for getBodyContent() when it is empty.
public static final String
BODY_CONTENT_SCRIPTLESS
Static constant for getBodyContent() when it is scriptless.
private String
tagName
private String
tagClassName
private String
bodyContent
private String
infoString
private TagLibraryInfo
tagLibrary
private TagExtraInfo
tagExtraInfo
private TagAttributeInfo[]
attributeInfo
private String
displayName
private String
smallIcon
private String
largeIcon
private TagVariableInfo[]
tagVariableInfo
private boolean
dynamicAttributes
Constructors Summary
public TagInfo(String tagName, String tagClassName, String bodycontent, String infoString, TagLibraryInfo taglib, TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo)
Constructor for TagInfo from data in the JSP 1.1 format for TLD. This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future.

param
tagName The name of this tag
param
tagClassName The name of the tag handler class
param
bodycontent Information on the body content of these tags
param
infoString The (optional) string information for this tag
param
taglib The instance of the tag library that contains us.
param
tagExtraInfo The instance providing extra Tag info. May be null
param
attributeInfo An array of AttributeInfo data from descriptor. May be null;


                                                                                                                                                       
      
	     
	     
	     
	     
	     
	      
	this.tagName       = tagName;
	this.tagClassName  = tagClassName;
	this.bodyContent   = bodycontent;
	this.infoString    = infoString;
	this.tagLibrary    = taglib;
	this.tagExtraInfo  = tagExtraInfo;
	this.attributeInfo = attributeInfo;

	if (tagExtraInfo != null)
            tagExtraInfo.setTagInfo(this);
    
public TagInfo(String tagName, String tagClassName, String bodycontent, String infoString, TagLibraryInfo taglib, TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo, String displayName, String smallIcon, String largeIcon, TagVariableInfo[] tvi)
Constructor for TagInfo from data in the JSP 1.2 format for TLD. This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future.

param
tagName The name of this tag
param
tagClassName The name of the tag handler class
param
bodycontent Information on the body content of these tags
param
infoString The (optional) string information for this tag
param
taglib The instance of the tag library that contains us.
param
tagExtraInfo The instance providing extra Tag info. May be null
param
attributeInfo An array of AttributeInfo data from descriptor. May be null;
param
displayName A short name to be displayed by tools
param
smallIcon Path to a small icon to be displayed by tools
param
largeIcon Path to a large icon to be displayed by tools
param
tvi An array of a TagVariableInfo (or null)

	this.tagName       = tagName;
	this.tagClassName  = tagClassName;
	this.bodyContent   = bodycontent;
	this.infoString    = infoString;
	this.tagLibrary    = taglib;
	this.tagExtraInfo  = tagExtraInfo;
	this.attributeInfo = attributeInfo;
	this.displayName = displayName;
	this.smallIcon = smallIcon;
	this.largeIcon = largeIcon;
	this.tagVariableInfo = tvi;

	if (tagExtraInfo != null)
            tagExtraInfo.setTagInfo(this);
    
public TagInfo(String tagName, String tagClassName, String bodycontent, String infoString, TagLibraryInfo taglib, TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo, String displayName, String smallIcon, String largeIcon, TagVariableInfo[] tvi, boolean dynamicAttributes)
Constructor for TagInfo from data in the JSP 2.0 format for TLD. This class is to be instantiated only from the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since TagLibibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on a taglib directive. This is probably a design error, which may be fixed in the future.

param
tagName The name of this tag
param
tagClassName The name of the tag handler class
param
bodycontent Information on the body content of these tags
param
infoString The (optional) string information for this tag
param
taglib The instance of the tag library that contains us.
param
tagExtraInfo The instance providing extra Tag info. May be null
param
attributeInfo An array of AttributeInfo data from descriptor. May be null;
param
displayName A short name to be displayed by tools
param
smallIcon Path to a small icon to be displayed by tools
param
largeIcon Path to a large icon to be displayed by tools
param
tvi An array of a TagVariableInfo (or null)
param
dynamicAttributes True if supports dynamic attributes
since
2.0

        this.tagName       = tagName;
        this.tagClassName  = tagClassName;
        this.bodyContent   = bodycontent;
        this.infoString    = infoString;
        this.tagLibrary    = taglib;
        this.tagExtraInfo  = tagExtraInfo;
        this.attributeInfo = attributeInfo;
        this.displayName = displayName;
        this.smallIcon = smallIcon;
        this.largeIcon = largeIcon;
        this.tagVariableInfo = tvi;
        this.dynamicAttributes = dynamicAttributes;

        if (tagExtraInfo != null)
            tagExtraInfo.setTagInfo(this);
    
Methods Summary
public TagAttributeInfo[]getAttributes()
Attribute information (in the TLD) on this tag. The return is an array describing the attributes of this tag, as indicated in the TLD.

return
The array of TagAttributeInfo for this tag, or a zero-length array if the tag has no attributes.

       return attributeInfo;
   
public java.lang.StringgetBodyContent()
The bodycontent information for this tag. If the bodycontent is not defined for this tag, the default of JSP will be returned.

return
the body content string.

	return bodyContent;
    
public java.lang.StringgetDisplayName()
Get the displayName.

return
A short name to be displayed by tools, or null if not defined

	return displayName;
    
public java.lang.StringgetInfoString()
The information string for the tag.

return
the info string, or null if not defined

	return infoString;
    
public java.lang.StringgetLargeIcon()
Get the path to the large icon.

return
Path to a large icon to be displayed by tools, or null if not defined

	return largeIcon;
    
public java.lang.StringgetSmallIcon()
Get the path to the small icon.

return
Path to a small icon to be displayed by tools, or null if not defined

	return smallIcon;
    
public java.lang.StringgetTagClassName()
Name of the class that provides the handler for this tag.

return
The name of the tag handler class.

	return tagClassName;
    
public TagExtraInfogetTagExtraInfo()
The instance (if any) for extra tag information.

return
The TagExtraInfo instance, if any.

	return tagExtraInfo;
    
public TagLibraryInfogetTagLibrary()
The instance of TabLibraryInfo we belong to.

return
the tag library instance we belong to

	return tagLibrary;
    
public java.lang.StringgetTagName()
The name of the Tag.

return
The (short) name of the tag.

	return tagName;
    
public TagVariableInfo[]getTagVariableInfos()
Get TagVariableInfo objects associated with this TagInfo.

return
Array of TagVariableInfo objects corresponding to variables declared by this tag, or a zero length array if no variables have been declared

	return tagVariableInfo;
    
public VariableInfo[]getVariableInfo(TagData data)
Information on the scripting objects created by this tag at runtime. This is a convenience method on the associated TagExtraInfo class.

param
data TagData describing this action.
return
if a TagExtraInfo object is associated with this TagInfo, the result of getTagExtraInfo().getVariableInfo( data ), otherwise null.

       VariableInfo[] result = null;
       TagExtraInfo tei = getTagExtraInfo();
       if (tei != null) {
	   result = tei.getVariableInfo( data );
       }
       return result;
   
public booleanhasDynamicAttributes()
Get dynamicAttributes associated with this TagInfo.

return
True if tag handler supports dynamic attributes
since
2.0

        return dynamicAttributes;
    
public booleanisValid(TagData data)
Translation-time validation of the attributes. This is a convenience method on the associated TagExtraInfo class.

param
data The translation-time TagData instance.
return
Whether the data is valid.

        TagExtraInfo tei = getTagExtraInfo();
        if (tei == null) {
	    return true;
        }
        return tei.isValid(data);
    
public voidsetTagExtraInfo(TagExtraInfo tei)
Set the instance for extra tag information.

param
tei the TagExtraInfo instance

	tagExtraInfo = tei;
    
public voidsetTagLibrary(TagLibraryInfo tl)
Set the TagLibraryInfo property. Note that a TagLibraryInfo element is dependent not just on the TLD information but also on the specific taglib instance used. This means that a fair amount of work needs to be done to construct and initialize TagLib objects. If used carefully, this setter can be used to avoid having to create new TagInfo elements for each taglib directive.

param
tl the TagLibraryInfo to assign

	tagLibrary = tl;
    
public ValidationMessage[]validate(TagData data)
Translation-time validation of the attributes. This is a convenience method on the associated TagExtraInfo class.

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

	TagExtraInfo tei = getTagExtraInfo();
	if( tei == null ) {
	    return null;
	}
	return tei.validate( data );