package com.paic.padlife.common;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.lang.ObjectUtils;
import org.apache.http.message.BasicNameValuePair;
import com.alibaba.fastjson.JSON;
public class ParamDTO<K,V> implements Serializable{
/**
*/
private static final long serialVersionUID = -78861694761454511L;
private Map<K,V> data;
public ParamDTO() {
super();
this.dat a= new HashMap<K, V>();
}
public ParamDTO<K,V> add(K key,V value){
this.data.put(key, value);
return this;
}
public ParamDTO<K,V> remove(K key){
this.data.remove(key);
return this;
}
public ParamDTO<K,V> addAll(Map<K,V> map){
this.data.putAll(map);
return this;
}
public ParamDTO<K,V> clear(){
this.data.clear();
return this;
}
public Set<K> keySet(){
return this.data.keySet();
}
public V get(K key){
return this.data.get(key);
}
public Set<Entry<K, V>> entrySet(){
return this.data.entrySet();
}
public boolean isEmpty(){
return this.data.isEmpty();
}
public boolean isNotEmpty(){
return !this.isEmpty();
}
@Override
public String toString() {
return JSON.toJSONString(this.data);
}
public String toUrlParams(String character){
StringBuffer urlParams = new StringBuffer("");
for(Entry<K,V> e : this.entrySet()){
urlParams.append(ObjectUtils.toString(e.getKey())).append("=")
.append(ObjectUtils.toString(e.getValue())).append("&");
}
if(urlParams.length() > 0){
try {
return URLEncoder.encode(urlParams.substring(0, urlParams.length() - 1),character);
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
return "";
}
public Map<K, V> getData() {
return data;
}
public List<BasicNameValuePair> preparePostData(){
List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
for (Entry<K, V> entry : this.entrySet()) {
params.add(new BasicNameValuePair(ObjectUtils.toString(entry.getKey()), ObjectUtils.toString
(entry.getValue())));
}
return params;
}
public static void main(String[] args) {
ParamDTO<String,Object> whereDTO = new ParamDTO<String, Object>();
whereDTO.add("key1", "value1").add("key2", "value2");
for(Entry<String,Object> e : whereDTO.entrySet()){
System.out.println(e.getKey()+"--"+e.getValue());
}
//whereDTO.remove("key2");
System.out.println(whereDTO.toUrlParams("utf-8"));
}
}