FileDocCategorySizeDatePackage
TagAttributeInfo.javaAPI DocGlassfish v2 API12039Fri May 04 22:34:28 BST 2007javax.servlet.jsp.tagext

TagAttributeInfo

public class TagAttributeInfo extends Object
Information on the attributes of a Tag, available at translation time. This class is instantiated from the Tag Library Descriptor file (TLD).

Only the information needed to generate code is included here. Other information like SCHEMA for validation belongs elsewhere.

Note from the Expert Group:
This should have been designed as an interface. Every time we change the TLD, we need to add a new constructor to this class (not good). This class should only be instantiated by container implementations (not by JSP developers).

Fields Summary
public static final String
ID
"id" is wired in to be ID. There is no real benefit in having it be something else IDREFs are not handled any differently.
private String
name
private String
type
private boolean
reqTime
private boolean
required
private boolean
fragment
private boolean
deferredValue
private boolean
deferredMethod
private String
expectedTypeName
private String
methodSignature
private String
description
Constructors Summary
public TagAttributeInfo(String name, boolean required, String type, boolean reqTime)
Constructor for TagAttributeInfo. 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).

param
name The name of the attribute.
param
required If this attribute is required in tag instances.
param
type The name of the type of the attribute.
param
reqTime Whether this attribute holds a request-time Attribute.

    
                                                                         
    
        
                
        this.name = name;
        this.required = required;
        this.type = type;
        this.reqTime = reqTime;
    
public TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment)
JSP 2.0 Constructor for TagAttributeInfo. 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).

param
name The name of the attribute.
param
required If this attribute is required in tag instances.
param
type The name of the type of the attribute.
param
reqTime Whether this attribute holds a request-time Attribute.
param
fragment Whether this attribute is of type JspFragment
since
JSP 2.0

        this( name, required, type, reqTime );
        this.fragment = fragment;
    
public TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment, String description, boolean deferredValue, boolean deferredMethod, String expectedTypeName, String methodSignature)
JSP 2.1 Constructor for TagAttributeInfo. 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).

param
name The name of the attribute.
param
required If this attribute is required in tag instances.
param
type The name of the type of the attribute.
param
reqTime Whether this attribute holds a request-time Attribute.
param
fragment Whether this attribute is of type JspFragment
param
description The description of the attribute.
param
deferredValue Whether this attribute is a deferred value.
param
deferredMethod Whether this attribute is a deferred method. rtexpr or deferred value.
param
expectedTypeName The name of the expected type of this deferred value (or null if this is not a deferred value).
param
methodSignature The expected method signature of this deferred method (or null if this is not a deferred method).
since
JSP 2.1

        this( name, required, type, reqTime, fragment );
        this.description = description;
        this.deferredValue = deferredValue;
        this.deferredMethod = deferredMethod;
        this.expectedTypeName = expectedTypeName;
        this.methodSignature = methodSignature;
    
Methods Summary
public booleancanBeRequestTime()
Whether this attribute has been specified in the TLD as rtexprvalue. If true, this means the attribute can hold a request-time value.

return
true if the attribute has been specified in the TLD as rtexprvalue

        return reqTime;
    
public java.lang.StringgetDescription()
Gets the description string of this tag attribute.

return
the description string of this tag attribute

        return description;
    
public java.lang.StringgetExpectedTypeName()
Returns the name of the expected type (as a String) of this deferred value attribute.

This method returns null if isDeferredValue() returns false.

return
the name of the expected type
since
JSP 2.1

        return expectedTypeName;
    
public static javax.servlet.jsp.tagext.TagAttributeInfogetIdAttribute(javax.servlet.jsp.tagext.TagAttributeInfo[] a)
Convenience static method that goes through an array of TagAttributeInfo objects and looks for "id".

param
a An array of TagAttributeInfo
return
The TagAttributeInfo reference with name "id"

        for (int i=0; i<a.length; i++) {
            if (a[i].getName().equals(ID)) {
                return a[i];
            }
        }
        return null;		// no such attribute
    
public java.lang.StringgetMethodSignature()
Returns the expected method signature of this deferred method attribute.

This method returns null if isDeferredMethod() returns false.

return
the method signature
since
JSP 2.1

        return methodSignature;
    
public java.lang.StringgetName()
The name of this attribute.

return
the name of the attribute

        return name;
    
public java.lang.StringgetTypeName()
The type (as a String) of this attribute.

This method must return "javax.el.ValueExpression" if isDeferredValue() returns true and canBeRequestTime() returns false. It must return "javax.el.MethodExpression" if isDeferredMethod() returns true. It must return "java.lang.Object" if isDeferredValue() returns true and canBeRequestTime() returns true.

return
the type of the attribute

        return type;
    
public booleanisDeferredMethod()
Returns true if this attribute is to be passed a MethodExpression so that expression evaluation can be deferred.

If this method returns true, then getTypeName() must return "javax.el.MethodExpression".

The getMethodSignature() method can be used to retrieve the expected method signature this method expression will be constructed with.

return
true if this attribute accepts a deferred method; false otherwise.
since
JSP 2.1

        return deferredMethod;
    
public booleanisDeferredValue()
Returns true if this attribute is to be passed a ValueExpression so that expression evaluation can be deferred.

If this method returns true, then getTypeName() must return "javax.el.ValueExpression".

The getExpectedType() method can be used to retrieve the expected type this value expression will be constructed with.

return
true if this attribute accepts a deferred value; false otherwise.
since
JSP 2.1

        return deferredValue;
    
public booleanisFragment()
Whether this attribute is of type JspFragment.

return
if the attribute is of type JspFragment
since
JSP 2.0

        return fragment;
    
public booleanisRequired()
Whether this attribute is required.

return
if the attribute is required.

        return required;
    
public java.lang.StringtoString()
Returns a String representation of this TagAttributeInfo, suitable for debugging purposes.

return
a String representation of this TagAttributeInfo

        StringBuffer b = new StringBuffer();
        b.append("name = "+name+" ");
        b.append("type = "+type+" ");
        b.append("reqTime = "+reqTime+" ");
        b.append("required = "+required+" ");
        b.append("fragment = "+fragment+" ");
        b.append("deferredValue = "+deferredValue+" ");
        b.append("deferredMethod = "+deferredMethod+" ");
        b.append("expectedTypeName = "+expectedTypeName+" ");
        b.append("methodSignature = "+methodSignature+" ");
        return b.toString();