1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.strutsel.taglib.bean;
22
23 import org.apache.struts.taglib.bean.SizeTag;
24 import org.apache.strutsel.taglib.utils.EvalHelper;
25
26 import javax.servlet.jsp.JspException;
27
28 /**
29 * Define a scripting variable that will contain the number of elements found
30 * in a specified array, Collection, or Map. <p> This class is a subclass of
31 * the class <code>org.apache.struts.taglib.bean.SizeTag</code> which provides
32 * most of the described functionality. This subclass allows all attribute
33 * values to be specified as expressions utilizing the JavaServer Pages
34 * Standard Library expression language.
35 *
36 * @version $Rev: 471754 $
37 */
38 public class ELSizeTag extends SizeTag {
39 /**
40 * Instance variable mapped to "collection" tag attribute. (Mapping set in
41 * associated BeanInfo class.)
42 */
43 private String collectionExpr;
44
45 /**
46 * Instance variable mapped to "id" tag attribute. (Mapping set in
47 * associated BeanInfo class.)
48 */
49 private String idExpr;
50
51 /**
52 * Instance variable mapped to "name" tag attribute. (Mapping set in
53 * associated BeanInfo class.)
54 */
55 private String nameExpr;
56
57 /**
58 * Instance variable mapped to "property" tag attribute. (Mapping set in
59 * associated BeanInfo class.)
60 */
61 private String propertyExpr;
62
63 /**
64 * Instance variable mapped to "scope" tag attribute. (Mapping set in
65 * associated BeanInfo class.)
66 */
67 private String scopeExpr;
68
69 /**
70 * Getter method for "collection" tag attribute. (Mapping set in
71 * associated BeanInfo class.)
72 */
73 public String getCollectionExpr() {
74 return (collectionExpr);
75 }
76
77 /**
78 * Getter method for "id" tag attribute. (Mapping set in associated
79 * BeanInfo class.)
80 */
81 public String getIdExpr() {
82 return (idExpr);
83 }
84
85 /**
86 * Getter method for "name" tag attribute. (Mapping set in associated
87 * BeanInfo class.)
88 */
89 public String getNameExpr() {
90 return (nameExpr);
91 }
92
93 /**
94 * Getter method for "property" tag attribute. (Mapping set in associated
95 * BeanInfo class.)
96 */
97 public String getPropertyExpr() {
98 return (propertyExpr);
99 }
100
101 /**
102 * Getter method for "scope" tag attribute. (Mapping set in associated
103 * BeanInfo class.)
104 */
105 public String getScopeExpr() {
106 return (scopeExpr);
107 }
108
109 /**
110 * Setter method for "collection" tag attribute. (Mapping set in
111 * associated BeanInfo class.)
112 */
113 public void setCollectionExpr(String collectionExpr) {
114 this.collectionExpr = collectionExpr;
115 }
116
117 /**
118 * Setter method for "id" tag attribute. (Mapping set in associated
119 * BeanInfo class.)
120 */
121 public void setIdExpr(String idExpr) {
122 this.idExpr = idExpr;
123 }
124
125 /**
126 * Setter method for "name" tag attribute. (Mapping set in associated
127 * BeanInfo class.)
128 */
129 public void setNameExpr(String nameExpr) {
130 this.nameExpr = nameExpr;
131 }
132
133 /**
134 * Setter method for "property" tag attribute. (Mapping set in associated
135 * BeanInfo class.)
136 */
137 public void setPropertyExpr(String propertyExpr) {
138 this.propertyExpr = propertyExpr;
139 }
140
141 /**
142 * Setter method for "scope" tag attribute. (Mapping set in associated
143 * BeanInfo class.)
144 */
145 public void setScopeExpr(String scopeExpr) {
146 this.scopeExpr = scopeExpr;
147 }
148
149 /**
150 * Releases state of custom tag so this instance can be reused.
151 */
152 public void release() {
153 super.release();
154 setCollectionExpr(null);
155 setIdExpr(null);
156 setNameExpr(null);
157 setPropertyExpr(null);
158 setScopeExpr(null);
159 }
160
161 /**
162 * Process the start tag.
163 *
164 * @throws JspException if a JSP exception has occurred
165 */
166 public int doStartTag() throws JspException {
167 evaluateExpressions();
168
169 return (super.doStartTag());
170 }
171
172 /**
173 * Processes all attribute values which use the JSTL expression evaluation
174 * engine to determine their values.
175 *
176 * @throws JspException if a JSP exception has occurred
177 */
178 private void evaluateExpressions()
179 throws JspException {
180 String string = null;
181 Object object = null;
182
183 if ((object =
184 EvalHelper.eval("collection", getCollectionExpr(), this,
185 pageContext)) != null) {
186 setCollection(object);
187 }
188
189 if ((string =
190 EvalHelper.evalString("id", getIdExpr(), this, pageContext)) != null) {
191 setId(string);
192 }
193
194 if ((string =
195 EvalHelper.evalString("name", getNameExpr(), this, pageContext)) != null) {
196 setName(string);
197 }
198
199 if ((string =
200 EvalHelper.evalString("property", getPropertyExpr(), this,
201 pageContext)) != null) {
202 setProperty(string);
203 }
204
205 if ((string =
206 EvalHelper.evalString("scope", getScopeExpr(), this, pageContext)) != null) {
207 setScope(string);
208 }
209 }
210 }