package com.matrix.core.pojo; 
 | 
  
 | 
import java.util.Collection; 
 | 
import java.util.HashMap; 
 | 
import java.util.Iterator; 
 | 
import java.util.Map; 
 | 
import java.util.Set; 
 | 
  
 | 
import javax.servlet.http.HttpServletRequest; 
 | 
  
 | 
/** 
 | 
 * simple mvc 支持的数据传输对象 
 | 
 *  
 | 
 * @author jiangyouyao 
 | 
 * 
 | 
 */ 
 | 
@SuppressWarnings("rawtypes") 
 | 
public class PageData extends HashMap implements Map { 
 | 
  
 | 
    private static final long serialVersionUID = 1L; 
 | 
  
 | 
    Map map = null; 
 | 
    HttpServletRequest request; 
 | 
  
 | 
    @SuppressWarnings("unchecked") 
 | 
    public PageData(HttpServletRequest request) { 
 | 
        this.request = request; 
 | 
        Map properties = request.getParameterMap(); 
 | 
        Map returnMap = new HashMap(); 
 | 
        Iterator entries = properties.entrySet().iterator(); 
 | 
        Entry entry; 
 | 
        String name = ""; 
 | 
        String value = ""; 
 | 
         
 | 
        while (entries.hasNext()) { 
 | 
            entry = (Entry) entries.next(); 
 | 
            name = (String) entry.getKey(); 
 | 
            Object valueObj = entry.getValue(); 
 | 
            if (name.equals("offset") || name.equals("limit")) { 
 | 
                if (valueObj instanceof String[]){ 
 | 
                    String[] values = (String[]) valueObj; 
 | 
                    returnMap.put(name, Integer.parseInt(values[0].toString())); 
 | 
                }else{ 
 | 
                    returnMap.put(name, Integer.parseInt(valueObj.toString())); 
 | 
                } 
 | 
                continue; 
 | 
            } 
 | 
         
 | 
            if (null == valueObj) { 
 | 
                value = ""; 
 | 
            } else if (valueObj instanceof String[]) { 
 | 
                String[] values = (String[]) valueObj; 
 | 
                for (int i = 0; i < values.length; i++) { 
 | 
                    value = values[i] + ","; 
 | 
                } 
 | 
                value = value.substring(0, value.length() - 1); 
 | 
            } else { 
 | 
                value = valueObj.toString(); 
 | 
            } 
 | 
            returnMap.put(name, value); 
 | 
        } 
 | 
        map = returnMap; 
 | 
    } 
 | 
  
 | 
    public PageData() { 
 | 
        map = new HashMap(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Object get(Object key) { 
 | 
        Object obj = null; 
 | 
        if (map.get(key) instanceof Object[]) { 
 | 
            Object[] arr = (Object[]) map.get(key); 
 | 
            obj = request == null ? arr : (request.getParameter((String) key) == null ? arr : arr[0]); 
 | 
        } else { 
 | 
            obj = map.get(key); 
 | 
        } 
 | 
        return obj; 
 | 
    } 
 | 
  
 | 
    public String getString(Object key) { 
 | 
        return (String) get(key); 
 | 
    } 
 | 
  
 | 
    @SuppressWarnings("unchecked") 
 | 
    @Override 
 | 
    public Object put(Object key, Object value) { 
 | 
        return map.put(key, value); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Object remove(Object key) { 
 | 
        return map.remove(key); 
 | 
    } 
 | 
  
 | 
    public void clear() { 
 | 
        map.clear(); 
 | 
    } 
 | 
  
 | 
    public boolean containsKey(Object key) { 
 | 
        return map.containsKey(key); 
 | 
    } 
 | 
  
 | 
    public boolean containsValue(Object value) { 
 | 
        return map.containsValue(value); 
 | 
    } 
 | 
  
 | 
    public Set entrySet() { 
 | 
        return map.entrySet(); 
 | 
    } 
 | 
  
 | 
    public boolean isEmpty() { 
 | 
         
 | 
        return map.isEmpty(); 
 | 
    } 
 | 
  
 | 
    public Set keySet() { 
 | 
         
 | 
        return map.keySet(); 
 | 
    } 
 | 
  
 | 
    @SuppressWarnings("unchecked") 
 | 
    public void putAll(Map t) { 
 | 
         
 | 
        map.putAll(t); 
 | 
    } 
 | 
  
 | 
    public int size() { 
 | 
         
 | 
        return map.size(); 
 | 
    } 
 | 
  
 | 
    public Collection values() { 
 | 
         
 | 
        return map.values(); 
 | 
    } 
 | 
  
 | 
} 
 |