TagAttributeInfo.java
上传用户:sxlinghang
上传日期:2022-07-20
资源大小:1405k
文件大小:5k
源码类别:

数据库编程

开发平台:

Java

  1. /*
  2.  * The Apache Software License, Version 1.1
  3.  *
  4.  * Copyright (c) 1999 The Apache Software Foundation.  All rights 
  5.  * reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  *
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer. 
  13.  *
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in
  16.  *    the documentation and/or other materials provided with the
  17.  *    distribution.
  18.  *
  19.  * 3. The end-user documentation included with the redistribution, if
  20.  *    any, must include the following acknowlegement:  
  21.  *       "This product includes software developed by the 
  22.  *        Apache Software Foundation (http://www.apache.org/)."
  23.  *    Alternately, this acknowlegement may appear in the software itself,
  24.  *    if and wherever such third-party acknowlegements normally appear.
  25.  *
  26.  * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  27.  *    Foundation" must not be used to endorse or promote products derived
  28.  *    from this software without prior written permission. For written 
  29.  *    permission, please contact apache@apache.org.
  30.  *
  31.  * 5. Products derived from this software may not be called "Apache"
  32.  *    nor may "Apache" appear in their names without prior written
  33.  *    permission of the Apache Group.
  34.  *
  35.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46.  * SUCH DAMAGE.
  47.  * ====================================================================
  48.  *
  49.  * This software consists of voluntary contributions made by many
  50.  * individuals on behalf of the Apache Software Foundation.  For more
  51.  * information on the Apache Software Foundation, please see
  52.  * <http://www.apache.org/>.
  53.  *
  54.  */ 
  55.  
  56. package javax.servlet.jsp.tagext;
  57. /**
  58.  * Information on Tag Attributes;
  59.  * this class is instantiated from the Tag Library Descriptor file (TLD).
  60.  *
  61.  * Only the information needed to generate code is included here.  Other information
  62.  * like SCHEMA for validation belongs elsewhere.
  63.  */
  64. public class TagAttributeInfo {
  65.     /**
  66.      * "id" is wired in to be ID.  There is no real benefit in having it be something else
  67.      * IDREFs are not handled any differently.
  68.      */
  69.     public static final String ID = "id";
  70.     /**
  71.      * Constructor for TagAttributeInfo.
  72.      * No public constructor; this class is to be instantiated only from the
  73.      * TagLibrary code under request from some JSP code that is parsing a
  74.      * TLD (Tag Library Descriptor).
  75.      *
  76.      * @param name The name of the attribute
  77.      * @param type The name of the type of the attribute
  78.      * @param reqTime Can this attribute hold a request-time Attribute
  79.      */
  80.     // TODO -- add the content descriptor...
  81.     public TagAttributeInfo(String name, boolean required,
  82.                             String type, boolean reqTime)
  83.     {
  84. this.name = name;
  85.         this.required = required;
  86.         this.type = type;
  87. this.reqTime = reqTime;
  88.     }
  89.     /**
  90.      * @returns the name of the attribute
  91.      */
  92.     public String getName() {
  93. return name;
  94.     }
  95.     /**
  96.      * @returns the type of the attribute
  97.      */
  98.     public String getTypeName() {
  99. return type;
  100.     }
  101.     /**
  102.      * Can this attribute hold a request-time value?
  103.      */
  104.     public boolean canBeRequestTime() {
  105. return reqTime;
  106.     }
  107.     /**
  108.      * Is this required or not?
  109.      */
  110.     public boolean isRequired() {
  111.         return required;
  112.     }
  113.     /**
  114.      * Convenience method that goes through an array of TagAttributeInfo
  115.      * objects and looks for "id".
  116.      */
  117.     public static TagAttributeInfo getIdAttribute(TagAttributeInfo a[]) {
  118. for (int i=0; i<a.length; i++) {
  119.     if (a[i].getName().equals(ID)) {
  120. return a[i];
  121.     }
  122. }
  123. return null; // no such attribute
  124.     }
  125.     public String toString() {
  126.         StringBuffer b = new StringBuffer();
  127.         b.append("name = "+name+" ");
  128.         b.append("type = "+type+" ");
  129. b.append("reqTime = "+reqTime+" ");
  130.         b.append("required = "+required+" ");
  131.         return b.toString();
  132.     }
  133.     /*
  134.      * fields
  135.      */
  136.     private String name;
  137.     private String type;
  138.     private boolean reqTime;
  139.     private boolean required;
  140. }