Home » apache-tomcat-6.0.26-src » javax » servlet » jsp » tagext » [javadoc | source]

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   
   18   package javax.servlet.jsp.tagext;
   19   
   20   /**
   21    * Information on the attributes of a Tag, available at translation time. This
   22    * class is instantiated from the Tag Library Descriptor file (TLD).
   23    * 
   24    * <p>
   25    * Only the information needed to generate code is included here. Other
   26    * information like SCHEMA for validation belongs elsewhere.
   27    */
   28   
   29   public class TagAttributeInfo {
   30       /**
   31        * "id" is wired in to be ID. There is no real benefit in having it be
   32        * something else IDREFs are not handled any differently.
   33        */
   34   
   35       public static final String ID = "id";
   36   
   37       /**
   38        * Constructor for TagAttributeInfo. This class is to be instantiated only
   39        * from the TagLibrary code under request from some JSP code that is parsing
   40        * a TLD (Tag Library Descriptor).
   41        * 
   42        * @param name
   43        *            The name of the attribute.
   44        * @param required
   45        *            If this attribute is required in tag instances.
   46        * @param type
   47        *            The name of the type of the attribute.
   48        * @param reqTime
   49        *            Whether this attribute holds a request-time Attribute.
   50        */
   51   
   52       public TagAttributeInfo(String name, boolean required, String type,
   53               boolean reqTime) {
   54           this.name = name;
   55           this.required = required;
   56           this.type = type;
   57           this.reqTime = reqTime;
   58       }
   59   
   60       /**
   61        * JSP 2.0 Constructor for TagAttributeInfo. This class is to be
   62        * instantiated only from the TagLibrary code under request from some JSP
   63        * code that is parsing a TLD (Tag Library Descriptor).
   64        * 
   65        * @param name
   66        *            The name of the attribute.
   67        * @param required
   68        *            If this attribute is required in tag instances.
   69        * @param type
   70        *            The name of the type of the attribute.
   71        * @param reqTime
   72        *            Whether this attribute holds a request-time Attribute.
   73        * @param fragment
   74        *            Whether this attribute is of type JspFragment
   75        * 
   76        * @since 2.0
   77        */
   78   
   79       public TagAttributeInfo(String name, boolean required, String type,
   80               boolean reqTime, boolean fragment) {
   81           this(name, required, type, reqTime);
   82           this.fragment = fragment;
   83       }
   84   
   85       /**
   86        * @since JSP 2.1
   87        */
   88       public TagAttributeInfo(String name, boolean required, String type,
   89               boolean reqTime, boolean fragment, String description,
   90               boolean deferredValue, boolean deferredMethod,
   91               String expectedTypeName, String methodSignature) {
   92           this(name, required, type, reqTime, fragment);
   93           this.description = description;
   94           this.deferredValue = deferredValue;
   95           this.deferredMethod = deferredMethod;
   96           this.expectedTypeName = expectedTypeName;
   97           this.methodSignature = methodSignature;
   98       }
   99   
  100       /**
  101        * The name of this attribute.
  102        * 
  103        * @return the name of the attribute
  104        */
  105   
  106       public String getName() {
  107           return name;
  108       }
  109   
  110       /**
  111        * The type (as a String) of this attribute.
  112        * 
  113        * @return the type of the attribute
  114        */
  115   
  116       public String getTypeName() {
  117           return type;
  118       }
  119   
  120       /**
  121        * Whether this attribute can hold a request-time value.
  122        * 
  123        * @return if the attribute can hold a request-time value.
  124        */
  125   
  126       public boolean canBeRequestTime() {
  127           return reqTime;
  128       }
  129   
  130       /**
  131        * Whether this attribute is required.
  132        * 
  133        * @return if the attribute is required.
  134        */
  135       public boolean isRequired() {
  136           return required;
  137       }
  138   
  139       /**
  140        * Convenience static method that goes through an array of TagAttributeInfo
  141        * objects and looks for "id".
  142        * 
  143        * @param a
  144        *            An array of TagAttributeInfo
  145        * @return The TagAttributeInfo reference with name "id"
  146        */
  147       public static TagAttributeInfo getIdAttribute(TagAttributeInfo a[]) {
  148           for (int i = 0; i < a.length; i++) {
  149               if (a[i].getName().equals(ID)) {
  150                   return a[i];
  151               }
  152           }
  153           return null; // no such attribute
  154       }
  155   
  156       /**
  157        * Whether this attribute is of type JspFragment.
  158        * 
  159        * @return if the attribute is of type JspFragment
  160        * 
  161        * @since 2.0
  162        */
  163       public boolean isFragment() {
  164           return fragment;
  165       }
  166   
  167       /**
  168        * Returns a String representation of this TagAttributeInfo, suitable for
  169        * debugging purposes.
  170        * 
  171        * @return a String representation of this TagAttributeInfo
  172        */
  173       public String toString() {
  174           StringBuffer b = new StringBuffer(64);
  175           b.append("name = " + name + " ");
  176           b.append("type = " + type + " ");
  177           b.append("reqTime = " + reqTime + " ");
  178           b.append("required = " + required + " ");
  179           b.append("fragment = " + fragment + " ");
  180           b.append("deferredValue = " + deferredValue + " ");
  181           b.append("expectedTypeName = " + expectedTypeName + " ");
  182           b.append("deferredMethod = " + deferredMethod + " ");
  183           b.append("methodSignature = " + methodSignature);
  184           return b.toString();
  185       }
  186   
  187       /*
  188        * private fields
  189        */
  190       private String name;
  191   
  192       private String type;
  193   
  194       private boolean reqTime;
  195   
  196       private boolean required;
  197   
  198       /*
  199        * private fields for JSP 2.0
  200        */
  201       private boolean fragment;
  202   
  203       /*
  204        * private fields for JSP 2.1
  205        */
  206       private String description;
  207   
  208       private boolean deferredValue;
  209   
  210       private boolean deferredMethod;
  211   
  212       private String expectedTypeName;
  213   
  214       private String methodSignature;
  215   
  216       public boolean isDeferredMethod() {
  217           return deferredMethod;
  218       }
  219   
  220       public boolean isDeferredValue() {
  221           return deferredValue;
  222       }
  223   
  224       public String getDescription() {
  225           return description;
  226       }
  227   
  228       public String getExpectedTypeName() {
  229           return expectedTypeName;
  230       }
  231   
  232       public String getMethodSignature() {
  233           return methodSignature;
  234       }
  235   }

Home » apache-tomcat-6.0.26-src » javax » servlet » jsp » tagext » [javadoc | source]