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   import javax.servlet.jsp.tagext.TagInfo;
   21   import javax.servlet.jsp.tagext.TagFileInfo;
   22   
   23   /**
   24    * Translation-time information associated with a taglib directive, and its
   25    * underlying TLD file.
   26    *
   27    * Most of the information is directly from the TLD, except for
   28    * the prefix and the uri values used in the taglib directive
   29    *
   30    *
   31    */
   32   
   33   abstract public class TagLibraryInfo {
   34   
   35       /**
   36        * Constructor.
   37        *
   38        * This will invoke the constructors for TagInfo, and TagAttributeInfo
   39        * after parsing the TLD file.
   40        *
   41        * @param prefix the prefix actually used by the taglib directive
   42        * @param uri the URI actually used by the taglib directive
   43        */
   44       protected TagLibraryInfo(String prefix, String uri) {
   45   	this.prefix = prefix;
   46   	this.uri    = uri;
   47       }
   48   
   49       // ==== methods accessing taglib information =======
   50   
   51       /**
   52        * The value of the uri attribute from the taglib directive for 
   53        * this library.
   54        *
   55        * @return the value of the uri attribute
   56        */
   57      
   58       public String getURI() {
   59           return uri;
   60       }
   61   
   62       /**
   63        * The prefix assigned to this taglib from the taglib directive
   64        *
   65        * @return the prefix assigned to this taglib from the taglib directive
   66        */
   67   
   68       public String getPrefixString() {
   69   	return prefix;
   70       }
   71   
   72       // ==== methods using the TLD data =======
   73   
   74       /**
   75        * The preferred short name (prefix) as indicated in the TLD.
   76        * This may be used by authoring tools as the preferred prefix
   77        * to use when creating an taglib directive for this library.
   78        *
   79        * @return the preferred short name for the library
   80        */
   81       public String getShortName() {
   82           return shortname;
   83       }
   84   
   85       /**
   86        * The "reliable" URN indicated in the TLD (the uri element).
   87        * This may be used by authoring tools as a global identifier
   88        * to use when creating a taglib directive for this library.
   89        *
   90        * @return a reliable URN to a TLD like this
   91        */
   92       public String getReliableURN() {
   93           return urn;
   94       }
   95   
   96   
   97       /**
   98        * Information (documentation) for this TLD.
   99        *
  100        * @return the info string for this tag lib
  101        */
  102      
  103       public String getInfoString() {
  104           return info;
  105       }
  106   
  107   
  108       /**
  109        * A string describing the required version of the JSP container.
  110        * 
  111        * @return the (minimal) required version of the JSP container.
  112        * @see javax.servlet.jsp.JspEngineInfo
  113        */
  114      
  115       public String getRequiredVersion() {
  116           return jspversion;
  117       }
  118   
  119   
  120       /**
  121        * An array describing the tags that are defined in this tag library.
  122        *
  123        * @return the TagInfo objects corresponding to the tags defined by this
  124        *         tag library, or a zero length array if this tag library
  125        *         defines no tags
  126        */
  127       public TagInfo[] getTags() {
  128           return tags;
  129       }
  130   
  131       /**
  132        * An array describing the tag files that are defined in this tag library.
  133        *
  134        * @return the TagFileInfo objects corresponding to the tag files defined
  135        *         by this tag library, or a zero length array if this
  136        *         tag library defines no tags files
  137        * @since 2.0
  138        */
  139       public TagFileInfo[] getTagFiles() {
  140           return tagFiles;
  141       }
  142   
  143   
  144       /**
  145        * Get the TagInfo for a given tag name, looking through all the
  146        * tags in this tag library.
  147        *
  148        * @param shortname The short name (no prefix) of the tag
  149        * @return the TagInfo for the tag with the specified short name, or
  150        *         null if no such tag is found
  151        */
  152   
  153       public TagInfo getTag(String shortname) {
  154           TagInfo tags[] = getTags();
  155   
  156           if (tags == null || tags.length == 0) {
  157               return null;
  158           }
  159   
  160           for (int i=0; i < tags.length; i++) {
  161               if (tags[i].getTagName().equals(shortname)) {
  162                   return tags[i];
  163               }
  164           }
  165           return null;
  166       }
  167   
  168       /**
  169        * Get the TagFileInfo for a given tag name, looking through all the
  170        * tag files in this tag library.
  171        *
  172        * @param shortname The short name (no prefix) of the tag
  173        * @return the TagFileInfo for the specified Tag file, or null
  174        *         if no Tag file is found
  175        * @since 2.0
  176        */
  177       public TagFileInfo getTagFile(String shortname) {
  178           TagFileInfo tagFiles[] = getTagFiles();
  179   
  180           if (tagFiles == null || tagFiles.length == 0) {
  181               return null;
  182           }
  183   
  184           for (int i=0; i < tagFiles.length; i++) {
  185               if (tagFiles[i].getName().equals(shortname)) {
  186                   return tagFiles[i];
  187               }
  188           }
  189           return null;
  190       }
  191   
  192       /**
  193        * An array describing the functions that are defined in this tag library.
  194        *
  195        * @return the functions defined in this tag library, or a zero
  196        *         length array if the tag library defines no functions.
  197        * @since 2.0
  198        */
  199       public FunctionInfo[] getFunctions() {
  200           return functions;
  201       }
  202   
  203   
  204       /**
  205        * Get the FunctionInfo for a given function name, looking through all the
  206        * functions in this tag library.
  207        *
  208        * @param name The name (no prefix) of the function
  209        * @return the FunctionInfo for the function with the given name, or null
  210        *         if no such function exists
  211        * @since 2.0
  212        */
  213       public FunctionInfo getFunction(String name) {
  214   
  215           if (functions == null || functions.length == 0) {
  216               System.err.println("No functions");
  217               return null;
  218           }
  219   
  220           for (int i=0; i < functions.length; i++) {
  221               if (functions[i].getName().equals(name)) {
  222                   return functions[i];
  223               }
  224           }
  225           return null;
  226       }
  227   
  228   
  229       /**
  230        * Returns an array of TagLibraryInfo objects representing the entire set 
  231        * of tag libraries (including this TagLibraryInfo) imported by taglib 
  232        * directives in the translation unit that references this TagLibraryInfo. 
  233        * If a tag library is imported more than once and bound to different prefices, 
  234        * only the TagLibraryInfo bound to the first prefix must be included 
  235        * in the returned array.
  236        * 
  237        * @return Array of TagLibraryInfo objects representing the entire set 
  238        * of tag libraries (including this TagLibraryInfo) imported by taglib 
  239        * directives in the translation unit that references this TagLibraryInfo.
  240        * @since 2.1
  241        */
  242       public abstract javax.servlet.jsp.tagext.TagLibraryInfo[] getTagLibraryInfos();
  243       
  244       
  245       // Protected fields
  246   
  247       /**
  248        * The prefix assigned to this taglib from the taglib directive.
  249        */
  250       protected String        prefix;
  251       
  252       /**
  253        * The value of the uri attribute from the taglib directive for 
  254        * this library.
  255        */
  256       protected String        uri;
  257       
  258       /**
  259        * An array describing the tags that are defined in this tag library.
  260        */
  261       protected TagInfo[]     tags;
  262       
  263       /**
  264        * An array describing the tag files that are defined in this tag library.
  265        *
  266        * @since 2.0
  267        */
  268       protected TagFileInfo[] tagFiles;
  269       
  270       /**
  271        * An array describing the functions that are defined in this tag library.
  272        *
  273        * @since 2.0
  274        */
  275       protected FunctionInfo[] functions;
  276   
  277       // Tag Library Data
  278       
  279       /**
  280        * The version of the tag library.
  281        */
  282       protected String tlibversion; // required
  283       
  284       /**
  285        * The version of the JSP specification this tag library is written to.
  286        */
  287       protected String jspversion;  // required
  288       
  289       /**
  290        * The preferred short name (prefix) as indicated in the TLD.
  291        */
  292       protected String shortname;   // required
  293       
  294       /**
  295        * The "reliable" URN indicated in the TLD.
  296        */
  297       protected String urn;         // required
  298       
  299       /**
  300        * Information (documentation) for this TLD.
  301        */
  302       protected String info;        // optional
  303   }

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