KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > struts > taglib > logic > IterateTei


1 /*
2  * $Id: IterateTei.java 54929 2004-10-16 16:38:42Z germuska $
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.logic;
19
20 import javax.servlet.jsp.tagext.TagData JavaDoc;
21 import javax.servlet.jsp.tagext.TagExtraInfo JavaDoc;
22 import javax.servlet.jsp.tagext.VariableInfo JavaDoc;
23
24 /**
25  * Implementation of <code>TagExtraInfo</code> for the <b>iterate</b>
26  * tag, identifying the scripting object(s) to be made visible.
27  *
28  * @version $Rev: 54929 $ $Date: 2004-10-16 17:38:42 +0100 (Sat, 16 Oct 2004) $
29  */

30 public class IterateTei extends TagExtraInfo JavaDoc {
31
32   /**
33    * Return information about the scripting variables to be created.
34    */

35   public VariableInfo JavaDoc[] getVariableInfo(TagData JavaDoc data) {
36
37     // prime this array with the maximum potential variables.
38
// will be arraycopy'd out to the final array based on results.
39
VariableInfo JavaDoc[] variables = new VariableInfo JavaDoc[2];
40
41     // counter for matched results.
42
int counter = 0;
43
44     /* id : object of the current iteration */
45     String JavaDoc id = data.getAttributeString("id");
46     String JavaDoc type = data.getAttributeString("type");
47     if (id != null) {
48       if (type == null) {
49         type = "java.lang.Object";
50       }
51       variables[counter++] = new VariableInfo JavaDoc(data.getAttributeString("id"),
52                                               type, true,
53                                               VariableInfo.NESTED);
54     }
55
56     /* indexId : number value of the current iteration */
57     String JavaDoc indexId = data.getAttributeString("indexId");
58     if (indexId != null) {
59       variables[counter++] = new VariableInfo JavaDoc(indexId, "java.lang.Integer",
60                                               true, VariableInfo.NESTED);
61     }
62
63     /* create returning array, and copy results */
64     VariableInfo JavaDoc[] result;
65     if (counter > 0) {
66       result = new VariableInfo JavaDoc[counter];
67       System.arraycopy(variables, 0, result, 0, counter);
68     } else {
69       result = new VariableInfo JavaDoc[0];
70     }
71     return result;
72   }
73 }
74
Popular Tags