View Javadoc

1   /*
2    * $Id: NestedDefineTei.java 376843 2006-02-10 21:02:56Z husted $
3    *
4    * Copyright 1999-2004 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.struts.taglib.nested.bean;
19  
20  import org.apache.struts.taglib.logic.IterateTei;
21  
22  import javax.servlet.jsp.tagext.TagData;
23  import javax.servlet.jsp.tagext.VariableInfo;
24  
25  /***
26   * NestedDefineTei to make sure that the implied setting of the name property
27   * of a nested tag is properly handed in the casting of the defined object.
28   * Currently goes to String, but for the purposes of most nested objects they
29   * will benefit more from a simple Object casting.
30   *
31   * @version $Rev: 376843 $
32   * @since Struts 1.1
33   */
34  public class NestedDefineTei extends IterateTei {
35      /***
36       * Return information about the scripting variables to be created.
37       */
38      public VariableInfo[] getVariableInfo(TagData data) {
39          // get the type
40          String type = (String) data.getAttribute("type");
41  
42          // make it an object if none supplied
43          if (type == null) {
44              type = "java.lang.Object";
45          }
46  
47          // return the infor about the deined object
48          VariableInfo[] vinfo = new VariableInfo[1];
49  
50          vinfo[0] =
51              new VariableInfo(data.getAttributeString("id"), type, true,
52                  VariableInfo.AT_END);
53  
54          /* return the results */
55          return vinfo;
56      }
57  }