1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.struts.taglib.logic;
19
20 import javax.servlet.jsp.tagext.TagData;
21 import javax.servlet.jsp.tagext.TagExtraInfo;
22 import javax.servlet.jsp.tagext.VariableInfo;
23
24 /***
25 * Implementation of <code>TagExtraInfo</code> for the <b>iterate</b> tag,
26 * identifying the scripting object(s) to be made visible.
27 *
28 * @version $Rev: 376842 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004)
29 * $
30 */
31 public class IterateTei extends TagExtraInfo {
32 /***
33 * Return information about the scripting variables to be created.
34 */
35 public VariableInfo[] getVariableInfo(TagData data) {
36
37
38 VariableInfo[] variables = new VariableInfo[2];
39
40
41 int counter = 0;
42
43
44 String id = data.getAttributeString("id");
45 String type = data.getAttributeString("type");
46
47 if (id != null) {
48 if (type == null) {
49 type = "java.lang.Object";
50 }
51
52 variables[counter++] =
53 new VariableInfo(data.getAttributeString("id"), type, true,
54 VariableInfo.NESTED);
55 }
56
57
58 String indexId = data.getAttributeString("indexId");
59
60 if (indexId != null) {
61 variables[counter++] =
62 new VariableInfo(indexId, "java.lang.Integer", true,
63 VariableInfo.NESTED);
64 }
65
66
67 VariableInfo[] result;
68
69 if (counter > 0) {
70 result = new VariableInfo[counter];
71 System.arraycopy(variables, 0, result, 0, counter);
72 } else {
73 result = new VariableInfo[0];
74 }
75
76 return result;
77 }
78 }