1 12 package org.openbravo.base; 13 14 import java.util.Enumeration ; 15 import java.util.StringTokenizer ; 16 import java.util.Vector ; 17 import java.util.List ; 18 import java.util.Iterator ; 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 <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 ServletFileUpload upload = new ServletFileUpload(factory); 45 try { 47 items = upload.parseRequest(request); 48 } catch (FileUploadException ex) { 49 ex.printStackTrace(); 50 } 51 } 52 } 53 54 public String getGlobalVariable(String requestParameter, String sessionAttribute, boolean clearSession, 55 boolean requestRequired, boolean sessionRequired, String defaultValue) throws ServletException { 56 String 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 getInGlobalVariable(String requestParameter, String sessionAttribute, boolean clearSession, 87 boolean requestRequired, boolean sessionRequired, String defaultValue) throws ServletException { 88 String 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 getGlobalVariable(String requestParameter, String sessionAttribute, String defaultValue) throws ServletException { 118 return getGlobalVariable(requestParameter, sessionAttribute, false,false, false, defaultValue); 119 } 120 121 public String getGlobalVariable(String requestParameter, String sessionAttribute) throws ServletException { 122 return getGlobalVariable(requestParameter, sessionAttribute, false, false, true, ""); 123 } 124 125 public String getRequiredGlobalVariable(String requestParameter, String sessionAttribute) throws ServletException { 126 return getGlobalVariable(requestParameter, sessionAttribute, false,true, true, ""); 127 } 128 129 public String getRequestGlobalVariable(String requestParameter, String sessionAttribute) throws ServletException { 130 return getGlobalVariable(requestParameter, sessionAttribute, true,false,false, ""); 131 } 132 133 public String getRequiredInputGlobalVariable(String requestParameter, String sessionAttribute, String defaultStr) throws ServletException { 134 return getGlobalVariable(requestParameter, sessionAttribute, true,false,false, defaultStr); 135 } 136 137 public String getInGlobalVariable(String requestParameter, String sessionAttribute, String defaultValue) throws ServletException { 138 return getInGlobalVariable(requestParameter, sessionAttribute, false,false, false, defaultValue); 139 } 140 141 public String getInGlobalVariable(String requestParameter, String sessionAttribute) throws ServletException { 142 return getInGlobalVariable(requestParameter, sessionAttribute, false, false, true, ""); 143 } 144 145 public String getRequiredInGlobalVariable(String requestParameter, String sessionAttribute) throws ServletException { 146 return getInGlobalVariable(requestParameter, sessionAttribute, false,true, true, ""); 147 } 148 149 public String getRequestInGlobalVariable(String requestParameter, String sessionAttribute) throws ServletException { 150 return getInGlobalVariable(requestParameter, sessionAttribute, true,false,false, ""); 151 } 152 153 public String getStringParameter(String parameter, String defaultValue) { 154 try { 155 return getStringParameter(parameter, false, defaultValue); 156 } 157 catch (Exception e) {return null;} 158 } 159 160 public String getStringParameter(String parameter) { 161 return getStringParameter(parameter, ""); 162 } 163 164 public String getRequiredStringParameter(String parameter) throws ServletException { 165 return getStringParameter(parameter, true, ""); 166 } 167 168 169 public String getStringParameter(String parameter, boolean required, String defaultValue) throws ServletException { 170 String auxStr = null; 171 try { 172 if (isMultipart) auxStr = getMultiParameter(parameter); 173 else auxStr = httpRequest.getParameter(parameter); 174 } catch (Exception 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 getInParameter(String parameter, String defaultValue) throws ServletException { 191 return getInParameter(parameter, false, defaultValue); 192 } 193 194 public String getInParameter(String parameter) throws ServletException { 195 return getInParameter(parameter, false, ""); 196 } 197 198 public String getRequiredInParameter(String parameter) throws ServletException { 199 return getInParameter(parameter, true, ""); 200 } 201 202 public String getInParameter(String parameter, boolean required, String defaultValue) throws ServletException { 203 String [] auxStr=null; 204 StringBuffer strResultado = new StringBuffer (); 205 try { 206 if (isMultipart) auxStr = getMultiParameters(parameter); 207 else auxStr = httpRequest.getParameterValues(parameter); 208 } catch (Exception 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 getInStringParameter(String parameter, String defaultValue) throws ServletException { 246 return getInStringParameter(parameter, false, defaultValue); 247 } 248 249 public String getInStringParameter(String parameter) throws ServletException { 250 return getInStringParameter(parameter, false, ""); 251 } 252 253 public String getRequiredInStringParameter(String parameter) throws ServletException { 254 return getInStringParameter(parameter, true, ""); 255 } 256 257 public String getInStringParameter(String parameter, boolean required, String defaultValue) throws ServletException { 258 String [] auxStr=null; 259 StringBuffer strResultado = new StringBuffer (); 260 try { 261 if (isMultipart) auxStr = getMultiParameters(parameter); 262 else auxStr = httpRequest.getParameterValues(parameter); 263 } catch (Exception 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 getSessionValue(String sessionAttribute) { 293 return getSessionValue(sessionAttribute, ""); 294 } 295 296 public String getSessionValue(String sessionAttribute, String defaultValue) { 297 String auxStr = null; 298 try { 299 auxStr = (String ) session.getAttribute(sessionAttribute.toUpperCase()); 300 if (auxStr==null || auxStr.trim().equals("")) 301 auxStr = defaultValue; 302 } 303 catch (Exception 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 attribute, String 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 e) { 316 log4j.error("setSessionValue error: " + attribute + ":..." + value); 317 } 318 } 319 320 public void removeSessionValue(String attribute) { 321 try { 322 session.removeAttribute(attribute.toUpperCase()); 323 } 324 catch (Exception e) { 325 log4j.error("removeSessionValue error: " + attribute); 326 } 327 } 328 329 public Object getSessionObject(String sessionAttribute) { 330 Object auxStr = null; 331 try { 332 auxStr = (Object ) session.getAttribute(sessionAttribute.toUpperCase()); 333 } catch (Exception e) { 334 auxStr = null; 335 } 336 return auxStr; 337 } 338 339 public void setSessionObject(String attribute, Object value) { 340 try { 341 session.setAttribute(attribute.toUpperCase(), value); 342 } catch (Exception 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 target=""; 350 try { 351 String sessionName; 352 Enumeration e = session.getAttributeNames(); 353 while (e.hasMoreElements()) { 354 sessionName = (String )e.nextElement(); 355 if (log4j.isDebugEnabled()) log4j.debug(" session name: " + sessionName); 356 if (!all && sessionName.equalsIgnoreCase("target")) target = (String ) session.getAttribute(sessionName); 357 session.removeAttribute(sessionName); 358 e = session.getAttributeNames(); 359 } 360 } catch (Exception e) { 361 log4j.error("clearSession error " + e); 362 } 363 if (!target.equals("")) session.setAttribute("TARGET", target); 364 } 365 366 public Vector <String > getListFromInString(String strDatos) { 367 Vector <String > fields = new Vector <String >(); 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 datos = new StringTokenizer (strDatos, ",", false); 375 while (datos.hasMoreTokens()) { 376 String 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 getMultiParameter(String parameter) { 385 if (!isMultipart || items==null) return ""; 386 Iterator 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 ex) { 393 ex.printStackTrace(); 394 return ""; 395 } 396 } 397 } 398 return ""; 399 } 400 401 public String [] getMultiParameters(String parameter) { 402 if (!isMultipart || items==null) return null; 403 Iterator iter = items.iterator(); 404 Vector <String > result = new Vector <String >(); 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 ex) {} 411 } 412 } 413 String [] strResult = new String [result.size()]; 414 result.copyInto(strResult); 415 return strResult; 416 } 417 418 public FileItem getMultiFile(String parameter) { 419 if (!isMultipart || items==null) return null; 420 Iterator 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 |