View Javadoc

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 org.apache.struts2.jasper.compiler;
19  
20  import javax.servlet.jsp.tagext.*;
21  
22  /***
23   * TagInfo extension used by tag handlers that are implemented via tag files.
24   * This class provides access to the name of the Map used to store the
25   * dynamic attribute names and values passed to the custom action invocation.
26   * This information is used by the code generator.
27   */
28  class JasperTagInfo extends TagInfo {
29  
30      private String dynamicAttrsMapName;
31  
32      public JasperTagInfo(String tagName,
33                           String tagClassName,
34                           String bodyContent,
35                           String infoString,
36                           TagLibraryInfo taglib,
37                           TagExtraInfo tagExtraInfo,
38                           TagAttributeInfo[] attributeInfo,
39                           String displayName,
40                           String smallIcon,
41                           String largeIcon,
42                           TagVariableInfo[] tvi,
43                           String mapName) {
44  
45          super(tagName, tagClassName, bodyContent, infoString, taglib,
46                  tagExtraInfo, attributeInfo, displayName, smallIcon, largeIcon,
47                  tvi);
48          this.dynamicAttrsMapName = mapName;
49      }
50  
51      public String getDynamicAttributesMapName() {
52          return dynamicAttrsMapName;
53      }
54  
55      public boolean hasDynamicAttributes() {
56          return dynamicAttrsMapName != null;
57      }
58  }