3
3
* The CIP4 Software License, Version 1.0
4
4
*
5
5
*
6
- * Copyright (c) 2001-2013 The International Cooperation for the Integration of
6
+ * Copyright (c) 2001-2025 The International Cooperation for the Integration of
7
7
* Processes in Prepress, Press and Postpress (CIP4). All rights
8
8
* reserved.
9
9
*
72
72
73
73
import java .io .IOException ;
74
74
import java .io .InputStream ;
75
+ import java .util .ArrayList ;
75
76
import java .util .List ;
76
77
import java .util .Map ;
77
78
import java .util .Set ;
78
- import java .util .Vector ;
79
79
80
80
import javax .servlet .ServletException ;
81
81
import javax .servlet .http .HttpServletRequest ;
86
86
import org .apache .commons .fileupload .disk .DiskFileItemFactory ;
87
87
import org .apache .commons .fileupload .servlet .ServletFileUpload ;
88
88
import org .cip4 .jdflib .datatypes .JDFAttributeMap ;
89
+ import org .cip4 .jdflib .util .ContainerUtil ;
89
90
import org .cip4 .jdflib .util .StreamUtil ;
90
91
import org .cip4 .jdflib .util .StringUtil ;
91
92
import org .cip4 .jdflib .util .UrlUtil ;
@@ -98,22 +99,22 @@ public class FileItemList
98
99
{
99
100
100
101
final private List <FileItem > fileItems ;
101
- private JDFAttributeMap mapCache ;
102
- private JDFAttributeMap reqParameters ;
102
+ private final JDFAttributeMap mapCache ;
103
+ private final JDFAttributeMap reqParameters ;
103
104
104
105
/**
105
- *
106
+ *
106
107
* @param request
107
108
* @param filesize
108
109
* @return
109
110
*/
110
- public static FileItemList getFileItemList (HttpServletRequest request , long filesize )
111
+ public static FileItemList getFileItemList (final HttpServletRequest request , final long filesize )
111
112
{
112
113
try
113
114
{
114
115
return new FileItemList (request , filesize );
115
116
}
116
- catch (ServletException e )
117
+ catch (final ServletException e )
117
118
{
118
119
return null ;
119
120
}
@@ -125,30 +126,25 @@ public static FileItemList getFileItemList(HttpServletRequest request, long file
125
126
* @param filesize
126
127
* @throws ServletException
127
128
*/
128
- @ SuppressWarnings ("unchecked" )
129
- public FileItemList (HttpServletRequest request , long filesize ) throws ServletException
129
+ public FileItemList (final HttpServletRequest request , final long filesize ) throws ServletException
130
130
{
131
- mapCache = null ;
131
+ mapCache = new JDFAttributeMap ();
132
+ reqParameters = new JDFAttributeMap ();
133
+ fileItems = new ArrayList <FileItem >();
132
134
// Create a factory for disk-based file items
133
135
final FileItemFactory factory = new DiskFileItemFactory ();
134
136
135
137
// Create a new file upload handler
136
138
final ServletFileUpload upload = new ServletFileUpload (factory );
137
- if (request = = null )
139
+ if (request ! = null )
138
140
{
139
- fileItems = null ;
140
- reqParameters = null ;
141
- }
142
- else
143
- {
144
- reqParameters = new JDFAttributeMap ();
145
- Map <String , String []> parameterMap = request .getParameterMap ();
141
+ final Map <String , String []> parameterMap = request .getParameterMap ();
146
142
if (parameterMap != null )
147
143
{
148
- Set <String > keySet = parameterMap .keySet ();
149
- for (String key : keySet )
144
+ final Set <String > keySet = parameterMap .keySet ();
145
+ for (final String key : keySet )
150
146
{
151
- String [] vals = parameterMap .get (key );
147
+ final String [] vals = parameterMap .get (key );
152
148
if (vals != null && vals .length > 0 )
153
149
{
154
150
reqParameters .put (key , vals [0 ]);
@@ -161,43 +157,36 @@ public FileItemList(HttpServletRequest request, long filesize) throws ServletExc
161
157
{
162
158
if (filesize > 0 )
163
159
upload .setSizeMax (filesize );
164
- fileItems = upload .parseRequest (request );
160
+ ContainerUtil . addAll ( fileItems , upload .parseRequest (request ) );
165
161
}
166
162
catch (final FileUploadException fue )
167
163
{
168
164
throw new ServletException ("Could not parse multipart request." , fue );
169
165
}
170
166
}
171
- else
172
- {
173
- fileItems = null ;
174
- }
175
167
}
176
168
}
177
169
178
170
/**
179
171
*
180
- *
172
+ *
181
173
* @return
182
- *
174
+ *
183
175
*/
184
176
public JDFAttributeMap getFieldsFromForm ()
185
177
{
186
- if (mapCache == null )
178
+ if (ContainerUtil . isEmpty ( mapCache ) )
187
179
{
188
- mapCache = new JDFAttributeMap ();
189
- List <FileItem > fileList = getFileList (false , true );
190
- if (fileList != null )
180
+ final List <FileItem > fileList = getFileList (false , true );
181
+ for (final FileItem fi : fileList )
191
182
{
192
- for (FileItem fi : fileList )
183
+ final String itemString = StringUtil .getNonEmpty (fi .getString ());
184
+ if (itemString != null )
193
185
{
194
- String itemString = StringUtil .getNonEmpty (fi .getString ());
195
- if (itemString != null )
196
- {
197
- mapCache .put (fi .getFieldName (), itemString );
198
- }
186
+ mapCache .put (fi .getFieldName (), itemString );
199
187
}
200
188
}
189
+
201
190
mapCache .putAll (reqParameters );
202
191
}
203
192
return mapCache ;
@@ -206,55 +195,58 @@ public JDFAttributeMap getFieldsFromForm()
206
195
/**
207
196
*
208
197
* get a form value
198
+ *
209
199
* @param key
210
200
* @return
211
201
*/
212
- public String getField (String key )
202
+ public String getField (final String key )
213
203
{
214
204
getFieldsFromForm ();
215
- return mapCache .get (key );
205
+ return mapCache .getIgnoreCase (key );
216
206
}
217
207
218
208
/**
219
209
*
220
210
* get a form value
211
+ *
221
212
* @param key
222
213
* @param def
223
214
* @return
224
215
*/
225
- public int getIntField (String key , int def )
216
+ public int getIntField (final String key , final int def )
226
217
{
227
218
getFieldsFromForm ();
228
- return mapCache .getInt (key , def );
219
+ return StringUtil . parseInt ( mapCache .getIgnoreCase (key ) , def );
229
220
}
230
221
231
222
/**
232
223
*
233
224
* get a form value
225
+ *
234
226
* @param key
235
227
* @param def
236
228
* @return
237
229
*/
238
- public boolean getBoolField (String key , boolean def )
230
+ public boolean getBoolField (final String key , final boolean def )
239
231
{
240
232
getFieldsFromForm ();
241
- return mapCache .getBool (key , def );
233
+ return StringUtil . parseBoolean ( mapCache .getIgnoreCase (key ) , def );
242
234
}
243
235
244
236
/**
245
- * @param bFile if true return files
237
+ * @param bFile if true return files
246
238
* @param bForm if true return form fields
247
239
* @return
248
- *
240
+ *
249
241
*/
250
- public List <FileItem > getFileList (boolean bFile , boolean bForm )
242
+ public List <FileItem > getFileList (final boolean bFile , final boolean bForm )
251
243
{
252
- List <FileItem > retList = new Vector <FileItem >();
253
- if (( bFile || bForm ) && fileItems != null )
244
+ final List <FileItem > retList = new ArrayList <FileItem >();
245
+ if (bFile || bForm )
254
246
{
255
- for (FileItem f : fileItems )
247
+ for (final FileItem f : fileItems )
256
248
{
257
- boolean formField = f .isFormField ();
249
+ final boolean formField = f .isFormField ();
258
250
if (formField && bForm || !formField && bFile )
259
251
{
260
252
retList .add (f );
@@ -267,47 +259,42 @@ public List<FileItem> getFileList(boolean bFile, boolean bForm)
267
259
/**
268
260
*
269
261
* get the iTh file
262
+ *
270
263
* @param i may be<0 to count from end
271
264
* @return
272
265
*/
273
266
public FileItem getFile (int i )
274
267
{
275
- List <FileItem > fileList = getFileList (true , false );
276
- if (fileList != null )
268
+ final List <FileItem > fileList = getFileList (true , false );
269
+ if (i < 0 )
277
270
{
278
- if (i < 0 )
279
- {
280
- i += fileList .size ();
281
- }
282
- if (i < 0 || i >= fileList .size ())
283
- {
284
- return null ;
285
- }
286
- else
287
- {
288
- return fileList .get (i );
289
- }
271
+ i += fileList .size ();
272
+ }
273
+ if (i < 0 || i >= fileList .size ())
274
+ {
275
+ return null ;
276
+ }
277
+ else
278
+ {
279
+ return fileList .get (i );
290
280
}
291
- return null ;
292
281
}
293
282
294
283
/**
295
284
*
296
285
* get the file attached to formName
297
- * @param formName
286
+ *
287
+ * @param formName
298
288
* @return
299
289
*/
300
- public FileItem getFile (String formName )
290
+ public FileItem getFile (final String formName )
301
291
{
302
- List <FileItem > fileList = getFileList (true , false );
303
- if ( fileList != null )
292
+ final List <FileItem > fileList = getFileList (true , false );
293
+ for ( final FileItem f : fileList )
304
294
{
305
- for ( FileItem f : fileList )
295
+ if ( f . getFieldName (). equalsIgnoreCase ( formName ) )
306
296
{
307
- if (f .getFieldName ().equals (formName ))
308
- {
309
- return f ;
310
- }
297
+ return f ;
311
298
}
312
299
}
313
300
return null ;
@@ -316,34 +303,36 @@ public FileItem getFile(String formName)
316
303
/**
317
304
*
318
305
* get the input stream for formName
319
- * @param formName
306
+ *
307
+ * @param formName
320
308
* @return
321
309
*/
322
- public InputStream getFileInputStream (String formName )
310
+ public InputStream getFileInputStream (final String formName )
323
311
{
324
- FileItem fi = getFile (formName );
312
+ final FileItem fi = getFile (formName );
325
313
return getInputStream (fi );
326
314
}
327
315
328
316
/**
329
317
*
330
318
* get the input stream for formName
319
+ *
331
320
* @param i may be<0 to count from end
332
321
* @return
333
322
*/
334
- public InputStream getFileInputStream (int i )
323
+ public InputStream getFileInputStream (final int i )
335
324
{
336
- FileItem fi = getFile (i );
325
+ final FileItem fi = getFile (i );
337
326
return getInputStream (fi );
338
327
}
339
328
340
329
/**
341
330
*
342
- *
331
+ *
343
332
* @param fi
344
333
* @return
345
334
*/
346
- public static InputStream getInputStream (FileItem fi )
335
+ public static InputStream getInputStream (final FileItem fi )
347
336
{
348
337
if (fi != null )
349
338
{
@@ -352,7 +341,7 @@ public static InputStream getInputStream(FileItem fi)
352
341
{
353
342
inputStream = fi .getInputStream ();
354
343
}
355
- catch (IOException e )
344
+ catch (final IOException e )
356
345
{
357
346
inputStream = null ;
358
347
}
@@ -367,7 +356,7 @@ public static InputStream getInputStream(FileItem fi)
367
356
@ Override
368
357
public String toString ()
369
358
{
370
- return "FileItemList [mapCache=" + mapCache + ", fileItems=" + fileItems + "]" ;
359
+ return "FileItemList [mapCache=" + mapCache . getKeyList (). getString () + ", fileItems=" + fileItems + "]" ;
371
360
}
372
361
373
362
}
0 commit comments