View Javadoc

1   /*
2    * $Id: ELNotPresentTag.java 471754 2006-11-06 14:55:09Z husted $
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  package org.apache.strutsel.taglib.logic;
22  
23  import org.apache.struts.taglib.logic.NotPresentTag;
24  import org.apache.strutsel.taglib.utils.EvalHelper;
25  
26  import javax.servlet.jsp.JspException;
27  
28  /**
29   * Evaluates the nested body content of this tag if the specified value is not
30   * present for this request. <p> This class is a subclass of the class
31   * <code>org.apache.struts.taglib.logic.NotPresentTag</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 ELNotPresentTag extends NotPresentTag {
39      /**
40       * Instance variable mapped to "cookie" tag attribute. (Mapping set in
41       * associated BeanInfo class.)
42       */
43      private String cookieExpr;
44  
45      /**
46       * Instance variable mapped to "header" tag attribute. (Mapping set in
47       * associated BeanInfo class.)
48       */
49      private String headerExpr;
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 "parameter" tag attribute. (Mapping set in
59       * associated BeanInfo class.)
60       */
61      private String parameterExpr;
62  
63      /**
64       * Instance variable mapped to "property" tag attribute. (Mapping set in
65       * associated BeanInfo class.)
66       */
67      private String propertyExpr;
68  
69      /**
70       * Instance variable mapped to "role" tag attribute. (Mapping set in
71       * associated BeanInfo class.)
72       */
73      private String roleExpr;
74  
75      /**
76       * Instance variable mapped to "scope" tag attribute. (Mapping set in
77       * associated BeanInfo class.)
78       */
79      private String scopeExpr;
80  
81      /**
82       * Instance variable mapped to "user" tag attribute. (Mapping set in
83       * associated BeanInfo class.)
84       */
85      private String userExpr;
86  
87      /**
88       * Getter method for "cookie" tag attribute. (Mapping set in associated
89       * BeanInfo class.)
90       */
91      public String getCookieExpr() {
92          return (cookieExpr);
93      }
94  
95      /**
96       * Getter method for "header" tag attribute. (Mapping set in associated
97       * BeanInfo class.)
98       */
99      public String getHeaderExpr() {
100         return (headerExpr);
101     }
102 
103     /**
104      * Getter method for "name" tag attribute. (Mapping set in associated
105      * BeanInfo class.)
106      */
107     public String getNameExpr() {
108         return (nameExpr);
109     }
110 
111     /**
112      * Getter method for "parameter" tag attribute. (Mapping set in associated
113      * BeanInfo class.)
114      */
115     public String getParameterExpr() {
116         return (parameterExpr);
117     }
118 
119     /**
120      * Getter method for "property" tag attribute. (Mapping set in associated
121      * BeanInfo class.)
122      */
123     public String getPropertyExpr() {
124         return (propertyExpr);
125     }
126 
127     /**
128      * Getter method for "role" tag attribute. (Mapping set in associated
129      * BeanInfo class.)
130      */
131     public String getRoleExpr() {
132         return (roleExpr);
133     }
134 
135     /**
136      * Getter method for "scope" tag attribute. (Mapping set in associated
137      * BeanInfo class.)
138      */
139     public String getScopeExpr() {
140         return (scopeExpr);
141     }
142 
143     /**
144      * Getter method for "user" tag attribute. (Mapping set in associated
145      * BeanInfo class.)
146      */
147     public String getUserExpr() {
148         return (userExpr);
149     }
150 
151     /**
152      * Setter method for "cookie" tag attribute. (Mapping set in associated
153      * BeanInfo class.)
154      */
155     public void setCookieExpr(String cookieExpr) {
156         this.cookieExpr = cookieExpr;
157     }
158 
159     /**
160      * Setter method for "header" tag attribute. (Mapping set in associated
161      * BeanInfo class.)
162      */
163     public void setHeaderExpr(String headerExpr) {
164         this.headerExpr = headerExpr;
165     }
166 
167     /**
168      * Setter method for "name" tag attribute. (Mapping set in associated
169      * BeanInfo class.)
170      */
171     public void setNameExpr(String nameExpr) {
172         this.nameExpr = nameExpr;
173     }
174 
175     /**
176      * Setter method for "parameter" tag attribute. (Mapping set in associated
177      * BeanInfo class.)
178      */
179     public void setParameterExpr(String parameterExpr) {
180         this.parameterExpr = parameterExpr;
181     }
182 
183     /**
184      * Setter method for "property" tag attribute. (Mapping set in associated
185      * BeanInfo class.)
186      */
187     public void setPropertyExpr(String propertyExpr) {
188         this.propertyExpr = propertyExpr;
189     }
190 
191     /**
192      * Setter method for "role" tag attribute. (Mapping set in associated
193      * BeanInfo class.)
194      */
195     public void setRoleExpr(String roleExpr) {
196         this.roleExpr = roleExpr;
197     }
198 
199     /**
200      * Setter method for "scope" tag attribute. (Mapping set in associated
201      * BeanInfo class.)
202      */
203     public void setScopeExpr(String scopeExpr) {
204         this.scopeExpr = scopeExpr;
205     }
206 
207     /**
208      * Setter method for "user" tag attribute. (Mapping set in associated
209      * BeanInfo class.)
210      */
211     public void setUserExpr(String userExpr) {
212         this.userExpr = userExpr;
213     }
214 
215     /**
216      * Resets attribute values for tag reuse.
217      */
218     public void release() {
219         super.release();
220         setCookieExpr(null);
221         setHeaderExpr(null);
222         setNameExpr(null);
223         setParameterExpr(null);
224         setPropertyExpr(null);
225         setRoleExpr(null);
226         setScopeExpr(null);
227         setUserExpr(null);
228     }
229 
230     /**
231      * Process the start tag.
232      *
233      * @throws JspException if a JSP exception has occurred
234      */
235     public int doStartTag() throws JspException {
236         evaluateExpressions();
237 
238         return (super.doStartTag());
239     }
240 
241     /**
242      * Processes all attribute values which use the JSTL expression evaluation
243      * engine to determine their values.
244      *
245      * @throws JspException if a JSP exception has occurred
246      */
247     private void evaluateExpressions()
248         throws JspException {
249         String string = null;
250 
251         if ((string =
252                 EvalHelper.evalString("cookie", getCookieExpr(), this,
253                     pageContext)) != null) {
254             setCookie(string);
255         }
256 
257         if ((string =
258                 EvalHelper.evalString("header", getHeaderExpr(), this,
259                     pageContext)) != null) {
260             setHeader(string);
261         }
262 
263         if ((string =
264                 EvalHelper.evalString("name", getNameExpr(), this, pageContext)) != null) {
265             setName(string);
266         }
267 
268         if ((string =
269                 EvalHelper.evalString("parameter", getParameterExpr(), this,
270                     pageContext)) != null) {
271             setParameter(string);
272         }
273 
274         if ((string =
275                 EvalHelper.evalString("property", getPropertyExpr(), this,
276                     pageContext)) != null) {
277             setProperty(string);
278         }
279 
280         if ((string =
281                 EvalHelper.evalString("role", getRoleExpr(), this, pageContext)) != null) {
282             setRole(string);
283         }
284 
285         if ((string =
286                 EvalHelper.evalString("scope", getScopeExpr(), this, pageContext)) != null) {
287             setScope(string);
288         }
289 
290         if ((string =
291                 EvalHelper.evalString("user", getUserExpr(), this, pageContext)) != null) {
292             setUser(string);
293         }
294     }
295 }