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 }