1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portal.upload;
16  
17  import com.liferay.portal.kernel.upload.UploadPortletRequest;
18  import com.liferay.portal.kernel.upload.UploadServletRequest;
19  
20  import java.io.File;
21  
22  import java.util.ArrayList;
23  import java.util.Collections;
24  import java.util.Enumeration;
25  import java.util.HashMap;
26  import java.util.List;
27  import java.util.Map;
28  
29  import javax.servlet.http.HttpServletRequestWrapper;
30  
31  /**
32   * <a href="UploadPortletRequestImpl.java.html"><b><i>View Source</i></b></a>
33   *
34   * @author Brian Wing Shun Chan
35   * @author Harry Mark
36   */
37  public class UploadPortletRequestImpl
38      extends HttpServletRequestWrapper implements UploadPortletRequest {
39  
40      public UploadPortletRequestImpl(
41          UploadServletRequest uploadRequest, String namespace) {
42  
43          super(uploadRequest);
44  
45          _uploadRequest = uploadRequest;
46          _namespace = namespace;
47      }
48  
49      public void cleanUp() {
50          _uploadRequest.cleanUp();
51      }
52  
53      public String getContentType(String name) {
54          String contentType = _uploadRequest.getContentType(_namespace + name);
55  
56          if (contentType == null) {
57              contentType = _uploadRequest.getContentType(name);
58          }
59  
60          return contentType;
61      }
62  
63      public File getFile(String name) {
64          File file = _uploadRequest.getFile(_namespace + name);
65  
66          if (file == null) {
67              file = _uploadRequest.getFile(name);
68          }
69  
70          return file;
71      }
72  
73      public String getFileName(String name) {
74          String fileName = _uploadRequest.getFileName(_namespace + name);
75  
76          if (fileName == null) {
77              fileName = _uploadRequest.getFileName(name);
78          }
79  
80          return fileName;
81      }
82  
83      public String getFullFileName(String name) {
84          String fullFileName = _uploadRequest.getFullFileName(_namespace + name);
85  
86          if (fullFileName == null) {
87              fullFileName = _uploadRequest.getFullFileName(name);
88          }
89  
90          return fullFileName;
91      }
92  
93      public String getParameter(String name) {
94          String parameter = _uploadRequest.getParameter(_namespace + name);
95  
96          if (parameter == null) {
97              parameter = _uploadRequest.getParameter(name);
98          }
99  
100         return parameter;
101     }
102 
103     public Map<String, String[]> getParameterMap() {
104         Map<String, String[]> map = new HashMap<String, String[]>();
105 
106         Enumeration<String> enu = getParameterNames();
107 
108         while (enu.hasMoreElements()) {
109             String name = enu.nextElement();
110 
111             map.put(name, getParameterValues(name));
112         }
113 
114         return map;
115     }
116 
117     public Enumeration<String> getParameterNames() {
118         List<String> parameterNames = new ArrayList<String>();
119 
120         Enumeration<String> enu = _uploadRequest.getParameterNames();
121 
122         while (enu.hasMoreElements()) {
123             String name = enu.nextElement();
124 
125             if (name.startsWith(_namespace)) {
126                 parameterNames.add(
127                     name.substring(_namespace.length(), name.length()));
128             }
129             else {
130                 parameterNames.add(name);
131             }
132         }
133 
134         return Collections.enumeration(parameterNames);
135     }
136 
137     public String[] getParameterValues(String name) {
138         String[] parameterValues = _uploadRequest.getParameterValues(
139             _namespace + name);
140 
141         if (parameterValues == null) {
142             parameterValues = _uploadRequest.getParameterValues(name);
143         }
144 
145         return parameterValues;
146     }
147 
148     public boolean isFormField(String name) {
149         Boolean formField = _uploadRequest.isFormField(_namespace + name);
150 
151         if (formField == null) {
152             formField = _uploadRequest.isFormField(name);
153         }
154 
155         if (formField == null) {
156             return true;
157         }
158         else {
159             return formField.booleanValue();
160         }
161     }
162 
163     private UploadServletRequest _uploadRequest;
164     private String _namespace;
165 
166 }