javax.servlet.jsp.tagext

## Class TagAttributeInfo

- java.lang.Object
- - javax.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).

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ID` "id" is wired in to be ID.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TagAttributeInfo(String name, boolean required, String type, boolean reqTime)` Constructor for TagAttributeInfo.
    `TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment)` JSP 2.0 Constructor for TagAttributeInfo.
    `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.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canBeRequestTime()` Whether this attribute has been specified in the TLD as rtexprvalue.
    `String` | `getDescription()` Gets the description string of this tag attribute.
    `String` | `getExpectedTypeName()` Returns the name of the expected type (as a String) of this deferred value attribute.
    `static TagAttributeInfo` | `getIdAttribute(TagAttributeInfo[] a)` Convenience static method that goes through an array of TagAttributeInfo objects and looks for "id".
    `String` | `getMethodSignature()` Returns the expected method signature of this deferred method attribute.
    `String` | `getName()` The name of this attribute.
    `String` | `getTypeName()` The type (as a String) of this attribute.
    `boolean` | `isDeferredMethod()` Returns `true` if this attribute is to be passed a `MethodExpression` so that expression evaluation can be deferred.
    `boolean` | `isDeferredValue()` Returns `true` if this attribute is to be passed a `ValueExpression` so that expression evaluation can be deferred.
    `boolean` | `isFragment()` Whether this attribute is of type JspFragment.
    `boolean` | `isRequired()` Whether this attribute is required.
    `String` | `toString()` Returns a String representation of this TagAttributeInfo, suitable for debugging purposes.

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

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

- - ### Field Detail

    - #### ID

          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.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TagAttributeInfo

          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).
      Parameters:
        `name` - The name of the attribute.
        `required` - If this attribute is required in tag instances.
        `type` - The name of the type of the attribute.
        `reqTime` - Whether this attribute holds a request-time Attribute.

    - #### TagAttributeInfo

          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).
      Parameters:
        `name` - The name of the attribute.
        `required` - If this attribute is required in tag instances.
        `type` - The name of the type of the attribute.
        `reqTime` - Whether this attribute holds a request-time Attribute.
        `fragment` - Whether this attribute is of type JspFragment
      Since:
        JSP 2.0

    - #### TagAttributeInfo

          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).
      Parameters:
        `name` - The name of the attribute.
        `required` - If this attribute is required in tag instances.
        `type` - The name of the type of the attribute.
        `reqTime` - Whether this attribute holds a request-time Attribute.
        `fragment` - Whether this attribute is of type JspFragment
        `description` - The description of the attribute.
        `deferredValue` - Whether this attribute is a deferred value.
        `deferredMethod` - Whether this attribute is a deferred method. rtexpr or deferred value.
        `expectedTypeName` - The name of the expected type of this deferred value (or `null` if this is not a deferred value).
        `methodSignature` - The expected method signature of this deferred method (or `null` if this is not a deferred method).
      Since:
        JSP 2.1

  - ### Method Detail

    - #### getName

          public String getName()

      The name of this attribute.
      Returns:
        the name of the attribute

    - #### getTypeName

          public String getTypeName()

      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`.

      Returns:
        the type of the attribute

    - #### canBeRequestTime

          public boolean canBeRequestTime()

      Whether this attribute has been specified in the TLD as rtexprvalue. If `true`, this means the attribute can hold a request-time value.
      Returns:
        true if the attribute has been specified in the TLD as rtexprvalue

    - #### isRequired

          public boolean isRequired()

      Whether this attribute is required.
      Returns:
        if the attribute is required.

    - #### getIdAttribute

          public static TagAttributeInfo getIdAttribute(TagAttributeInfo[] a)

      Convenience static method that goes through an array of TagAttributeInfo objects and looks for "id".
      Parameters:
        `a` - An array of TagAttributeInfo
      Returns:
        The TagAttributeInfo reference with name "id"

    - #### isFragment

          public boolean isFragment()

      Whether this attribute is of type JspFragment.
      Returns:
        if the attribute is of type JspFragment
      Since:
        JSP 2.0

    - #### getDescription

          public String getDescription()

      Gets the description string of this tag attribute.
      Returns:
        the description string of this tag attribute

    - #### isDeferredValue

          public boolean isDeferredValue()

      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.

      Returns:
        `true` if this attribute accepts a deferred value; `false` otherwise.
      Since:
        JSP 2.1

    - #### isDeferredMethod

          public boolean isDeferredMethod()

      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.

      Returns:
        `true` if this attribute accepts a deferred method; `false` otherwise.
      Since:
        JSP 2.1

    - #### getExpectedTypeName

          public String getExpectedTypeName()

      Returns the name of the expected type (as a String) of this deferred value attribute.

      This method returns `null` if `isDeferredValue()` returns `false`.

      Returns:
        the name of the expected type
      Since:
        JSP 2.1

    - #### getMethodSignature

          public String getMethodSignature()

      Returns the expected method signature of this deferred method attribute.

      This method returns `null` if `isDeferredMethod()` returns `false`.

      Returns:
        the method signature
      Since:
        JSP 2.1

    - #### toString

          public String toString()

      Returns a String representation of this TagAttributeInfo, suitable for debugging purposes.
      Overrides:
        `toString` in class `Object`
      Returns:
        a String representation of this TagAttributeInfo

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.