KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > base > VariablesBase


1 /*
2  ************************************************************************************
3  * Copyright (C) 2001-2006 Openbravo S.L.
4  * Licensed under the Apache Software License version 2.0
5  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6  * Unless required by applicable law or agreed to in writing, software distributed
7  * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
8  * CONDITIONS OF ANY KIND, either express or implied. See the License for the
9  * specific language governing permissions and limitations under the License.
10  ************************************************************************************
11 */

12 package org.openbravo.base;
13
14 import java.util.Enumeration JavaDoc;
15 import java.util.StringTokenizer JavaDoc;
16 import java.util.Vector JavaDoc;
17 import java.util.List JavaDoc;
18 import java.util.Iterator JavaDoc;
19 import javax.servlet.*;
20 import javax.servlet.http.*;
21 import org.apache.log4j.Logger ;
22 import org.apache.commons.fileupload.*;
23 import org.apache.commons.fileupload.disk.*;
24 import org.apache.commons.fileupload.servlet.*;
25
26 public class VariablesBase {
27   HttpSession session;
28   HttpServletRequest httpRequest;
29   public boolean isMultipart = false;
30   List JavaDoc<FileItem> items;
31
32   static Logger log4j = Logger.getLogger(VariablesBase.class);
33   public VariablesBase() {
34   }
35
36   public VariablesBase(HttpServletRequest request) {
37     this.session = request.getSession(true);
38     this.httpRequest = request;
39     this.isMultipart = ServletFileUpload.isMultipartContent(request);
40     if (isMultipart) {
41       DiskFileItemFactory factory = new DiskFileItemFactory();
42       //factory.setSizeThreshold(yourMaxMemorySize);
43
//factory.setRepositoryPath(yourTempDirectory);
44
ServletFileUpload upload = new ServletFileUpload(factory);
45       //upload.setSizeMax(yourMaxRequestSize);
46
try {
47         items = upload.parseRequest(request);
48       } catch (FileUploadException ex) {
49         ex.printStackTrace();
50       }
51     }
52   }
53
54   public String JavaDoc getGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute, boolean clearSession,
55       boolean requestRequired, boolean sessionRequired, String JavaDoc defaultValue) throws ServletException {
56     String JavaDoc auxStr = getStringParameter(requestParameter);
57     if (log4j.isDebugEnabled()) log4j.debug("Request parameter: " + requestParameter + ":..." + auxStr);
58     if (!(auxStr.equals(""))) {
59       setSessionValue(sessionAttribute, auxStr);
60     } else {
61       if (requestRequired) {
62         throw new ServletException("Request parameter required: " + requestParameter);
63       } else {
64         auxStr = getSessionValue(sessionAttribute);
65         if (!sessionAttribute.equalsIgnoreCase("menuVertical") && log4j.isDebugEnabled()) log4j.debug("Session attribute: " + sessionAttribute + ":..." + auxStr);
66         if (auxStr.equals("")) {
67           if (sessionRequired) {
68             throw new ServletException("Session attribute required: " + sessionAttribute);
69           } else {
70             auxStr = defaultValue;
71             if (log4j.isDebugEnabled()) log4j.debug("Default value:..." + auxStr);
72             setSessionValue(sessionAttribute, auxStr);
73           }
74         } else {
75           if (clearSession) {
76             auxStr = defaultValue;
77             if (auxStr.equals("")) removeSessionValue(sessionAttribute);
78             else setSessionValue(sessionAttribute, auxStr);
79           }
80         }
81       }
82     }
83     return auxStr;
84   }
85
86   public String JavaDoc getInGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute, boolean clearSession,
87       boolean requestRequired, boolean sessionRequired, String JavaDoc defaultValue) throws ServletException {
88     String JavaDoc auxStr = getInStringParameter(requestParameter);
89     if (log4j.isDebugEnabled()) log4j.debug("Request IN parameter: " + requestParameter + ":..." + auxStr);
90     if (!(auxStr.equals(""))) {
91       setSessionValue(sessionAttribute, auxStr);
92     } else {
93       if (requestRequired) {
94         throw new ServletException("Request IN parameter required: " + requestParameter);
95       } else {
96         auxStr = getSessionValue(sessionAttribute);
97         if (log4j.isDebugEnabled()) log4j.debug("Session IN attribute: " + sessionAttribute + ":..." + auxStr);
98         if (auxStr.equals("")) {
99           if (sessionRequired) {
100             throw new ServletException("Session IN attribute required: " + sessionAttribute);
101           } else {
102             auxStr = defaultValue;
103             if (log4j.isDebugEnabled()) log4j.debug("Default value:..." + auxStr);
104             setSessionValue(sessionAttribute, auxStr);
105           }
106         } else {
107           if (clearSession) {
108             auxStr = "";
109             removeSessionValue(sessionAttribute);
110           }
111         }
112       }
113     }
114     return auxStr;
115   }
116
117   public String JavaDoc getGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute, String JavaDoc defaultValue) throws ServletException {
118     return getGlobalVariable(requestParameter, sessionAttribute, false,false, false, defaultValue);
119   }
120
121   public String JavaDoc getGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute) throws ServletException {
122     return getGlobalVariable(requestParameter, sessionAttribute, false, false, true, "");
123   }
124
125   public String JavaDoc getRequiredGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute) throws ServletException {
126     return getGlobalVariable(requestParameter, sessionAttribute, false,true, true, "");
127   }
128
129   public String JavaDoc getRequestGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute) throws ServletException {
130     return getGlobalVariable(requestParameter, sessionAttribute, true,false,false, "");
131   }
132
133   public String JavaDoc getRequiredInputGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute, String JavaDoc defaultStr) throws ServletException {
134     return getGlobalVariable(requestParameter, sessionAttribute, true,false,false, defaultStr);
135   }
136
137   public String JavaDoc getInGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute, String JavaDoc defaultValue) throws ServletException {
138     return getInGlobalVariable(requestParameter, sessionAttribute, false,false, false, defaultValue);
139   }
140
141   public String JavaDoc getInGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute) throws ServletException {
142     return getInGlobalVariable(requestParameter, sessionAttribute, false, false, true, "");
143   }
144
145   public String JavaDoc getRequiredInGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute) throws ServletException {
146     return getInGlobalVariable(requestParameter, sessionAttribute, false,true, true, "");
147   }
148
149   public String JavaDoc getRequestInGlobalVariable(String JavaDoc requestParameter, String JavaDoc sessionAttribute) throws ServletException {
150     return getInGlobalVariable(requestParameter, sessionAttribute, true,false,false, "");
151   }
152
153   public String JavaDoc getStringParameter(String JavaDoc parameter, String JavaDoc defaultValue) {
154     try {
155       return getStringParameter(parameter, false, defaultValue);
156     }
157     catch (Exception JavaDoc e) {return null;}
158   }
159
160   public String JavaDoc getStringParameter(String JavaDoc parameter) {
161     return getStringParameter(parameter, "");
162   }
163
164   public String JavaDoc getRequiredStringParameter(String JavaDoc parameter) throws ServletException {
165     return getStringParameter(parameter, true, "");
166   }
167
168
169   public String JavaDoc getStringParameter(String JavaDoc parameter, boolean required, String JavaDoc defaultValue) throws ServletException {
170     String JavaDoc auxStr = null;
171     try {
172       if (isMultipart) auxStr = getMultiParameter(parameter);
173       else auxStr = httpRequest.getParameter(parameter);
174     } catch (Exception JavaDoc e) {
175       if (!(required)) {
176         auxStr = defaultValue;
177       }
178     }
179     if (auxStr==null || auxStr.trim().equals("")) {
180       if (required) {
181         throw new ServletException("Request parameter required: " + parameter);
182       } else {
183         auxStr = defaultValue;
184       }
185     }
186     if (log4j.isDebugEnabled()) log4j.debug("Request parameter: " + parameter + ":..." + auxStr);
187     return auxStr;
188   }
189
190   public String JavaDoc getInParameter(String JavaDoc parameter, String JavaDoc defaultValue) throws ServletException {
191     return getInParameter(parameter, false, defaultValue);
192   }
193
194   public String JavaDoc getInParameter(String JavaDoc parameter) throws ServletException {
195     return getInParameter(parameter, false, "");
196   }
197
198   public String JavaDoc getRequiredInParameter(String JavaDoc parameter) throws ServletException {
199     return getInParameter(parameter, true, "");
200   }
201
202   public String JavaDoc getInParameter(String JavaDoc parameter, boolean required, String JavaDoc defaultValue) throws ServletException {
203     String JavaDoc[] auxStr=null;
204     StringBuffer JavaDoc strResultado = new StringBuffer JavaDoc();
205     try {
206       if (isMultipart) auxStr = getMultiParameters(parameter);
207       else auxStr = httpRequest.getParameterValues(parameter);
208     } catch (Exception JavaDoc e){
209       if (!(required)) {
210         strResultado.append(defaultValue);
211       }
212     }
213
214     if (auxStr==null || auxStr.length==0 || auxStr.equals("")) {
215       if (required) {
216         throw new ServletException("Request IN parameter required: " + parameter);
217       } else {
218         strResultado.append(defaultValue);
219       }
220       return strResultado.toString();
221     }
222     if (auxStr!=null && auxStr.length>0) {
223       for (int i=0;i<auxStr.length;i++) {
224         if (auxStr[i].length()>0) {
225           if (strResultado.length()>0) strResultado.append(",");
226           strResultado.append(auxStr[i]);
227         }
228       }
229     }
230
231     if (strResultado.toString().equals("")) {
232       if (required) {
233         throw new ServletException("Request IN parameter required: " + parameter);
234       } else {
235         strResultado.append(defaultValue);
236       }
237       return strResultado.toString();
238     }
239
240     if (log4j.isDebugEnabled()) log4j.debug("Request IN parameter: " + parameter + ":...(" + strResultado.toString() + ")");
241
242     return "(" + strResultado.toString() + ")";
243   }
244
245   public String JavaDoc getInStringParameter(String JavaDoc parameter, String JavaDoc defaultValue) throws ServletException {
246     return getInStringParameter(parameter, false, defaultValue);
247   }
248
249   public String JavaDoc getInStringParameter(String JavaDoc parameter) throws ServletException {
250     return getInStringParameter(parameter, false, "");
251   }
252
253   public String JavaDoc getRequiredInStringParameter(String JavaDoc parameter) throws ServletException {
254     return getInStringParameter(parameter, true, "");
255   }
256
257   public String JavaDoc getInStringParameter(String JavaDoc parameter, boolean required, String JavaDoc defaultValue) throws ServletException {
258     String JavaDoc[] auxStr=null;
259     StringBuffer JavaDoc strResultado = new StringBuffer JavaDoc();
260     try {
261       if (isMultipart) auxStr = getMultiParameters(parameter);
262       else auxStr = httpRequest.getParameterValues(parameter);
263     } catch (Exception JavaDoc e){
264       if (!(required)) {
265         strResultado.append(defaultValue);
266       }
267     }
268
269     if (auxStr==null || auxStr.length==0) {
270       if (required) {
271         throw new ServletException("Request IN parameter required: " + parameter);
272       } else {
273         strResultado.append(defaultValue);
274       }
275       return strResultado.toString();
276     }
277
278     strResultado.append("('");
279     for (int i=0;i<auxStr.length;i++) {
280       if (i>0) {
281         strResultado.append("', '");
282       }
283       strResultado.append(auxStr[i]);
284     }
285     strResultado.append("')");
286
287     if (log4j.isDebugEnabled()) log4j.debug("Request IN parameter: " + parameter + ":..." + strResultado.toString());
288
289     return strResultado.toString();
290   }
291
292   public String JavaDoc getSessionValue(String JavaDoc sessionAttribute) {
293     return getSessionValue(sessionAttribute, "");
294   }
295
296   public String JavaDoc getSessionValue(String JavaDoc sessionAttribute, String JavaDoc defaultValue) {
297     String JavaDoc auxStr = null;
298     try {
299       auxStr = (String JavaDoc) session.getAttribute(sessionAttribute.toUpperCase());
300       if (auxStr==null || auxStr.trim().equals(""))
301         auxStr = defaultValue;
302     }
303     catch (Exception JavaDoc e) {
304       auxStr = defaultValue;
305     }
306     if (!sessionAttribute.equalsIgnoreCase("menuVertical")) if (log4j.isDebugEnabled()) log4j.debug("Session attribute: " + sessionAttribute + ":..." + auxStr);
307     return auxStr;
308   }
309
310   public void setSessionValue(String JavaDoc attribute, String JavaDoc value) {
311     try {
312       session.setAttribute(attribute.toUpperCase(), value);
313       if (!attribute.equalsIgnoreCase("menuVertical")) if (log4j.isDebugEnabled()) log4j.debug("session value: " + attribute + ":..." + value.toString());
314     }
315     catch (Exception JavaDoc e) {
316       log4j.error("setSessionValue error: " + attribute + ":..." + value);
317     }
318   }
319
320   public void removeSessionValue(String JavaDoc attribute) {
321     try {
322       session.removeAttribute(attribute.toUpperCase());
323     }
324     catch (Exception JavaDoc e) {
325       log4j.error("removeSessionValue error: " + attribute);
326     }
327   }
328
329   public Object JavaDoc getSessionObject(String JavaDoc sessionAttribute) {
330     Object JavaDoc auxStr = null;
331     try {
332       auxStr = (Object JavaDoc) session.getAttribute(sessionAttribute.toUpperCase());
333     } catch (Exception JavaDoc e) {
334       auxStr = null;
335     }
336     return auxStr;
337   }
338
339   public void setSessionObject(String JavaDoc attribute, Object JavaDoc value) {
340     try {
341       session.setAttribute(attribute.toUpperCase(), value);
342     } catch (Exception JavaDoc e) {
343       log4j.error("setSessionObject error: " + attribute + ":..." + e);
344     }
345   }
346
347   public void clearSession(boolean all) {
348     if (log4j.isDebugEnabled()) log4j.debug("...: removing session");
349     String JavaDoc target="";
350     try {
351       String JavaDoc sessionName;
352       Enumeration JavaDoc e = session.getAttributeNames();
353       while (e.hasMoreElements()) {
354         sessionName = (String JavaDoc)e.nextElement();
355         if (log4j.isDebugEnabled()) log4j.debug(" session name: " + sessionName);
356         if (!all && sessionName.equalsIgnoreCase("target")) target = (String JavaDoc) session.getAttribute(sessionName);
357         session.removeAttribute(sessionName);
358         e = session.getAttributeNames();
359       }
360     } catch (Exception JavaDoc e) {
361       log4j.error("clearSession error " + e);
362     }
363     if (!target.equals("")) session.setAttribute("TARGET", target);
364   }
365
366   public Vector JavaDoc<String JavaDoc> getListFromInString(String JavaDoc strDatos) {
367     Vector JavaDoc<String JavaDoc> fields = new Vector JavaDoc<String JavaDoc>();
368     if (strDatos==null || strDatos.length()==0) return fields;
369     strDatos = strDatos.trim();
370     if (strDatos.equals("")) return fields;
371     if (strDatos.startsWith("(")) strDatos = strDatos.substring(1, strDatos.length()-1);
372     strDatos = strDatos.trim();
373     if (strDatos.equals("")) return fields;
374     StringTokenizer JavaDoc datos = new StringTokenizer JavaDoc(strDatos, ",", false);
375     while (datos.hasMoreTokens()) {
376       String JavaDoc token = datos.nextToken();
377       if (token.startsWith("'")) token = token.substring(1, token.length()-1);
378       token = token.trim();
379       if (!token.equals("")) fields.addElement(token);
380     }
381     return fields;
382   }
383
384   public String JavaDoc getMultiParameter(String JavaDoc parameter) {
385     if (!isMultipart || items==null) return "";
386     Iterator JavaDoc iter = items.iterator();
387     while (iter.hasNext()) {
388       FileItem item = (FileItem) iter.next();
389       if (item.isFormField() && item.getFieldName().equals(parameter)) {
390         try {
391           return (item.getString());
392         } catch (Exception JavaDoc ex) {
393           ex.printStackTrace();
394           return "";
395         }
396       }
397     }
398     return "";
399   }
400
401   public String JavaDoc[] getMultiParameters(String JavaDoc parameter) {
402     if (!isMultipart || items==null) return null;
403     Iterator JavaDoc iter = items.iterator();
404     Vector JavaDoc<String JavaDoc> result = new Vector JavaDoc<String JavaDoc>();
405     while (iter.hasNext()) {
406       FileItem item = (FileItem) iter.next();
407       if (item.isFormField() && item.getFieldName().equals(parameter)) {
408         try {
409           result.addElement(item.getString());
410         } catch (Exception JavaDoc ex) {}
411       }
412     }
413     String JavaDoc[] strResult = new String JavaDoc[result.size()];
414     result.copyInto(strResult);
415     return strResult;
416   }
417
418   public FileItem getMultiFile(String JavaDoc parameter) {
419     if (!isMultipart || items==null) return null;
420     Iterator JavaDoc iter = items.iterator();
421     while (iter.hasNext()) {
422       FileItem item = (FileItem) iter.next();
423       if (!item.isFormField() && item.getFieldName().equals(parameter)) return item;
424     }
425     return null;
426   }
427 }
428
Popular Tags