1 package br.com.ibnetwork.guara.parameters.impl;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.apache.avalon.framework.service.ServiceException;
7 import org.apache.avalon.framework.service.ServiceManager;
8 import org.apache.avalon.framework.service.Serviceable;
9 import org.apache.commons.fileupload.FileItem;
10 import org.apache.commons.logging.LogFactory;
11
12 import br.com.ibnetwork.guara.parameters.ParameterParser;
13 import br.com.ibnetwork.guara.parameters.ValueParserSupport;
14
15 /***
16 * @author <a href="mailto:leandro@ibnetwork.com.br">leandro</a>
17 */
18 public class ParameterParserImpl
19 extends ValueParserSupport
20 implements ParameterParser, Serviceable
21 {
22 private Map fileItems = new HashMap();
23
24 public ParameterParserImpl(String encoding)
25 {
26 super(encoding);
27 }
28
29 public void service(ServiceManager manager)
30 throws ServiceException
31 {
32 logger = LogFactory.getLog(ParameterParserImpl.class);
33 }
34
35
36 public FileItem getFileItem(String key)
37 {
38 FileItem[] value = (FileItem[]) fileItems.get(key);
39 return value != null ? value[0] : null;
40 }
41
42 public FileItem[] getFileItems(String key)
43 {
44 return (FileItem[]) fileItems.get(key);
45 }
46
47 public void add(String key, FileItem value)
48 {
49 add(key, new FileItem[]{value});
50 }
51
52 public void add(String key, FileItem[] value)
53 {
54 FileItem[] values = (FileItem[]) fileItems.get(key);
55 if(values != null)
56 {
57 int size = values.length + value.length;
58 FileItem[] newValues = new FileItem[size];
59 System.arraycopy(values,0,newValues,0,values.length);
60 System.arraycopy(value,0,newValues,values.length,value.length);
61 value = newValues;
62 }
63 fileItems.put(key,value);
64 }
65 }